Programming Language Design and Translation. A study of the various programming language paradigms and basic program language translation. Emphasis will be on run-time behavior, lexical analysis, parsing context-free languages, translation specifications, and machine-independent code improvement. Each student will participate in programming projects to demonstrate various concepts
- Project 1 was primarily based on learning to write the same program in different languages and understanding how bash scripts can greatly improve the process of testing programs with different data sets.
- Project 2 focused on how parameter passing, scoping rules, and aliases work in C++ and Java and how the two languages handle both similarly or differently.
- BC is a multi-part assignment that looks at the linux Basic Calculator and recreating it
- BC1 is a simplified version of the calculator that was used to show how to use Lex and Yacc
- BC2 takes BC1 and adds the rest of the operators involved with the Basic Calculator and organizes the data better by using a symbol table managed by hashing each variable.
- BC3 is a new take on the same Basic Calculator, creating a recursive descent top-down parser in C++. It started out as an interpreter and the goal was to add to its functionality including the ability to do math.
- Final version of the bc project. In this version we will be exploring what it takes to extend the grammar to include if statements and while loops to the grammar. This will be a little more challenging and will require some thought and discussion.