Thesis (Selection of subject)Thesis (Selection of subject)(version: 381)
Thesis details
   Login via CAS
Pascal with Truffle
Thesis title in Czech: Pascal nad Trufflem
Thesis title in English: Pascal with Truffle
Key words: Pascal, Truffle, JIT překladač
English key words: Pascal, Truffle, JIT compiler
Academic year of topic announcement: 2016/2017
Thesis type: Bachelor's thesis
Thesis language: angličtina
Department: Department of Distributed and Dependable Systems (32-KDSS)
Supervisor: Mgr. Vojtěch Horký, Ph.D.
Author: hidden - assigned and confirmed by the Study Dept.
Date of registration: 27.10.2016
Date of assignment: 03.11.2016
Confirmed by Study dept. on: 29.11.2016
Date and time of defence: 06.09.2017 00:00
Date of electronic submission:21.07.2017
Date of submission of printed version:21.07.2017
Date of proceeded defence: 06.09.2017
Opponents: RNDr. David Bednárek, Ph.D.
 
 
 
Guidelines
The goal of the thesis is to design and implement an interpreter of the Pascal programming language using the Truffle framework (a library for writing interpreters on top of Graal/Java VM).

The interpreter will support the original language specification (as designed by Niklaus Wirth) as well as some extensions provided by the well-known Turbo Pascal compiler. Among the supported extensions of Turbo Pascal will be (long) strings, additional integer types, units (modules) and a selected subset of the standard units (base libraries). Where possible, the functionality would mimic the original behavior closely (e.g. basic file operations from the DOS module) with a reasonable fallback. Unsupported features (e.g. inline assembler) must be reported to the user without actually starting the interpretation.

The goal of the thesis is to create a functional environment for Pascal that is open to extensions and integration. It must be possible to add new system units to the environment as well as add new language constructs without breaking compatibility with existing programs. The interpreter must be easily integrated into bigger programs where it can serve e.g. as a scripting engine.

The interpreter is expected to work as a command-line utility (any binding to OS must use Java-provided API). Although the goal of the thesis is not to create a performance-optimized interpreter, the performance aspect can not be omitted and at least a comparison with other compilers must be present in the thesis.
References
[1] Niklaus Wirth: The Programming Language Pascal (Revised Report), 1973.
[2] Borland International Inc.: TURBO Pascal 7 Reference Manual, 1992
[3] Truffle: https://github.com/graalvm/truffle, 2016
[4] Alfred V. Aho et al.: Compilers: Principles, Techniques, and Tools, 2006
 
Charles University | Information system of Charles University | http://www.cuni.cz/UKEN-329.html