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
Website
Spenden via PayPal
Hannes Mehnert
GitHub
Website
Twitter
Shownotes
WP: Maxwellsche GleichungenWP: DylanCRE031 Programmiersprachen und DylanWP: Visitor PatternWP: Boilerplate CodeICFP ContestDylan Hackers @ CIFP 2005The 10th ACM SIGPLAN International Conference on Functional Programming (ICFP 2005)WP: TypentheorieCRE114 LLVMWP: Schleife (loop)The anatomy of a loop [PDF]WP: CompilerWP: ParserLexikalischer Scanner (Lexer)Java BytecodeGeneralized Algebraic Datatypesicfp: 2d languageWP: ASCII-ArtWP: Abstrakter Syntaxbaum (abstract syntax tree, AST)WP: Operatorrangfolge (Präzedenz)WP: Regulärer Ausdruck (Regular Expression)WP: Reguläre SpracheWP: Noam ChomskyWP: Chomsky-HierarchieWP: ZwischencodeWP: KalkülWP: Lambda-KalkülAn imperative object calculus [PS]WP: Java Virtual MachineWP: Common Language RuntimeWP: Bedingte Anweisung und VerzweigungWP: HaskellWP: Side effectWP: MonadenWP: StateCRE063 Die Programmiersprache C++WP: MLWP: SchemeTyped SchemeThe design and implementation of typed Scheme [PDF]WP: AirbagWP: AdaWP: JavaScriptGradual typing for functional languages [PDF]Gradual typing for objects [PDF]WP: PolymorphieWP: TemplateWP: TypisierungWP: Starke Typisierung (Strongly Typed)WP: Typumwandlung (Cast)WP: TypinferenzWP: SchemeWP: Kontravalenz (XOR)WP: Generic FunctionThe expression problemWP: RubyStatic type inference for RubyOOPSLAWP: PyPyGradual typing for Python [PDF]Just-in-time-KompilierungCRE088 Python und PyPyECMAScriptEvolutionary Programming and Gradual Typing in ECMAScript 4 [PDF]WP: Low Level Virtual Machine (LLVM)MacRubyOliver Steele: Test versus TypeSubtyping, Subclassing, and Trouble with OOPWhy dependent types matter [PDF]WP: Kontrollflussgraph (control flow graph)Hannes Mehnert: DFMC flow graph visualizationWP: Race ConditionType-based race detection for Java [PS]Ken Thompson 1984: Reflections on Trusting TrustDavid A. Wheeler’s Page on Countering Trusting Trust through Diverse Double-Compiling (Trojan Horse attacks on Compilers)WP: LISPWP: ScalaWP: Niklaus WirthWP: PascalWP: PrologWP: ClojureLambda the UltimateACM SIGPLAN 2009 Conference on Programming Language Design and Implementation (PLDI)Programming Language for Old TimersGenuine, Full-power, Hygienic Macro System for a Language with Syntax [PDF]And integrated proof language for imperative programs