CS112: Structure of Programming Languages A smorgasbord of topics in programming languages including...
-
Upload
allan-morrison -
Category
Documents
-
view
216 -
download
0
Transcript of CS112: Structure of Programming Languages A smorgasbord of topics in programming languages including...
![Page 1: CS112: Structure of Programming Languages A smorgasbord of topics in programming languages including programming paradigms and syntax, semantics, implementation.](https://reader036.fdocuments.net/reader036/viewer/2022082519/56649efd5503460f94c119e0/html5/thumbnails/1.jpg)
CS112: Structure of Programming Languages
A smorgasbord of topics inprogramming languages
including programming paradigmsand syntax, semantics, implementation
of programming language features
![Page 2: CS112: Structure of Programming Languages A smorgasbord of topics in programming languages including programming paradigms and syntax, semantics, implementation.](https://reader036.fdocuments.net/reader036/viewer/2022082519/56649efd5503460f94c119e0/html5/thumbnails/2.jpg)
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
![Page 3: CS112: Structure of Programming Languages A smorgasbord of topics in programming languages including programming paradigms and syntax, semantics, implementation.](https://reader036.fdocuments.net/reader036/viewer/2022082519/56649efd5503460f94c119e0/html5/thumbnails/3.jpg)
Course SyllabusCS112: 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.
![Page 4: CS112: Structure of Programming Languages A smorgasbord of topics in programming languages including programming paradigms and syntax, semantics, implementation.](https://reader036.fdocuments.net/reader036/viewer/2022082519/56649efd5503460f94c119e0/html5/thumbnails/4.jpg)
Course SyllabusCS112: 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).
![Page 5: CS112: Structure of Programming Languages A smorgasbord of topics in programming languages including programming paradigms and syntax, semantics, implementation.](https://reader036.fdocuments.net/reader036/viewer/2022082519/56649efd5503460f94c119e0/html5/thumbnails/5.jpg)
Course SyllabusCS112: 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”
![Page 6: CS112: Structure of Programming Languages A smorgasbord of topics in programming languages including programming paradigms and syntax, semantics, implementation.](https://reader036.fdocuments.net/reader036/viewer/2022082519/56649efd5503460f94c119e0/html5/thumbnails/6.jpg)
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
![Page 7: CS112: Structure of Programming Languages A smorgasbord of topics in programming languages including programming paradigms and syntax, semantics, implementation.](https://reader036.fdocuments.net/reader036/viewer/2022082519/56649efd5503460f94c119e0/html5/thumbnails/7.jpg)
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
![Page 8: CS112: Structure of Programming Languages A smorgasbord of topics in programming languages including programming paradigms and syntax, semantics, implementation.](https://reader036.fdocuments.net/reader036/viewer/2022082519/56649efd5503460f94c119e0/html5/thumbnails/8.jpg)
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
![Page 9: CS112: Structure of Programming Languages A smorgasbord of topics in programming languages including programming paradigms and syntax, semantics, implementation.](https://reader036.fdocuments.net/reader036/viewer/2022082519/56649efd5503460f94c119e0/html5/thumbnails/9.jpg)
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
![Page 10: CS112: Structure of Programming Languages A smorgasbord of topics in programming languages including programming paradigms and syntax, semantics, implementation.](https://reader036.fdocuments.net/reader036/viewer/2022082519/56649efd5503460f94c119e0/html5/thumbnails/10.jpg)
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
![Page 11: CS112: Structure of Programming Languages A smorgasbord of topics in programming languages including programming paradigms and syntax, semantics, implementation.](https://reader036.fdocuments.net/reader036/viewer/2022082519/56649efd5503460f94c119e0/html5/thumbnails/11.jpg)
CS112 Wish List
● See CC2001