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

Odebírat
Upozornit na
guest
6 Komentářů
Nejstarší
Nejnovější Most Voted
Inline Feedbacks
Zobrazit všechny komentáře
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 :-)

Jak funguje WordPress Cron a proč občas selhává

„Cron mi nějak neběhá." Klasická věta, která ve WordPress světě může znamenat cokoli od špatně nastavené WP_SITEURL, přes loopback zablokovaný Cloudflarem, až po fatal error v callbacku, který nechal viset transient doing_cron. WP-Cron totiž není skutečný scheduler — je to pseudo-cron závislý na návštěvnosti webu a HTTP loopbacku, se všemi pastmi, které si dokážete představit. Tenhle článek je hloubkový průchod jeho vnitřnostmi: co se reálně děje při spawn_cron(), kde vznikají race conditions, proč selhává a čím ho v produkci nahradit.