• Treffer 35 von 89
Zurück zur Trefferliste

Exploratory tool-building platforms for polyglot virtual machines

  • Polyglot programming allows developers to use multiple programming languages within the same software project. While it is common to use more than one language in certain programming domains, developers also apply polyglot programming for other purposes such as to re-use software written in other languages. Although established approaches to polyglot programming come with significant limitations, for example, in terms of performance and tool support, developers still use them to be able to combine languages. Polyglot virtual machines (VMs) such as GraalVM provide a new level of polyglot programming, allowing languages to directly interact with each other. This reduces the amount of glue code needed to combine languages, results in better performance, and enables tools such as debuggers to work across languages. However, only a little research has focused on novel tools that are designed to support developers in building software with polyglot VMs. One reason is that tool-building is often an expensive activity, another one is thatPolyglot programming allows developers to use multiple programming languages within the same software project. While it is common to use more than one language in certain programming domains, developers also apply polyglot programming for other purposes such as to re-use software written in other languages. Although established approaches to polyglot programming come with significant limitations, for example, in terms of performance and tool support, developers still use them to be able to combine languages. Polyglot virtual machines (VMs) such as GraalVM provide a new level of polyglot programming, allowing languages to directly interact with each other. This reduces the amount of glue code needed to combine languages, results in better performance, and enables tools such as debuggers to work across languages. However, only a little research has focused on novel tools that are designed to support developers in building software with polyglot VMs. One reason is that tool-building is often an expensive activity, another one is that polyglot VMs are still a moving target as their use cases and requirements are not yet well understood. In this thesis, we present an approach that builds on existing self-sustaining programming systems such as Squeak/Smalltalk to enable exploratory programming, a practice for exploring and gathering software requirements, and re-use their extensive tool-building capabilities in the context of polyglot VMs. Based on TruffleSqueak, our implementation for the GraalVM, we further present five case studies that demonstrate how our approach helps tool developers to design and build tools for polyglot programming. We further show that TruffleSqueak can also be used by application developers to build and evolve polyglot applications at run-time and by language and runtime developers to understand the dynamic behavior of GraalVM languages and internals. Since our platform allows all these developers to apply polyglot programming, it can further help to better understand the advantages, use cases, requirements, and challenges of polyglot VMs. Moreover, we demonstrate that our approach can also be applied to other polyglot VMs and that insights gained through it are transferable to other programming systems. We conclude that our research on tools for polyglot programming is an important step toward making polyglot VMs more approachable for developers in practice. With good tool support, we believe polyglot VMs can make it much more common for developers to take advantage of multiple languages and their ecosystems when building software.zeige mehrzeige weniger
  • Durch Polyglottes Programmieren können Softwareentwickler:innen mehrere Programmiersprachen für das Bauen von Software verwenden. Während diese Art von Programmierung in einigen Programmierdomänen üblich ist, wenden Entwickler:innen Polyglottes Programmieren auch aus anderen Gründen an, wie zum Beispiel, um Software über Programmiersprachen hinweg wiederverwenden zu können. Obwohl die bestehenden Ansätze zum Polyglotten Programmieren mit erheblichen Einschränkungen verbunden sind, wie beispielsweise in Bezug zur Laufzeitperformance oder der Unterstützung durch Programmierwerkzeuge, werden sie dennoch von Entwickler:innen genutzt, um Sprachen kombinieren zu können. Mehrsprachige Ausführungsumgebungen wie zum Beispiel GraalVM bieten Polyglottes Programmieren auf einer neuen Ebene an, welche es Sprachen erlaubt, direkt miteinander zu interagieren. Dadurch wird die Menge an notwendigem Glue Code beim Kombinieren von Sprachen reduziert und die Laufzeitperformance verbessert. Außerdem können Debugger und andere Programmierwerkzeuge überDurch Polyglottes Programmieren können Softwareentwickler:innen mehrere Programmiersprachen für das Bauen von Software verwenden. Während diese Art von Programmierung in einigen Programmierdomänen üblich ist, wenden Entwickler:innen Polyglottes Programmieren auch aus anderen Gründen an, wie zum Beispiel, um Software über Programmiersprachen hinweg wiederverwenden zu können. Obwohl die bestehenden Ansätze zum Polyglotten Programmieren mit erheblichen Einschränkungen verbunden sind, wie beispielsweise in Bezug zur Laufzeitperformance oder der Unterstützung durch Programmierwerkzeuge, werden sie dennoch von Entwickler:innen genutzt, um Sprachen kombinieren zu können. Mehrsprachige Ausführungsumgebungen wie zum Beispiel GraalVM bieten Polyglottes Programmieren auf einer neuen Ebene an, welche es Sprachen erlaubt, direkt miteinander zu interagieren. Dadurch wird die Menge an notwendigem Glue Code beim Kombinieren von Sprachen reduziert und die Laufzeitperformance verbessert. Außerdem können Debugger und andere Programmierwerkzeuge über mehrere Sprachen hinweg verwendet werden. Jedoch hat sich bisher nur wenig wissenschaftliche Arbeit mit neuartigen Werkzeugen beschäftigt, die darauf ausgelegt sind, Entwickler:innen beim Polyglotten Programmieren mit mehrsprachigen Ausführungsumgebungen zu unterstützen. Ein Grund dafür ist, dass das Bauen von Werkzeugen üblicherweise sehr aufwendig ist. Ein anderer Grund ist, dass sich mehrsprachige Ausführungsumgebungen immer noch ständig weiterentwickeln, da ihre Anwendungsfälle und Anforderungen noch nicht ausreichend verstanden sind. In dieser Arbeit stellen wir einen Ansatz vor, der auf selbsttragenden Programmiersystemen wie zum Beispiel Squeak/Smalltalk aufbaut, um Exploratives Programmieren, eine Praktik zum Explorieren und Erfassen von Softwareanforderungen, sowie das Wiederverwenden ihrer umfangreichen Fähigkeiten zum Bauen von Werkzeugen im Rahmen von mehrsprachigen Ausführungsumgebungen zu ermöglichen. Basierend auf TruffleSqueak, unserer Implementierung für die GraalVM, zeigen wir anhand von fünf Fallstudien, wie unser Ansatz Werkzeugentwickler:innen dabei hilft, neue Werkzeuge zum Polyglotten Programmieren zu entwerfen und zu bauen. Außerdem demonstrieren wir, dass TruffleSqueak auch von Anwendungsentwickler:innen zum Bauen und Erweitern von polyglotten Anwendungen zur Laufzeit genutzt werden kann und Sprach- sowie Laufzeitentwickler:innen dabei hilft, das dynamische Verhalten von GraalVM-Sprachen und -Interna zu verstehen. Da unsere Plattform dabei all diesen Entwickler:innen Polyglottes Programmieren erlaubt, trägt sie außerdem dazu bei, dass Vorteile, Anwendungsfälle, Anforderungen und Herausforderungen von mehrsprachigen Ausführungsumgebungen besser verstanden werden können. Darüber hinaus zeigen wir, dass unser Ansatz auch auf andere mehrsprachige Ausführungsumgebungen angewandt werden kann und dass die Erkenntnisse, die man durch unseren Ansatz gewinnen kann, auch auf andere Programmiersysteme übertragbar sind. Wir schlussfolgern, dass unsere Forschung an Werkzeugen zum Polyglotten Programmieren ein wichtiger Schritt ist, um mehrsprachige Ausführungsumgebungen zugänglicher für Entwickler:innen in der Praxis zu machen. Wir sind davon überzeugt, dass diese Ausführungsumgebungen mit guter Werkzeugunterstützung dazu führen können, dass Softwareentwickler:innen häufiger von den Vorteilen der Verwendung mehrerer Programmiersprachen zum Bauen von Software profitieren wollen.zeige mehrzeige weniger

