Concepts of Programming Languages
Beschrijving
The design of a programming language is the result of a selection from a general collection of programming language concepts. With some frequency, new languages are introduced that combine concepts in a novel manner and sometimes introduce new concepts. During their careers, computer scientists will have to work with more than one generation of programming language. In order to learn new programming languages, a computer scientist should understand the basic principles in the design of programming languages. In this course we study these principles. The topics covered in the course include:
Syntax and interpretation: programs as data, abstract vs. concrete syntax, interpretation
Functional programming: higher-order functions, lexical scope, function closures, currying and partial application, functions over data (especially map, fold, and filter).
Mutation and memory: implementing loops and recursion, tail calls, heap memory allocation and reuse, concurrency and parallel execution.
Lazy evaluation and infinite streams: lazy vs. eager evaluation, thunks, streams, memoization.
Types: a type as a set of values together with a set of operations, primitive types, compound types, type safety and errors caused by inconsistent use of values, association of types to names, type checking, type inference.
Objects and encapsulation: privacy and visibility of class members, interfaces revealing only method signatures, inheritance, subtyping.
Reviews0 reviews
Heb jij dit vak gevolgd?
Deel je ervaring met toekomstige studenten. Inloggen met je TU Delft mailadres duurt één minuut.
Schrijf een review