Název:
Překladač jazyka BASIC do assembleru
Překlad názvu:
Compiler from BASIC language to assembler
Autoři:
Šafařík, Tomáš ; Yaghob, Jakub (vedoucí práce) ; Dokulil, Jiří (oponent) Typ dokumentu: Bakalářské práce
Rok:
2008
Jazyk:
cze
Abstrakt: [cze][eng] Následující text pojednává o prekladaci do assembleru programovacího jazyku, který je odvozen z jazyku BASIC. Tento nove vytvorený programovací jazyk je na zacátku specifikován vcetne diskuse o jednotlivých programovacích konstrukcích. V dalších kapitolách jsou potom popsány analýza a implementace prekladace. V kapitole pojednávající o analýze jsou popsány symbolické sémantické tabulky a reprezentace mezikódu prekladace. V kapitole o implementaci je možné nalézt bližší popis jednotlivých datových struktur a algoritmu použitých v prekladaci. V textu také nalezneme kapitolu popisující knihovny jazyku a behovou podporu preloženého programu. Další kapitola obsahuje popis implementace nekterých optimalizací. Jedná se o constant folding, unreachable code elimination, common subexpression elimination, elimination a function inlining. Poslední cást práce ukazuje zpusoby jak rozšírit jak jazyk, tak prekladac. Ctenár se muže také seznámit s nástroji jako Bison nebo Flex, které jsou použity pri implementaci prekladace.This text treats of the compiler into assembly language of the programming language which is derived from programming language BASIC. This derived language is specified including the analysis of the language constructions. In the next chapters are described analysis and implementation of our compiler for this programming language. In the chapter about analysis are described symbol tables, semantic tables and intermediate code representations of the compiler. In the section about implementations is possible to find more detail describe of data structures and algorithms used in the compiler. This text also contains a chapter describing the implementation of language libraries and runtime support for compiled programs. The next part of this work is about implementation some optimizations. These optimizations are: constant folding, unreachable code elimination, common subexpression elimination, elimination and function inlining. The final part explains how to extend designed programming language and how to make better compiler of this language. The reader can also familiarize with tools like Bison or Flex which are used during the implementation of the compiler.