Talk
This is a talk by a guest of the Software Languages Team.
Speaker
Marcus Frenkel (PhD student of Prof. F. Steimann, FernUni Hagen)
Title
Die Programmiersprache Infinity
Host
Software Languages Team
Room
B 233
Campus Koblenz
Date
24 October 2014
Time
11:15am (ct)
Abstract
INFINITY ist eine Programmiersprache, welche die Definition neuer Syntax und Semantik direkt im Programmcode erlaubt. Neue Syntaxregeln können zusammen mit ihrer Semantik definiert und direkt genutzt werden, ohne dass ein zusätzlicher Schritt zur Übersetzer-Genierung notwendig wird. INFINITY baut nicht auf einer vorgegebenen Basissprache auf; sämtliche Syntax und Semantik wird entweder über Bibliotheken bereitgestellt oder mit Hilfe bereits bestehender Bibliotheken definiert, wodurch INFINITY kein spezifisches Programmierparadigma zugrunde liegt. Kern der Sprache ist die LLVM (Low Level Virtual Machine) und der LLVM-Zwischencode, die IR (intermediate representation). Zur Codegenerierung in INFINITY wird der Bytecodegenerator der LLVM genutzt, wodurch im Rahmen der Codegenerierung neue Regeln nicht auf bereits bestehende abgebildet werden müssen, sondern beliebiger IR-Code erzeugt werden kann, welcher dann wiederum zur Definition neuer Syntax und Semantik nutzbar ist. Diese Flexibilität unterstützt wiederum die Definition von Spracherweiterungen sowie interner und externer DSLs, da durch INFINITY und die LLVM von den Details der Parserimplementierung und Codegenerierung abstrahiert, gleichzeitig aber nicht ein spezifisches Programmierparadigma erzwungen wird.