Programming Languages, Abstract Syntax Tree, Functional Programming, Logic Programming, Assembly, Disassembly, Python, Java, JCoCo VM, Standard ML, LISP, Perl, Prolog.
I took this class in Spring 2018. Each folder is its own project with the implementation of one or more function/feature of a programming language of a specific model. Usually, for each project, The projects are mainly in Assembly, Python, Java, Standard ML, and Prolog, and can be walked through easily. Projects include:
-
Assembly Operands
-
Even Numbers in Assembly
-
Disassembling Rational Data Type and GCD
-
SML Exercises
-
SML Prefix Calculator
-
Implementing IF-THEN-ELSE and Logial Operators in SML
-
Prolog Exercises
-
MISC
- Notes
- Code/Pictures/Explanations
- Review Questions and Answers
- Exam Questions Review
- Tools
- Notes
Implementation of JCoCo FrozenSet Class
JCoCo is an implementation of the Python Virtual Machine in Java. JCoCo is an object-oriented implementation of the Python 3.5 virtual machine.
The exercise instruction was:
Implement the frozenset class of Python. Implement a frozenset data type. Write a Python program first and disassemble it to test some frozenset operations. You can find the frozenset operations by consulting the Python documentation. Be sure to implement all the operations exactly as specified. You can run this test program to test your answers. You can download the test program by clicking here. Disassemble this program and then run it with your version of coco from within the Netbeans environment (right-click on the project in Netbeans and then select Properties... and Run to set the CASM file as the file to read.
The Final Project is Available Here: MLComp
MLComp is a Compiler and Type Inference System for a subset of Standard ML called Small.
The Final project was to complete the code generation and type checking for the following tests from the MLComp directory:
-
test12.sml
-
test30.sml
-
test35.sml
This project required the use of all the programming languages and concepts learned throughout this class. Feel free to take a look at it.
Feel free to clone this repository or its related repositories and to explore the projects.