teaching: (ASU) Principles of Programming Languages


I am teaching CSE340 this summer. I have taught this class for two years –Summer 2015, Fall 2014, Summer 2014, Spring 2014, and Summer 2013. In this course, we define an structural programming language and implement a compiler for it while studying theoretical foundations for several programming paradigms including formal lexical, syntactic and semantic descriptions, compilation and run-time issues.

In this course, we define an structural programming language and implement a compiler for it while studying theoretical foundations for several programming paradigms including formal lexical, syntactic and semantic descriptions, compilation and run-time issues.

Syllabus

Summer 2015

Lessons

Assignments

There are four programming assignments: a Lexical Analyzer, a Parser, a Semantic Analyzer and an Intermediate Code Generator. The four assignments bundled together as a compiler for a custom programming language. An example of the statements supported is shown in the picture below. A GUI is provided to visualize each stage of the compilation process: a token table, a parse tree, a symbol table, and intermediate code; as well as a console (in black background) to display alerts and error messages.

Aditionally, a VM with a GUI is provided to test the execution of the generated intermediate code.

GitHub repository

javiergs/CSE340