Pascal with Truffle
Název práce v češtině: | Pascal nad Trufflem |
---|---|
Název v anglickém jazyce: | Pascal with Truffle |
Klíčová slova: | Pascal, Truffle, JIT překladač |
Klíčová slova anglicky: | Pascal, Truffle, JIT compiler |
Akademický rok vypsání: | 2016/2017 |
Typ práce: | bakalářská práce |
Jazyk práce: | angličtina |
Ústav: | Katedra distribuovaných a spolehlivých systémů (32-KDSS) |
Vedoucí / školitel: | Mgr. Vojtěch Horký, Ph.D. |
Řešitel: | skrytý - zadáno a potvrzeno stud. odd. |
Datum přihlášení: | 27.10.2016 |
Datum zadání: | 03.11.2016 |
Datum potvrzení stud. oddělením: | 29.11.2016 |
Datum a čas obhajoby: | 06.09.2017 00:00 |
Datum odevzdání elektronické podoby: | 21.07.2017 |
Datum odevzdání tištěné podoby: | 21.07.2017 |
Datum proběhlé obhajoby: | 06.09.2017 |
Oponenti: | RNDr. David Bednárek, Ph.D. |
Zásady pro vypracování |
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. |
Seznam odborné literatury |
[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 |