Lehrinhalte
Moderne Compiler zielen primär darauf ab, effizienten Code für eine bestimmte Plattform zu generieren und hierfür nutzen sie fortgeschrittene Analysis- und Transformationswerkzeuge. Eine solche Infrastruktur ist aber auch nützlich für Quellcodetransformation, z.B. für Werkzeuge, die Codes annotieren, instrumentieren, oder in eine kanonische Form bringen. Die Entwicklung solcher Werkzeuge ist für die C++ Sprache aufgrund ihrer Komplexität eine Herausforderung. Eine offene Compiler Infrastruktur, die in einer Vielzahl von Forschungs- und Produktionscompilern genutzt wird, ist die LLVM Infrastruktur (www.llvm.org). Ein vielgenutztes Front-End für C, C++ und objective C ist Clang, welches mächtige Mechanismen für die Extraktion von Information aus dem abstrakten Syntaxbaum zur Verfügung stellt, und so Modifikationen des Quellcodes wie auch die Generierung der Zwischenrepräsentation von LLVM ermöglicht.
Die Studierenden arbeiten mit verschiedenen Komponenten und Techniken des Clang/LLVM Frameworks und implementieren praktische Übungen für Quelltransformationen. Die Clang/LLVM Techniken beinhalten insbesondere die Handhabung und Matching Techniken auf dem abstrakten Syntaxbaum von Clang. Beispiele von Quelltransformationen werden verschiedene Facetten von Code-Erweiterung under -Refactoring beinhalten, z.B. für die Instrumentierung paralleler Codes, für die Übermittlung von Information zwischen der statischen Analyse und der Laufzeitumgebung von (parallelen) Codes, oder für Code Refactoring um bestimmte Coding Standards einzuhalten.
Voraussetzungen
Vorlesung Einführung in Compilerbau (EiCB), Vorlesung System- and Parallel Programming (SPP), Kentnisse von C++
Online-Angebote
moodle
Moderne Compiler zielen primär darauf ab, effizienten Code für eine bestimmte Plattform zu generieren und hierfür nutzen sie fortgeschrittene Analysis- und Transformationswerkzeuge. Eine solche Infrastruktur ist aber auch nützlich für Quellcodetransformation, z.B. für Werkzeuge, die Codes annotieren, instrumentieren, oder in eine kanonische Form bringen. Die Entwicklung solcher Werkzeuge ist für die C++ Sprache aufgrund ihrer Komplexität eine Herausforderung. Eine offene Compiler Infrastruktur, die in einer Vielzahl von Forschungs- und Produktionscompilern genutzt wird, ist die LLVM Infrastruktur (www.llvm.org). Ein vielgenutztes Front-End für C, C++ und objective C ist Clang, welches mächtige Mechanismen für die Extraktion von Information aus dem abstrakten Syntaxbaum zur Verfügung stellt, und so Modifikationen des Quellcodes wie auch die Generierung der Zwischenrepräsentation von LLVM ermöglicht.
Die Studierenden arbeiten mit verschiedenen Komponenten und Techniken des Clang/LLVM Frameworks und implementieren praktische Übungen für Quelltransformationen. Die Clang/LLVM Techniken beinhalten insbesondere die Handhabung und Matching Techniken auf dem abstrakten Syntaxbaum von Clang. Beispiele von Quelltransformationen werden verschiedene Facetten von Code-Erweiterung under -Refactoring beinhalten, z.B. für die Instrumentierung paralleler Codes, für die Übermittlung von Information zwischen der statischen Analyse und der Laufzeitumgebung von (parallelen) Codes, oder für Code Refactoring um bestimmte Coding Standards einzuhalten.
Voraussetzungen
Vorlesung Einführung in Compilerbau (EiCB), Vorlesung System- and Parallel Programming (SPP), Kentnisse von C++
Online-Angebote
moodle
- Lehrende: Christian Bischof
Semester: SoSe 2023