Differences between revisions 3 and 4
Revision 3 as of 2016-01-13 00:15:45
Size: 1328
Editor: khellman
Comment:
Revision 4 as of 2020-11-13 13:43:40
Size: 1470
Editor: khellman
Comment: Update course description
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
'''CSCI498 --- COMPILER DESIGN''': An introductory course to the design and construction of compilers. Topics include scanning (lexical analysis), context free grammars, recursive descent (top-down) parsing, LR (bottom up) parsing, syntax directed translation, syntax trees, expression trees, parse trees, aspects of intermediate representation and target creation may be covered as time permits. '''CSCI498 --- COMPILER DESIGN''': An introductory course to the design and construction of compilers. Topics include scanning (lexical analysis), context free grammars, recursive descent (top-down) parsing, LR (bottom up) parsing, syntax directed translation, syntax trees, expression trees, parse trees, aspects of intermediate representation and target creation may be covered as time permits. Students will construct their own tool chain for compiling a simple C-like language, tracking the relevant course topics as they are covered.

Course Description

CSCI498 --- COMPILER DESIGN: An introductory course to the design and construction of compilers. Topics include scanning (lexical analysis), context free grammars, recursive descent (top-down) parsing, LR (bottom up) parsing, syntax directed translation, syntax trees, expression trees, parse trees, aspects of intermediate representation and target creation may be covered as time permits. Students will construct their own tool chain for compiling a simple C-like language, tracking the relevant course topics as they are covered.

Computer Organization (CSCI341) and Software Engineering (CSCI306).

Learning Goals

The objectives of this course are to introduce students to theory and tools behind language compilers. Upon completion of this course, you should know:

  • The steps taken by most compilers to translate a program listing to either another language or target code for a machine.
  • The theory of lexical analysis, regular expressions, deterministic finite automata (DFAs), non-deterministic finite automata (NFAs), and how to use scanner generators (eg flex).

  • The fundamental principles of context free grammars as well as their associated attributes and properties.
  • The theory and implementation of top-down and bottom up parsing, the generation of parse trees, and their translation to abstract syntax trees (ASTs).

ExecutiveSummary (last edited 2022-09-23 12:23:44 by khellman)