Previous Episode: CRE121 Internet-Meme

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.


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

Twitter

@[email protected]

Website

Spenden via PayPal

Hannes Mehnert

GitHub

Website

Twitter

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

Twitter Mentions