Volltext Dateien herunterladen

  • SHA-512:f98ed74727e576ff12ea42adb135b886c883295bdc3794aaa1a1f9329c4e0e0d77928579704d2cdf116b0e20d932b4f1971b70f0a1b5832dc954dbc3cbe111b3

Metadaten exportieren

Metadaten
Verfasserangaben:Fabio NiephausORCiDGND
URN:urn:nbn:de:kobv:517-opus4-571776
DOI:https://doi.org/10.25932/publishup-57177
Gutachter*in(nen):Elisa Gonzalez BoixORCiD, Laurence TrattORCiD
Betreuer*in(nen):Robert Hirschfeld
Publikationstyp:Dissertation
Sprache:Englisch
Erscheinungsjahr:2022
Veröffentlichende Institution:Universität Potsdam
Titel verleihende Institution:Universität Potsdam
Datum der Abschlussprüfung:22.07.2022
Datum der Freischaltung:21.12.2022
Freies Schlagwort / Tag:GraalVM; Programmierwerkzeuge; Smalltalk; polyglottes Programmieren; virtuelle Maschinen
GraalVM; Smalltalk; polyglot programming; programming tools; virtual machines
Seitenanzahl:xxi, 249
RVK - Regensburger Verbundklassifikation:ST 232, ST 230, ST 240
Organisationseinheiten:Digital Engineering Fakultät / Hasso-Plattner-Institut für Digital Engineering GmbH
CCS-Klassifikation:D. Software / D.1 PROGRAMMING TECHNIQUES (E) / D.1.m Miscellaneous
D. Software / D.2 SOFTWARE ENGINEERING (K.6.3) / D.2.6 Programming Environments / Integrated environments (NEW)
D. Software / D.3 PROGRAMMING LANGUAGES / D.3.4 Processors / Run-time environments
DDC-Klassifikation:0 Informatik, Informationswissenschaft, allgemeine Werke / 00 Informatik, Wissen, Systeme / 004 Datenverarbeitung; Informatik
Lizenz (Deutsch):License LogoCC-BY-SA - Namensnennung, Weitergabe zu gleichen Bedingungen 4.0 International
Verstanden ✔
Diese Webseite verwendet technisch erforderliche Session-Cookies. Durch die weitere Nutzung der Webseite stimmen Sie diesem zu. Unsere Datenschutzerklärung finden Sie hier.