Přejít k navigační liště

Zdroják » Zprávičky » Fructose: překlad z Ruby do PHP

Fructose: překlad z Ruby do PHP

Zprávičky PHP, Různé

Nálepky:

Překlad z jazyka s vyšší úrovní abstrakce do jazyka s nižší úrovní je na webu stále populárnější – cílovým jazykem bylo HTML, CSS, JavaScript, s Fructose je to i PHP5.

Buďme přesní – Fructose není překladač z Ruby; vstupní jazyk není přímo Ruby, je to jeho podmnožina. Netěšte se, že své programy v Ruby bez námahy přeložíte do PHP a spustíte „kdekoli“, zatím jde spíš o koncept než o nástroj k reálnému použití.

Smyslem Fructose (a dalších podobných překladačů) je použít jazyk s vyšší úrovní abstrakce i v prostředí, kde není implementován. Proč zrovna PHP jako cílový jazyk? Pravděpodobně proto, že je na serverech nejběžnější – počet serverů s PHP je řádově vyšší (76% vs 0.6%).

Komentáře

Subscribe
Upozornit na
guest
6 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
View all comments
blizz
Proč zrovna PHP jako cílový jazyk? Pravděpodobně proto, že je na serverech nejběžnější

A to je problém doinštalovať na server ruby? Mne to zabralo cca 10 minút.

v6ak

Kdysi jsem přemýšlel o takovém překladu z PHP do JS. Cílem bylo vygenerovat čistý kód. Nakonec jsem se do toho nepustil. Skončcil jsem u operátoru plus. V dynamickém PHP nemusím obecně vědět typy operandů. Pokud bych tedy převedl $x+$y na x+y, pak by to sice fungovalo pro čísla, ale už ne pro řetězce. Teda ono by to fungovalo, ale jinak…

Samozřejmě, lze tu udělat dynamické rozlišení typů, ale tady končí veškerá elegance. Nebyla to cesta, kterou bych chtěl jít.

Pravděpodobně někde tady bude taky důvod pro podporu pouze podmnožiny Ruby. Ale tudy jsem tehdy nechtěl jít. (Nepodporovat například fopen bylo akceptovatelné, ale udělat sčítání naprosto jinak už ne.)

Tady mají větší šanci statické jazyky. Tam takové problémy nejsou. Příkladem může být takový Google Web Toolkit, který v současnosti podporuje Javu. Jsou tu ale snahy sem potrovat i Scalu (ScalaGWT), byť v rané fázi.

Koubel

Hm, David Majda napsal kompilátor z ruby do PHP jako svou diplomovou práci již před lety i s teorií to můžete najít na http://ruby-php.org/ takže žádnou fruktózu netřeba, cukru je i beztak dost.

Inkvizitor

Projekt, u ktereho je napsano „It is now discontinued. Partial results are available in my master thesis.“ bych asi moc pouzivat nechtel. Bez ohledu na to, jak daleko autor dosel.

Pepa

někteří lidi mají asi příliš volnýho času, že vyvíjí takový hovadiny :-)

Enum a statická analýza kódu

Mám jednu univerzální radu pro začínající programátorty. V učení sice neexistují rychlé zkratky, ovšem tuhle radu můžete snadno začít používat a zrychlit tak tempo učení. Tou tajemnou ingrediencí je statická analýza kódu. Ukážeme si to na příkladu enum.