diplomovka.sme.sk » Katalóg » Univerzita Komenského » Fakulta matematiky, fyziky a informatiky » Katedra aplikovanej informatiky » Yon - návrh a implementácia nového programovacieho jazyka

Meta:

Za prácu už hlasovalo
8 čitateľov
Zaujala aj vás? Hlasujte!
Michal Antonič
miso.antonic@gmail.com

Dostupný celý text práce:
WEB
r. 2011

Školiteľ:
RNDr. Andrej Blaho, PhD.

Kľúčové slová:
programovací jazyk, typová inferencia, programovacie paradigmy, cpa, type checking

Vedný odbor:
PRÍRODNÉ VEDY » Informatické vedy » Informatika

Škola:
Univerzita Komenského » Fakulta matematiky, fyziky a informatiky » Katedra aplikovanej informatiky

Dublin Core:
Dublin Core verzia

MARC21XML:
Verzia vo formáte MARC21XML

OAI:
Verzia pre Iniciatívu otvorených archívov

BibTex:
Verzia vo formáte BibTex

Upozornenie: obsah diplomovej práce je chránený autorským zákonom č. 618/2003 Z.z.

Yon - návrh a implementácia nového programovacieho jazyka

Michal Antonič (Školiteľ: RNDr. Andrej Blaho, PhD.) | pridané: 11. augusta 2011

Abstrakt diplomovej práce:

Yon je nový multiparadigmálny programovací jazyk s typovou inferenciou. Okrem objektového a funkcionálneho programovania podporuje aj tradičné imperatívne štruktúrované programovanie. Jazyk tiež obsahuje automatickú správu pamäte, duck typing, lexikálne uzávery, optimalizáciu chvostových volaní, korutíny, lenivé zoznamy (prostredníctvom generátorov), properties, preťažovanie operátorov, funktory, statické typovanie, typovú inferenciu a dobrovoľné typové anotácie. Implementácia pozostáva z kompilátora a virtuálneho stroja (oba napísané v C++). Ďalšiu samostatnú časť tvorí type checker naprogramovaný priamo v Yone. V predbežných testoch je Yon rýchlejší ako jazyky Python a Ruby. Programy napísané v tomto jazyku v sebe spájajú to najlepšie zo statických i dynamických jazykov – obsahujú veľmi málo explicitných typových anotácií a môžu využívať (okrem iného) aj duck typing. Napriek tomu sú tieto programy kontrolované voči typovým chybám už počas kompilácie.

Implementácia type checkera je založená na algoritme Cartesian Product Algorithm (CPA) od Ole Agesena. Obsahuje však aj niekoľko vylepšení, menovite adaptáciu pôvodného algoritmu na radikálne odlišný programovací jazyk, kontrolu a hlásenie typových chýb a využitie explicitných typových anotácií. Súčasťou infraštruktúry type checkera je aj skener a parser; nielenže sú tieto moduly (napísané v Yone) výrazne kratšie ako ich C++ náprotivky, vyžadujú tiež podstatne menej explicitných typových anotácií.

Diskusia k vedeckej práci:

Dostupnosť diplomovej práce:

Diplomovú prácu poskytne autor na záujemcom na požiadanie (pošlite autorovi správu cez doleuvedený formulár).

Plný text diplomovej práci je k dispozícii na internete:
www.stack.sk/ yon/ YonThesisFinal.pdf

Diplomová práca sa nachádza v knižnici tejto vysokej školy:
Univerzita Komenského - Fakulta matematiky, fyziky a informatiky - Katedra aplikovanej informatiky

Univerzita Komenského v Bratislave, Fakulta matematiky, fyziky a informatiky, Knižničné a edičné centrum
Mlynská dolina, Pavilón 1
Bratislava 4
842 41
http://www.fmph.uniba.sk/

Kontakt na autora diplomovej práce

Správa pre diplomanta/autora:

Bezpečnostný kód:
Kontrola
 

Bibliografický odkaz

ANTONIČ, Michal: Yon - návrh a implementácia nového programovacieho jazyka [ Diplomová práca ] Univerzita Komenského, Fakulta matematiky, fyziky a informatiky, Katedra aplikovanej informatiky. Školiteľ: RNDr. Andrej Blaho, PhD.. Rok obhajoby: 2011

Diploma Thesis:

Yon - design and implementation of a new programming language (Diplomová práca)

Michal Antonič (Supervisor: RNDr. Andrej Blaho, PhD.) | added: 11. augusta 2011

Abstract of diploma thesis:

Yon is a new multi-paradigm programming language with type inference. It supports object-oriented programming, functional programming and traditional imperative (structured) programming.

Yon is a new multi-paradigm programming language with type inference. It supports object-oriented programming, functional programming and traditional imperative (structured) programming. The language also features automatic garbage collection, duck typing, lexical closures, tail call elimination, coroutines, lazy lists (via generators), properties, operator overloading, functors, static typing, type inference and optional type annotations.

The implementation consists of a bytecode compiler and a virtual machine, both written in C++ from scratch. Moreover, Yon also sports a type checker written in Yon itself. The language appears to be faster than both Python and Ruby in preliminary benchmarks.

Programs written in Yon combine some of the best properties of both static and dynamic languages - they contain very few explicit type annotations and may use duck typing, among other features. Yet, these programs are fully statically type checked, providing compile-time error messages.

The implementation of the type checker is based on the Cartesian Product Algorithm by Ole Agesen (CPA). The type checker of Yon makes several contributions to the original algorithm, namely the adaptation to an entirely different programming language, support for error reporting and handling of explicit type annotations. The infrastructure for the type checker also contains a scanner and a parser, also written in Yon. Not only are these re-implementations much shorter than their C++ counterparts, they also require much fewer type annotations.