Rychlý jazyk z MatFyzu
Z Denik
Obsah |
[editovat] Nejrychlejší C#/PHP/Erlang/Prolog na světě!
Jméno projektu: Nejrychlejší implementace jazyka X na světě! Zkratka: Truffle Vedoucí: Petr Tůma Konzultanti: Jaroslav Tulach, Štěpán Šindelář
[editovat] Motivace
Chcete získat zkušenosti s platformou budoucnosti? Poznat Truffle - nástroj na psaní interpretrů běžících rychlostí assembleru? Platformu díky níž vaše banka zpracovává transakce rychleji? Dostat se blíže jádru překladače Graal, díky němuž Twitter zvládne přeposlat více tvítů na méně strojích a ušetřit milióny? Chcete, aby si vás v budoucnosti najímali ti největší giganti v IT, abyste jim zrychlili jejich výpočty?
Pojďte si vyzkoušet projekt v pražské pobočce OracleLabs a za pár měsíců se Váš obzor rozšíří o několik světelných let!
[editovat] Popis projektu
Znáte jazyk, který by vládl všem? My ne. Ale máme systém, který umožní jednoduše napsat interpret jakéhokoli jazyka a zajistí, že bude rychlý. Jak rychlý? Tak jako Java či V8 - tedy rychlejší než jakákoli jiná implementace stejného jazyka. Ukážeme si jak na to.
Vybereme si existující jazyk (CLR, PHP či jiný). Zvolíme si jeho podmnožinu (celková reimplementace by asi zabrala příliš mnoho času). Spustíme testy, které ji otestují. Změříme rychlost běhu. Naimplementujeme interpreter a spustíme na něm ty samé testy. Změříme rychlost. Ohlásíme, že jsme desetkrát rychlejší než standardní implementace daného jazyka. Nevěříte, přihlašte se a vyzkoušejte.
[editovat] Platforma, technologie
Interpret bude postaven nad technologií Truffle, která běží nad GraalVM. Programovacím jazykem tudíž bude Java či jiný jazyk, který se překládá do JVM bajtkódu.
[editovat] Odhad náročnosti
Jeden pracovní den týdně v centrále OracleLabs - Jinonice po dobu devíti měsíců.
[editovat] Vymezení projektu
- softwarové inženýrství
- vývoj software
- překladače a kompilátory
- testování a kvalita
[editovat] Poznámky
- Ukázkový Simple Language Maven projekt
- Výuková, avšak neobyčejně rychlá implementace jazyka BrainFuck
- Diskuze o implementaci PHP
- Diskuze o implementaci C#/.Net
- Pár myšlenek o Prologu