Course Compiler Construction and Domain-Specific Languages


Responsible: Andreas Schwenk, M.Sc.

Course

Meets requirements of following modules(MID)

Course Organization

Version
created 2018-09-18
VID 1
valid from WS 2012/13
valid to
Course identifiers
Long name Compiler Construction and Domain-Specific Languages
CID F07_CBDSL
CEID (exam identifier)

Contact hours per week (SWS)
Lecture 2
Exercise (unsplit) 1
Exercise (split)
Lab
Project 1
Seminar
Tutorial(voluntary) 0
Total contact hours
Lecture 30
Exercise (unsplit) 15
Exercise (split)
Lab
Project 15
Seminar
Tutorial (voluntary) 0
Max. capacity
Exercise (unsplit)
Exercise (split)
Lab
Project 30
Seminar

Total effort (hours): 150

Instruction language

  • English
  • German

Study Level

  • Master

Prerequisites

  • Extended knowledge of an imperative programming language

Textbooks, Recommended Reading

  • Fowler, Martin: "Domain-specific languages", Pearson Education
  • Aho, Alfred V., Ravi Sethi, and Jeffrey D. Ullman: "Compilers, Principles, Techniques", Addison Wesley
  • Wirth, Niklaus: "Compiler construction", Addison-Wesley

Instructors

  • Andreas Schwenk, M.Sc.

Supporting Scientific Staff

Transcipt Entry

Compiler Construction and Domain-Specific Languages

Assessment

Type
oE normal case (except on large numbers of assessments: wE

Total effort [hours]
oE 10

Frequency: 2-3/year


Course components

Lecture/Exercise

Objectives

Contents
  • Formal Languages
    • Regular Languages
      • Regular Expressions
      • Finite State Machines
    • Context-Free Languages
      • Pushdown Automata
      • Backus-Naur-Form
    • Deterministic Context-Free Languages
    • Chomsky Hierarchy
  • Parsing
    • Top-Down Parsing
      • LL Parser
    • Bottom-Up Parsing
      • LR Parser
      • LALR Parser
    • Parser Generators
  • Compiler Front Ends
    • Lexical Analysis
    • Syntactic Analysis
    • Semantic Analysis
    • Intermediate Code Generation
  • Compiler Middle Ends
    • Code Optimization
  • Compiler Back Ends
    • Computer Architectures
    • Machine Code Generation
    • Register Allocation
    • Automatic Parallelization
  • Relevant Data Structures
    • Abstract Syntax Tree
    • Symbol Table
  • Embedded Domain-Specific Languages
  • External Domain-Specific Languages
  • Compiler Correctness
  • Fundamentals of Natural Language Processing

Acquired Skills
  • Understanding theoretical concepts
  • Solving practical problems with toolchains in the context of compiler construction
    • GNU Autotools
    • GNU Compiler-Collection (GCC)
    • Clang
    • LLVM Backend
    • Flex
    • GNU Bison
  • Distinghish properties of natural and formal languages
  • Design of Domain-Specific Languages
    • evaluate expenses and income of domain-specific languages
    • interpret underlying domains ontologically
    • formulate language documentations
    • evaluate expressiveness of languages
  • Implementation of Domain-Specific Languages
    • apply design patterns
    • create language workbenches
    • evaluate language definitions for correctness

Additional Component Assessment

Type
fAP 2-3 electronic tests (20min each), repeatable 1x
fPS excercise (on course and self study)

Contribution to course grade
fAP prerequesite to fTP
fPS not rated

Frequency: 1/year

Project

Objectives

Acquired Skills
  • Design and implementation of a new domain-specific language
    • formulate requirements
    • define test programs
    • implement parsers
    • integration of frameworks from the target domain, or code-generation respectively
    • verification; e.g. supported by Hamcrest
  • Presentation of a scientific publication of the courses context
    • understanding research-oriented literature
    • prepare complex facts didactically

Operational Competences
  • Master complex tasks in a team
  • Presentation and defence of project results

Additional Component Assessment

Type
fTP 3 lab experiments
oR 15min presentation of fTP results; 8min presention of paper

Contribution to course grade
fTP Attestation
oR prerequisite to course exam

Frequency: 1/year

Diese Seite läuft auf FoswikiDas Urheberrecht © liegt bei den mitwirkenden Autoren. Alle Inhalte dieser Kollaborations-Plattform sind Eigentum der Autoren.
Ideen, Anfragen oder Probleme bezüglich Foswiki? Feedback senden