hodsonus / programming-language-concepts

Programming Language Concepts - Compilers, Interpreters, Functional Programming, and Logic Programming.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

programming-language-concepts

Programming Language Concepts

This was the repository that was used for the duration of my enrollment in COP4020 - Programming Language Concepts with Professor Alin Dobra at the University of Florida.

A variety of projects were completed and I gained exposure to compilers, interpreters, AST manipulation, and the tools associated with these concepts. We used ANTLR4 and java or menhir and OCaml, depending on the project, for these kinds of problems.

Exposure to functional programming was also achieved. Professor Dobra talked about concepts associated with functional programming and demonstrated with OCaml tutorials in class. Most of the code that was written in class was with OCaml.

We gained exposure to logic programming. Our second-to-last project was written in Prolog, with the goal of mimicking the type inference mechanism that OCaml uses to type code.

The final project, completely optional, was to build a C-Like Language Compiler (bc, of course, was the C-Like Language). This was accomplished through the use of Menhir (a superset of ocamlyacc, http://gallium.inria.fr/~fpottier/menhir/) and OCaml's LLVM library to generate an LLVM IR. With little starting code, much of it was based off online tutorials and documentation. This was the culmination of the class - and truly enjoyable to write.

About

Programming Language Concepts - Compilers, Interpreters, Functional Programming, and Logic Programming.


Languages

Language:OCaml 59.3%Language:Java 19.2%Language:ANTLR 9.9%Language:Prolog 6.2%Language:Gnuplot 4.0%Language:Makefile 1.2%Language:C 0.2%