Témata prací (Výběr práce)Témata prací (Výběr práce)(verze: 368)
Detail práce
   Přihlásit přes CAS
Moderní generátor lexikálních scannerů
Název práce v češtině: Moderní generátor lexikálních scannerů
Název v anglickém jazyce: Modern lexical scanner generator
Akademický rok vypsání: 2006/2007
Typ práce: diplomová práce
Jazyk práce:
Ústav: Katedra softwarového inženýrství (32-KSI)
Vedoucí / školitel: RNDr. Jakub Yaghob, Ph.D.
Řešitel: skrytý - zadáno a potvrzeno stud. odd.
Datum přihlášení: 14.11.2006
Datum zadání: 14.11.2006
Zásady pro vypracování
Jednou z částí překladače je lexikální analýza. Pro reálné programovací jazyky je však vytvoření lexikální analýzy příliš složité. Proto se v praxi používají generátory lexikálních scannerů.
Jedním z nejpoužívanějších generátorů lexikálních scannerů je Flex. Bohužel je velmi zastaralý a neodpovídá současným požadavkům kladeným na současné programovací jazyky i pracovní prostředí.
První částí práce je analýza technik používaných v lexikální analýze. Druhým cílem práce je implementace generátoru lexikálních scannerů v jazyce C++ s důrazem na přenositelnost mezi operačními systémy a překladači. Vstupní soubory mohou být v Unicode, vygenerovaný lexikální scanner musí být schopen zpracovávat vstupní soubory v Unicode. Generátor musí umožňovat generování cílového kódu pro různé programovací jazyky.
Seznam odborné literatury
Projekt Flex: http://flex.sourceforge.net/
J.S. Vitter, W.-Ch. Chen: Design and Analysis of Coalesced Hashing, Oxford University Press, New York, 1987
Pokorný, J., Žemlička, M.: Základy implementace souborů a databází. Skripta UK, Vydavatelství Karolinum, 2003. 2. uprav. vydání
J.E. Hopcroft, J.D. Ullman: Introduction to Automata Theory, Languages and Computation, Addison-Wesley, 1979
Unicode: http://www.unicode.org/
Předběžná náplň práce v anglickém jazyce
One of the parts of a compiler is a lexical analysis. Creating manually a lexical analysis is a difficult task for real programming languages. Therefore generators of lexical scanners are used in a praxis.
One of the most used generators of lexical scanners is Flex. Unfortunately, it is outdated and it does not fit to requirements laid on contemporary programming languages and working environment.
The first goal is an analysis of techniques used in a lexical analysis. The second goal is an implementation of a generator of lexical scanners. The implementation will be written in the C++ language with emphasis on portability among operating systems and compilers. Input files can be in the Unicode, generated lexical scanner must be able to accept input files in the Unicode. Moreover, the generator must be able to generate target code for different programming languages.
 
Univerzita Karlova | Informační systém UK