GithubHelp home page GithubHelp logo

roysrc / minijavacompiler Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 4.14 MB

A MIPS compiler for the MiniJava programming language.

License: MIT License

Java 83.74% Assembly 15.98% Shell 0.01% Makefile 0.04% Python 0.16% Jupyter Notebook 0.07%
mips mips-assembly minijava minijava-compiler vapor

minijavacompiler's Introduction

Hi, I'm Sajeeb Sent from Mailspring

Research Interests

I am interested in building tools that allow us to measure the safety, trustworthiness, and fairness of AI systems for safety-critical, regulated, and scientific domains such as in biomedical and healthcare applications. I am also interested in creating AI systems that intrinsically satisfy the above conditions of safety, trustworthiness, and fairness when deployed to real-world applications. I am particularly interested in exploring ideas from programming languages and software engineering, such as neuro-symbolic programming, program verification, and program synthesis, to achieve this goal.

I am also interested in the application and development of machine learning algorithms for algorithmic and structured data problems such as graphs, sequences, images, and time-series data. Of particular interest are applications of these ideas to solving problems in AI for science, computational drug design, healthcare, and biomedical informatics.

Research Experience

Software Engineer

I lead the Quantitative Light Imaging Laboratory's efforts in software development for data acquisition and analysis, including software-hardware integration and development and deployment of AI tools for solving biomedical problems.

My project revolved around developing the next generation of AI embedded intelligent microscopy systems for non-destructive sample imaging through the integration of ML with SLIM (Spatial Light Interference Microscopy) imaging modality.

Research Assistant - Orbiter Computer Algebra System

I was primarily involved in implementing new and optimizing existing group theory algorithms for the Orbiter computer algebra system (An algebra system for the classification of combinatorial objects) for both CPU and GPU to be run on Summit High Performance Compute Clusters. I optimized one of the core graph theory algorithms used throughout the software for performance improvement of an order of magnitude by using efficient data structures. I have also used machine learning techniques such as deep reinforcement learning to optimize tree-based data structures used to represent the orbits of groups acting on sets in real-time. My approach achieved state-of-the-art results compared to existing algorithms, primarily the Seress shallow Schreier tree algorithm in terms of memory usage and the quality of the generated tree. I have presented this research at the 50th Southeastern International Conference on Combinatorics, Graph Theory & Computing.

Teaching Experience

Teaching Assistant (Operating Systems)

I assisted in teaching the Operating Systems course at Colorado State University. I helped write class assignments, held help sessions and office hours and assisted with class logistics. The assignments ranged from writing scheduling algorithms to multi-process and multi-threaded programs. I was also involved in building an automated grading system to grade student submissions using error carried forward logic.

Some of my projects

Mini-Java Compiler P2P network overlay Scalable Server Design Orbiter CPPLOGGER

Languages and Tools

NOTE: Top languages do not indicate my skill level or anything similar to that, it's a github metric of which languages I have the most code on github.

Sajeeb's github stats Top Langs

minijavacompiler's People

Contributors

roysrc avatar

Watchers

 avatar

minijavacompiler's Issues

Not sure if the compiler can do runtime polymorphism

class A {
  public static void main(String[] args) {
    C b;
    b = new B();
    System.out.println(b.a());
  }
}

class B extends C {
  int a;
  public int a() {
    int c;
    c = this.c();
    a = 12 * c;
    return a;
  }
}

class C {
  int c;

  public int c() {
    c = 12;
    return c;
  }
}

should print 144. In order to perform runtime polymorphism we need to implement a vTable. The compiler at this stage has no such implementation.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.