Course Syllabus
Please save/download a copy of the Course Syllabus: NEW_QC_ADA_Syllabus_Spring 2025 .docx
The syllabus is an essential tool for learning about the course and instructor, course goals/expectations, required readings and instructional materials, assignment and activity due dates, and other important information. Read it thoroughly. If you have questions regarding the syllabus, please contact your instructor.
Link to the textbook
| Week | Module | Module Outcomes | Readings | |||||||
| 1 | Language Processors | Define compiler, interpreter, assembler, linker, symbol table Compare and contrast compiler/interpreter List phases of a compiler Describe the purpose of the symbol table Describe characteristics of code optimization |
Pages 1-14 | |||||||
| 2 | The Evolution of Programming Languages | Distinquish between types of programming languages Describe the evolution of programming languages by listing the attributes of each generation. Compare and contrast static scope versus dynamic scope Relate compiler goals with respect to computer architecture |
Pages 15-38 | |||||||
| 3 | Syntax Definition and Parsing | Specify a context free grammar using Backus-Naur Form Derive language strings given a grammar and an input string Identify ambiguity within a given grammar Identify left and right recursion in a grammar |
Pages 39-75 | |||||||
| 4 | Introduction to Syntax Directed Translation | Describe the operation of syntax directed translation Create a simple lexical analyzer Compare and contrast syntactic versus type checking and describe the role that the symbol table plays. |
Pages 76-108 | |||||||
| 5 | Lexical Analysis | Use regular expressions for lexical analysis Define the term regular definition Use the Lexical Analyzer Generator Lex to create a scanner. |
Pages 109-146 | |||||||
| 6 | Finite Automata and Optimization | Describe the characteristics and operation of finite automata Distinguish between NFA and DFA |
Pages 147-190 | |||||||
| 7 | Grammars | Define the term Context Free Grammar Parse a given string using left-most and right-most derivations Eliminate ambiguity and or left recursion in a grammar |
Pages 191-216 | |||||||
| 8 | Parsing | Distinquish between top down and bottom up parsing Categorize LR and other types of grammars |
Pages 217-302 | |||||||
| 9 | Syntax-Directed Definitions | Define the term Syntax Directed Definition Describe the use of a dependancy graph during parsing |
Pages 303-323 | |||||||
| 10 | Syntax-Directed Translations | Implement a recursive descent parser | Pages 324-356 | |||||||
| 11 | Translation of Expressions and Type Checking | Describe the use of Three Address Code within a compiler Create a directed acyclic graph to represent an expression Distinguish type checking using sythesis versus type checking using inference |
Pages 357-397 | |||||||
| 12 | Control Flow | Evaluate code behavior in the presence of short-circuit code Translate Boolean expressions into flow of control statements |
Pages 398-426 | |||||||
| 13 | Storage Organization of the run-time environment | List considerations for code optimization based on knowledge of the memory hierarchy. Describe the typical sub-division of runtime memory |
Pages 427-463 | |||||||
| 14 | Design for Garbage Collection | Define garbage collection Evaluate methods for garbage collection |
Pages 463-504 | |||||||
Course Summary:
| Date | Details | Due |
|---|---|---|