Překladač podmnožiny jazyka Python

Loading...
Thumbnail Image

Date

Authors

Falhar, Radek

Mark

C

Journal Title

Journal ISSN

Volume Title

Publisher

Vysoké učení technické v Brně. Fakulta informačních technologií

ORCID

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) doc. 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

DOI

Collections

Endorsement

Review

Supplemented By

Referenced By

Citace PRO