Source code generator
Generátor zdrojového kódu
diplomová práce (OBHÁJENO)
![Náhled dokumentu](/bitstream/handle/20.500.11956/17235/thumbnail.png?sequence=7&isAllowed=y)
Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/17235Identifikátory
SIS: 46018
Kolekce
- Kvalifikační práce [11266]
Autor
Vedoucí práce
Oponent práce
Yaghob, Jakub
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Softwarové systémy
Katedra / ústav / klinika
Katedra softwarového inženýrství
Datum obhajoby
24. 9. 2008
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Angličtina
Známka
Výborně
Pri testovaní prekladačov a iných nástrojov na spracovanie zdrojového kódu zohrávajú obvykle rolu dátových vstupov manuálne vytvárané a zostavované sety skúšobných programov. Príprava takýchto setov v zodpovedajúcej kvalite je však nákladná ide o náročný a dlhotrvajúci proces. Táto práca skúma možnosti automatizácie procesu tvorby skúšobných programov prostredníctvom generácie zdrojového kódu. Cielom práce je návrh generátora schopného produkovať korektné programy vo vybranom vysokoúrovňovom programovacom jazyku. V tejto súvislosti práca prezentuje niekolko teoretických metód a algoritmov na pseudonáhodnú generáciu zdrojového kódu. Metódy zaoberajúce sa bezkontextovými a kontextovo závislými syntaktickými pravidlami sú diskutované samostatne. Praktická využitelnosť týchto metód je následne demonštrovaná na troch prototypových implementáciách - dvoch generátoroch zdrojového kódu a jednom nástroji na analýzu gramatík. Prvý generátor vytvára reťazce podla danej stochastickej bezkontextovej gramatiky, druhý umožňuje generovať programy splňujúce de finíciu jazyka Pascal podla normy ISO/IEC 7185:1990.
It is a common practice to perform compiler testing with a set of hand-written sample programs. However, gathering larger collections of high-quality test cases is a di ficult and time consuming task. This work explores the potential of automatic source code generation techniques to simplify the construction of test suites for compilers and other source code processing tools (e.g. pretty-printers, static code analysis tools, refactoring engines, etc.). The goal is to design a source code generator capable of producing compiletime correct programs in a selected high-level programming language. A set of theoretical methods and algorithms for pseudo-random source code generation is presented. Specifi c methods are designed for handling context-free and context-sensitive syntax rules of the target languages. The applicability of these methods in practice is demonstrated by the implementation of three prototype tools two source code generators and one grammar analysis tool. One of the source code generators produces random sentences according to a given stochastic context-free grammar while the other can be used for generation of ISO/IEC 7185:1990 conformant Pascal programs.