Description:
This course focuses on formal specification of programming languages, including definition of syntax and semantics: simple statements including precedence, infixes, prefix, and postfix notations. It highlights global properties of algorithmic languages including sequence control, data structure implementation, scooping, storage management, grouping of statements, binding time, sub-routines, and tasks.
Goals: Upon completion of this course, the student should be able to:
A. Describe how the hardware and operating system implement high level language constructs.
i. Data types data types and classes
ii. Parameter passing techniques
iii. Virtual Machines
iv. Garbage collection
v. Dynamic storage and heap management
B. Recognize programming hazards
i. Aliasing
ii. Scoping
iii. Binding
iv. Pointer problems
v. Overloaded operators
C. Have an understanding of different programming language types
i. Procedural
ii. Object Oriented
iii. Functional
iv. Logical
D. Be able to write a program to parse an arbitrary input language.
i. Chomsky hierarchy
ii. BNF language description
iii. DFA for regular languages
iv. Parsing of context free languages
Notes
Malcom Player's Notes on Microsoft .NET
Slides on Programming Language Evaluation Criteria Slides on Data Types Slides on Pointers and Heap Management Garbage Collection examples Slides on Abstract Data Types Slides on Objects More Slides on Objects Slides on Parameter Passing Slides on Function Call Implementation Slides on Function Call Hardware Slides on Use of the Stack in Function Calls Slides on Binding Slides on Aliasing Slides on Overloading Operators Slides on Scoping Slides on the Theory of Computation Slides on the Stages of Compilation Slides on Lexical Scanning Slides on Describing Context Free Grammars Slides on BNF forms Slides on Parsing Slides on Language Paradigms Slides on Lex and YACC
Examples
Prolog Tutorial Introduction to Prolog Family Tree Prolog Program Graph Path Prolog Program
Example Recursive Descent Parser
Solutions to the Scoping Assignment
No comments:
Post a Comment