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.
Toetsing
The final grade of the course consists of the following components:
Mandatory Lab (pass/fail)
Computer Exam (100%)
Final grade calculation:
Mandatory Lab failed -> 1
Mandatory Lab passed -> Exam Grade
Repair possibilities:
Mandatory Lab: all mandatory assignments may be resubmitted an unlimited amount of times (within reasonable limits), as long as these submissions are made before the lab deadline. (Automatic) feedback is provided for most mandatory assignments. There is a repair opportunity if all but one of the mandatory assignments are passed before the deadline. This needs to be requested via email to the course mail address, and requires extra work to be submitted.
Computer Exam: resit in next quarter
Disclaimer: information may change depending on unforeseen circumstances or measures (see: TER Art 29, sub 4)
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