Vytvoření nového programovacího jazyka a jeho transpilátoru
Loading...
Date
Authors
Soukup, Martin
Advisor
Referee
Mark
D
Journal Title
Journal ISSN
Volume Title
Publisher
Vysoké učení technické v Brně. Fakulta informačních technologií
ORCID
Abstract
Tato práce řeší způsob jakým je možné využít transpilaci mezi programovacími jazyky za pomoci navržení vlastního programovacího jazyka. Cílem je poukázat na rozdíly mezi kompilací programovacích jazyků a transpilaci mezi nimi. Cílem je pochopit základní principy jazyků jako je syntaxe, sémantika a generování kódu. Navržený transpilátor poté transformuje zdrojový kód v navrženém jazyce do jiných známých programovacích jazyků. Tím je následně umožněna následná integrace s existujícími nástroji a ekosystémy v jiných jazycích ( například v jazyce Python, PHP nebo C++). Práce obsahuje navržení lexikální analýzy, syntaktické analýzy, vytvoření Abstraktního syntaktického stromu a generování kódu do cílového jazyka za pomoci konstrukcí užívaných v kompilátorech a teorie formálních jazyků. Tímto procesem práce zvýrazňuje rozdíly mezi kompilací a transpilací, výhody i nevýhody transpilace v určitých případech a jakým způsobem se může navrhnout překlad mezi zdrojovými kódy a cílovými implementacemi.
This thesis explores the possibility of using the tranpilation between programming languages with help of creating a new programming language. The goal is to show differences between compiling programming languages and transpiling between the. Understanding the basic principals of transpilation like syntax, semantics and code generation, Created transpiler then transforms the source code to the target code written in the different known programming language. Obtaining the ability for integration with existing ecosystems and tools in a different programming language ( for example: Python, PHP or C++). Thesis contains creating Lexical analysis, Syntax analysis, Abstract Syntax tree and code generation to the target code, leveraging the constructs of compilers and theory of formal languages. Through this process thesis highlights the differences between compiling and transpiling the language, it’s challenges and trade-offs in a certain cases and how can translation between source code and target implementation be achieved.
This thesis explores the possibility of using the tranpilation between programming languages with help of creating a new programming language. The goal is to show differences between compiling programming languages and transpiling between the. Understanding the basic principals of transpilation like syntax, semantics and code generation, Created transpiler then transforms the source code to the target code written in the different known programming language. Obtaining the ability for integration with existing ecosystems and tools in a different programming language ( for example: Python, PHP or C++). Thesis contains creating Lexical analysis, Syntax analysis, Abstract Syntax tree and code generation to the target code, leveraging the constructs of compilers and theory of formal languages. Through this process thesis highlights the differences between compiling and transpiling the language, it’s challenges and trade-offs in a certain cases and how can translation between source code and target implementation be achieved.
Description
Keywords
Kompilátor , Transpilátor , Programovací jazyk , Abstraktní syntaktický strom , Lexikální analýza , Syntaktická analýza , Generování kódu , Překlad , PHP , Python , C++. , Compiler , Transpiler , Translation , Programming Language , Abstract Syntax Tree , Lexical Analysis , Syntax Analysis , Code Generating , PHP , Python , C++.
Citation
SOUKUP, M. Vytvoření nového programovacího jazyka a jeho transpilátoru [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2025.
Document type
Document version
Date of access to the full text
Language of document
cs
Study field
Informační technologie
Comittee
prof. RNDr. Alexandr Meduna, CSc. (předseda)
Ing. Martin Hrubý, Ph.D. (člen)
Ing. Tomáš Milet, Ph.D. (člen)
Ing. Zbyněk Křivka, Ph.D. (člen)
Ing. Marcela Zachariášová, Ph.D. (člen)
Date of acceptance
2025-06-20
Defence
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm D.
Result of defence
práce byla úspěšně obhájena
