Překladač podmnožiny jazyka Python

Loading...
Thumbnail Image
Date
ORCID
Mark
C
Journal Title
Journal ISSN
Volume Title
Publisher
Vysoké učení technické v Brně. Fakulta informačních technologií
Abstract
Python je dynamicky typovaný, interpretovaný programovací jazyk. Díky dynamickému typovému systému je tedy obtížné jej zkompilovat do statického zdrojového kódu. Tedy kódu, kde je přesně dáno, jaké typy existují a jaká je jejich struktůra. Existuje několik způsobů jak tohoto dosáhnout a jedním z primárních je typová inference. Tento přístup se snaží určit struktura typů ze zdrojového kódu. V případě jazyka Python je však tento přístup obtížný, protože výsledný typový systém je velice komplexní a jazyk samotný není k typové inferenci navržen. V této práci jsem se zaměřil na identifikaci podmnožiny tohoto jazyka, aby byla možná typová inference při zachování co nejpřirozenějšího použití jazyka. Následně jsem implementoval překladač, který tuto podmnožinu přeloží do staticky typovaného jazyka, který pak lze přeložit do nativního kódu.
Python is dynamically typed interpreted programming language. Thanks to its dynamic type system, it is difficult to compile it into statically typed source code. The kind of source code, where it is exactly specified what types exist and what their structure is. Multiple approaches exist how to achieve this and one of the primary ones is type inference. This approach is attempting to infer the type structure from the source code. In case of Python language, this approach is difficult, because resulting type system is quite complex and language itself is not designed for type inference. In this work, I have focused on identifying subset of this language, so that type inference is possible while keeping the natural way the language is used. Then I implemented a compiler, which will compile this subset into statically typed language, which can be translated into native code.
Description
Citation
FALHAR, R. Překladač podmnožiny jazyka Python [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2014.
Document type
Document version
Date of access to the full text
Language of document
cs
Study field
Informační systémy
Comittee
prof. RNDr. Alexandr Meduna, CSc. (předseda) prof. Ing. Tomáš Hruška, CSc. (místopředseda) Ing. Michal Bidlo, Ph.D. (člen) prof. Ing. Jan Holub, Ph.D. (člen) RNDr. Marek Rychlý, Ph.D. (člen) doc. Ing. František Zbořil, Ph.D. (člen)
Date of acceptance
2014-06-24
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 C Otázky u obhajoby: Můžete definovat konkrétní typ a generický typ ? Sekce 4.1.3 se zabývá čtením indexu třídy. Je možné přistupovat k indexu n-tice (angl. n-tuple) pomocí proměnné, nebo je vždy nezbytné indexovat konstantním výrazem?  Jaké úpravy by vyžadovala podpora překladu modulů?
Result of defence
práce byla úspěšně obhájena
Document licence
Standardní licenční smlouva - přístup k plnému textu bez omezení
DOI
Collections
Citace PRO