Illicium A modular transpilation toolchain ...
Type de document :
Communication dans un congrès avec actes
Titre :
Illicium A modular transpilation toolchain from Pharo to C
Auteur(s) :
Misse-Chanabier, Pierre [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Aranega, Vincent [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Polito, Guillermo [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Ducasse, Stephane [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Aranega, Vincent [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Polito, Guillermo [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Ducasse, Stephane [Auteur]
Analyses and Languages Constructs for Object-Oriented Application Evolution [RMOD]
Titre de la manifestation scientifique :
IWST19 — International Workshop on Smalltalk Technologies
Ville :
Köln
Pays :
Allemagne
Date de début de la manifestation scientifique :
2019-08-27
Mot(s)-clé(s) en anglais :
Transpilation
Pharo
C language
Tools
Pharo
C language
Tools
Discipline(s) HAL :
Informatique [cs]
Informatique [cs]/Langage de programmation [cs.PL]
Informatique [cs]/Langage de programmation [cs.PL]
Résumé en anglais : [en]
The Pharo programming language runs on the OpenSmalltalk-VM. This Virtual Machine (VM) is mainly written in Slang, a subset of the Smalltalk language dedicated to VM development. Slang is transpiled to C using the Slang-to-C ...
Lire la suite >The Pharo programming language runs on the OpenSmalltalk-VM. This Virtual Machine (VM) is mainly written in Slang, a subset of the Smalltalk language dedicated to VM development. Slang is transpiled to C using the Slang-to-C transpiler. The generated C is then compiled to produce the VM exe-cutable binary code. Slang is a powerful dialect for generating C because it benefits from the tools of the Smalltalk environment, including a simulator that runs and debugs the VM. However, the Slang-to-C transpiler is often too permissive. For example, the Slang-to-C transpiler generates invalid C code from some Smalltalk concepts it does not support. This makes the Slang code hard to debug as the errors are caught very late during the development process, which is worsen by the loss of the mapping between the generated C code and Slang. The Slang-to-C transpiler is also hard to extend or adapt to modify part of the translation process. In this paper we present Illicium, a new modular transpila-tion toolchain based on a subset of Pharo targeting C through AST transformations. This toolchain translates the Pharo AST into a C AST to generate C code. Using ASTs as source and target artifacts enables analysis, modification and validation at different levels during the translation process. The main translator is split into smaller and replaceable translators to increase modularity. Illicium also allows the possibility to introduce new translators and to chain them together, increasing reusability. To evaluate our approach, we show with a use case how to extend the transpilation process with a translation that requires changes not considered in the original C AST.Lire moins >
Lire la suite >The Pharo programming language runs on the OpenSmalltalk-VM. This Virtual Machine (VM) is mainly written in Slang, a subset of the Smalltalk language dedicated to VM development. Slang is transpiled to C using the Slang-to-C transpiler. The generated C is then compiled to produce the VM exe-cutable binary code. Slang is a powerful dialect for generating C because it benefits from the tools of the Smalltalk environment, including a simulator that runs and debugs the VM. However, the Slang-to-C transpiler is often too permissive. For example, the Slang-to-C transpiler generates invalid C code from some Smalltalk concepts it does not support. This makes the Slang code hard to debug as the errors are caught very late during the development process, which is worsen by the loss of the mapping between the generated C code and Slang. The Slang-to-C transpiler is also hard to extend or adapt to modify part of the translation process. In this paper we present Illicium, a new modular transpila-tion toolchain based on a subset of Pharo targeting C through AST transformations. This toolchain translates the Pharo AST into a C AST to generate C code. Using ASTs as source and target artifacts enables analysis, modification and validation at different levels during the translation process. The main translator is split into smaller and replaceable translators to increase modularity. Illicium also allows the possibility to introduce new translators and to chain them together, increasing reusability. To evaluate our approach, we show with a use case how to extend the transpilation process with a translation that requires changes not considered in the original C AST.Lire moins >
Langue :
Anglais
Comité de lecture :
Oui
Audience :
Internationale
Vulgarisation :
Non
Collections :
Source :
Fichiers
- https://hal.archives-ouvertes.fr/hal-02297860/document
- Accès libre
- Accéder au document
- https://hal.archives-ouvertes.fr/hal-02297860/document
- Accès libre
- Accéder au document
- https://hal.archives-ouvertes.fr/hal-02297860/document
- Accès libre
- Accéder au document
- document
- Accès libre
- Accéder au document
- final_submission.pdf
- Accès libre
- Accéder au document