 |
|
 |
Institut für Kommunikationsnetze und Rechnersysteme (IKR)
|
 |
Themenbeschreibung |
|
|
 |
 |
 |
|
 |
 |
 |
Master-Arbeit Nr. 1080
(Zu vergeben) [pdf]
|
|
Entwurf und Implementierung eines VS-Codium Langugage-Server-Plugins für eine Variante der Programmiersprache Go
|
|
|
Methoden
|
Themengebiete
|
|
Programmierung
Softwareentwurf
|
Compilerbau
VS-Codium Plugins
|
|
|
Beschreibung
|
|
|
|
|
|
|
Hintergrund
|
Am Institut wird derzeit eine experimentelle Variante der Programmiersprache Go entwickelt, die auf den Namen GoSUB hört. Für diese Sprache ist noch kein Code-Editor verfügbar, der Mechanismen von State-of-the-Art Integrated Development Environments (IDEs) bereitstellt.
|
Die von Microsoft entwickelte IDE VS-Code ist als MIT-lizenzierte Version unter dem Namen VS-Codium erhältlich. Features wie Syntax-Highlighting, "jump-to-definition", "list-all-references" oder auch das Anzeigen von Funktionssignaturen realisiert der Code-Editor über Plugins. Oft binden diese Plugins einen Language Server an, der über eine standardisierte Netzwerkschnittstelle die notwendigen Informationen zur Verfügung stellt. Die Implementierungssprache des Language Servers ist somit frei wählbar.
|
Aufgabenstellung
|
Im Rahmen dieser Arbeit soll ein Language-Server-Plugin für VS-Codium entworfen und in GoSUB implementiert werden. Dazu soll in einem ersten Schritt die Kommunikation zwischen dem Server und dem Plugin aufgebaut werden. Anschließend muss das bestehende Compiler-Frontend erweitert werden, um Anfragen des Code-Editors verarbeiten zu können: Zum Beispiel muss der Language Server für die "jump-to-definition"-Funktion den an einer Stelle befindlichen Bezeichner ausgehend von seiner Quelltextposition ausfindig machen und dessen Definitionsstelle zurückgeben.
|
Auf dieser Grundlage lassen sich nun ausgewählte IDE-Features implementieren.
|
Erworbene Kenntnisse und Fähigkeiten
|
Sie erlangen ein tiefes Verständnis für die Funktionsweise von Programmiersprachen, Compilern und Language Servern. Außerdem vertiefen Sie Ihre Programmierkenntnisse an einem großen Softwareprojekt.
|
|
|
|
Voraussetzungen
|
|
|
Programmierkenntnisse
|
|
|
|
Kontakt
|
|
Dipl.-Ing. Matthias Meyer,
Raum 1.334 (ETI II),
Telefon 685-67975, [E-Mail]
M.Sc. Tobias Schwientek,
Raum 1.365 (ETI II),
Telefon 685-69008, [E-Mail]
|
|
|
|
|
|
|
|