CRE122 Compilerbau und Typtheorie
Vom Übersetzen und Optimieren von Programmcode
Compilerbau ist eine komplexe Materie aber auch keine Magie. Andererseits ist es ein Feld, in dem in letzter Zeit wieder eine Menge Bewegung gekommen ist, teilweise ausgelöst durch neue Erkenntnisse, teilweise durch den hohen Bedarf an schnellen, dynamischen Programmiersprachen im Web. Hannes Mehnert erarbeitet gerade seine Diplomarbeit in diesem Themenfeld mit einem Schwerpunkt auf Optimierung und Typtheorie und erläutert im Gespräch mit Tim Pritlove die Hintergründe dieser Ansätze und gibt einen Überblick über weitgehend unbekanntes Terrain.
- Tim Pritlove
- Hannes Mehnert
Shownotes
Links:
- WP: Maxwellsche Gleichungen
- WP: Dylan
- CRE031 Programmiersprachen und Dylan
- WP: Visitor Pattern
- WP: Boilerplate Code
- ICFP Contest
- Dylan Hackers @ CIFP 2005
- The 10th ACM SIGPLAN International Conference on Functional Programming (ICFP 2005)
- WP: Typentheorie
- CRE114 LLVM
- WP: Schleife (loop)
- The anatomy of a loop [PDF]
- WP: Compiler
- WP: Parser
- Lexikalischer Scanner (Lexer)
- Java Bytecode
- Generalized Algebraic Datatypes
- icfp: 2d language
- WP: ASCII-Art
- WP: Abstrakter Syntaxbaum (abstract syntax tree, AST)
- WP: Operatorrangfolge (Präzedenz)
- WP: Regulärer Ausdruck (Regular Expression)
- WP: Reguläre Sprache
- WP: Noam Chomsky
- WP: Chomsky-Hierarchie
- WP: Zwischencode
- WP: Kalkül
- WP: Lambda-Kalkül
- An imperative object calculus [PS]
- WP: Java Virtual Machine
- WP: Common Language Runtime
- WP: Bedingte Anweisung und Verzweigung
- WP: Haskell
- WP: Side effect
- WP: Monaden
- WP: State
- CRE063 Die Programmiersprache C++
- WP: ML
- WP: Scheme
- Typed Scheme
- The design and implementation of typed Scheme [PDF]
- WP: Airbag
- WP: Ada
- WP: JavaScript
- Gradual typing for functional languages [PDF]
- Gradual typing for objects [PDF]
- WP: Polymorphie
- WP: Template
- WP: Typisierung
- WP: Starke Typisierung (Strongly Typed)
- WP: Typumwandlung (Cast)
- WP: Typinferenz
- WP: Scheme
- WP: Kontravalenz (XOR)
- WP: Generic Function
- The expression problem
- WP: Ruby
- Static type inference for Ruby
- OOPSLA
- WP: PyPy
- Gradual typing for Python [PDF]
- Just-in-time-Kompilierung
- CRE088 Python und PyPy
- ECMAScript
- Evolutionary Programming and Gradual Typing in ECMAScript 4 [PDF]
- WP: Low Level Virtual Machine (LLVM)
- MacRuby
- Oliver Steele: Test versus Type
- Subtyping, Subclassing, and Trouble with OOP
- Why dependent types matter [PDF]
- WP: Kontrollflussgraph (control flow graph)
- Hannes Mehnert: DFMC flow graph visualization
- WP: Race Condition
- Type-based race detection for Java [PS]
- Ken Thompson 1984: Reflections on Trusting Trust
- David A. Wheeler’s Page on Countering Trusting Trust through Diverse Double-Compiling (Trojan Horse attacks on Compilers)
- WP: LISP
- WP: Scala
- WP: Niklaus Wirth
- WP: Pascal
- WP: Prolog
- WP: Clojure
- Lambda the Ultimate
- ACM SIGPLAN 2009 Conference on Programming Language Design and Implementation (PLDI)
- Programming Language for Old Timers
- Genuine, Full-power, Hygienic Macro System for a Language with Syntax [PDF]
- And integrated proof language for imperative programs