Ursprünglich als Skriptsprache für simple interaktive Webseiten gedacht, wird JavaScript heute für komplexe Anwendungen auch außerhalb des Browsers eingesetzt. Über den Paketmanager npm hat der Programmierer Zugriff auf ein reichhaltiges Ökosystem.
Für das unvorhergesehene „Programmieren im Großen“ fehlt es allerdings an wichtigen Features wie einem statischen Typsystem. Das führte in den letzten Jahren zu einer Vielzahl von Sprachen, die nach JavaScript kompilieren, um ein Typsystem über dessen in Grenzfällen überraschende Semantik zu legen. So wurde TypeScript als typisierte Erweiterung von JavaScript entworfen.
Ein nahtloses Einbinden und Aufrufen von JavaScript-Code und sogar npm-Modulen ist weiterhin möglich, die Ergonomie lässt aber aufgrund fehlender Typinformationen zu wünschen übrig. Deshalb erlaubt TypeScript das Nachreichen eigener Typdefinitionen, die der API des jeweiligen Moduls Typsignaturen zuordnet. Hier stehen etwa 670 000 registrierten npm-Modulen nur etwa 5 000 handgeschriebene Typdefinitionen gegenüber.
Aufgabe:
Ziel dieser Arbeit ist die automatische Erzeugung von TypeScript Typdefinitionen aus vorhandenen npm-Modulen. Insbesondere sollen Funktionen, Klassen, Felder und Methoden aus dem JavaScript-Code erkannt und mit (generischen) Typen versehen werden. Eine Evaluation soll anhand des Vergleichs zu handgeschriebenen Typdefinitionen erfolgen.
Schlüsselworte
Statische Analyse Veröffentlichungen
Veröffentlichung |
Data Flow Based Type Inference for JavaScript |
Betreuer
Wissenschaftliche Mitarbeiter |
---|
Sebastian Graf |
Ehemalige Mitarbeiter |
---|
Dr.-Ing. Martin Hecker |
Studenten
Ehemalige Tutoren |
---|
Tobias Kahlert |