Download presentation
Presentation is loading. Please wait.
Published byAllan Morrison Modified over 9 years ago
1
CS112: Structure of Programming Languages A smorgasbord of topics in programming languages including programming paradigms and syntax, semantics, implementation of programming language features
2
Course Syllabus ● Course No. CS112 ● Title: Structure of Programming Languages ● Course Description: Selected topics in programming languages, including programming paradigms, and syntax, semantics, implementation of programming language features
3
Course Syllabus CS112: Struc of Prog Langs ● Course Objectives: The student should know the basics of lambda calculus, and its practical application to functional programming languages, write actual functional programs in Haskell, differentiate among the different programming paradigms: functional, imperative, declarative, and object-oriented, and study the syntax and semantics of imperative language features and their implementation.
4
Course Syllabus CS112: Struc of Prog Lang ● Course Outline & Time Frame: ● Lambda Calculus: expressions, reduction strategies, normalization theorem, Church's thesis. ● Functional programming as an implementation of Lambda Calculus: programming in Haskell, recursion. ● Declarative programming in Prolog. ● Imperative programming: memory map/segments of a running program, variables (scope, allocation, lifetime), parameter passing. Implementation of imperative features (in assembly language).
5
Course Syllabus CS112: Struc of Prog Lang ● Required readings: ● Michael Gordon, “Programming language theory and its implementation”, PH 1988 ● Gezzhi & Jazayerri, “Programming languages” ● Haskell online tutorial, http://www.haskell.org/ ● Clocksin & Mellish, “Programming in Prolog”
6
CS112 Coverage of ACM Topics ● PL1. Overview of programming languages ● History of programming languages ● Brief survey of programming paradigms: Procedural, Object-oriented, Functional, Declarative (non-algorithmic), Scripting languages. ● The effects of scale on programming methodology ● PL2. Virtual machines ● concept of virtual machine, Hierarchy of virtual machines, Intermediate languages ● Security issues arising from running code on an alien machine
7
CS112 Coverage of ACM Topics ● PL3. Introduction to language translation ● Comparison of interpreters and compilers ● Language translation phases (lexical analysis, parsing, code generation, optimization) ● Machine-dependent and machine-independent aspects of translation
8
CS112 Coverage of ACM Topics ● PL4. Declarations and types ● The conception of types as a set of values with together with a set of operations ● Declaration models (binding, visibility, scope, and lifetime) ● Overview of type-checking ● Garbage collection
9
CS112 Coverage of ACM Topics ● PL5. Abstraction mechanisms ● Procedures, functions, and iterators as abstraction mechanisms ● Parameterization mechanisms (reference vs. value) ● Activation records and storage management ● Type parameters and parameterized types ● Modules in programming languages
10
CS112 Coverage of ACM Topics ● PL6. Object-oriented programming ● Object-oriented design, Encapsulation and information-hiding ● Separation of behavior and implementation ● Classes and subclasses, Inheritance (overriding, dynamic dispatch) ● Polymorphism (subtype polymorphism vs. inheritance) ● Class hierarchies, Collection classes and iteration protocols ● Internal representations of objects and method tables
11
CS112 Wish List ● See CC2001
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.