Pascal with Truffle
Pascal nad Trufflem
bachelor thesis (DEFENDED)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/90438Identifiers
Study Information System: 184794
Collections
- Kvalifikační práce [10957]
Author
Advisor
Referee
Bednárek, David
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
Programming and Software Systems
Department
Department of Distributed and Dependable Systems
Date of defense
6. 9. 2017
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
English
Grade
Very good
Keywords (Czech)
Pascal, Truffle, JIT překladačKeywords (English)
Pascal, Truffle, JIT compilerTrupple je nekonvenčný interpret Pascalu vybudovaný vo frameworku Truffle od Oraclu. Použitím tohto frameworku sa stáva virtuálne platformovo nezávislý, pretože beží v Java Virtual Machine a môže tiež jednoducho komunikovat' s ostatnými Truffle jazykmi a samotnou Javou. Interpret stavia syntaktický strom z l'ubovolného Pascalovského zdrojového kódu a následne ho interpretuje od koreňového vrcholu. Podporuje Pascal podl'a štandardu ISO 7185 a implementuje niektoré bežne používané rozšírenia zavedené prekladačom Turbo Pascal od Borlandu. V tejto práci popíšeme architektúru interpretu, dôležité návrhové rozhodnutia, použité technológie a tiež poskytneme krátke hodnotenie výkonnosti Trupplu. 1
Trupple is an unconventional Pascal interpreter built on top of Oracle's Truffle frame- work. By using this framework, it is virtually platform independent because it runs in Java Virtual Machine and can also easily communicate with other Truffle-based languages and Java itself. The interpreter builds an abstract syntax tree from any Pascal source code and consequently executes the tree from its root node. It supports Pascal according to ISO 7185 standard and implements some commonly used exten- sions introduced by Borland's Turbo Pascal compiler. In this work, we describe the architecture of the interpreter, important design decisions, used technologies and we also provide a brief performance evaluation of Trupple. 1