Portál AbcLinuxu, 5. listopadu 2025 05:23
Whirlpool model je fajn. Je to podobné ako prototypovanie pri návrhu aplikácií. A obecnejšie je to veda: vytvoríš teoretický model a potom ho overuješ a upravuješ podľa experimentov 
Na druhej strane, ak niekto plánuje písať stabilný program, ktorý musí vydržať niekoľko rokov, tak asi neni moc zábavné, keď sa mu každý týždeň mení špecifikácia jazyka pod rukami. Starý problém rolling updates
Takže rozumnejšie asi je mať release cycles (napr. po 5 rokoch). Vždy vydať špecifikáciu jazyka, nechať ľudí ho pár rokov používať a tvoriť v ňom programy, a tie skúsenosti reflektovať do novej verzie (plus mínus ako to robí Scheme s RnRS).
Čo sa týka Pythonu, tak tam je štandardná implementácia v C, ale hlavná je špecifikácia a vďaka nej existuje aj kopa alternatívnych implementácií. Python napísaný v pythone, kompilátory do bytekódu rôznych virtuálnych mašín a pod. Zaujímavejšie je to napr. s Common Lispom alebo Scheme, kde žiadna štandardná implementácia neexistuje, máš len desiatky rôznych implementácií (viac či menej podporujúcich špecifikáciu).
Tak s týmto absolútne nesúhlasím. Návrhár jazyka musí byť zároveň schopný aj napísať jeho kompilátor, aby mal aspoň nejakú predstavu, či je niektorá vlastnosť vôbec realizovateľná v praxi. Nie všetky informatické problémy sú rozumne riešiteľné. A nie každá vlastnosť je vôbec rozumne programaticky podchytiteľná. Toho všetkého si musí byť návrhár vedomý, inak nikdy nevznikne nič viac než návrh.
O to väčší dôvod, aby bol ten kompilátor kvalitný 
Ako som už napísal pod druhým blogom, vysokoúrovňovosť a prívetivosť jazyka nebráni peknému návrhu. Naopak 
Psaní kompilátoru je to poslední, co by mělo trápit návrháře jazyka, ne? Primární je uživatelnost jazyka, ne složitost kompilátoru...Treba u C++ nemame poradne ani po 15ti letech kompilator ktery by jej bezezbytku implementoval. Zrovna nedavno jsem narazil ne nejakou nejednoznacnost vykladu specifikace mezi gcc a VC2008(i kdyz vic verim gcc). Co je tezke na implementaci pro kompilator musi by tezke na nauceni pro programatora. To mi nikdo nevymluvi.
Presne tak. C++ snáď nie je ani LALR, takže sa neni moc čo čudovať...
Aha, dík za upresnenie. Každopádne to musí byť humus 
+1
Btw, keď už sa bavíme o tých jazykoch... netuší niekto či existuje prehľad, ktoré parsery (LL, LR, ...) sú najviac preferované pre kompilátory bežných jazykov?
A súvisiaca otázka: ktoré sú najlepšie/najčastejšie používané generátory parserov (yacc, ANTLR, ...). Možno by o tom rovno Ladíček mohol napísať blog 
Neviem, ale dúfam v najpozitívnejšiu možnosť: dosiahol nirvánu, odišiel z nášho sveta a stráži rovnováhu vesmíru, ktorá závisí na správnom spárovaní zátvoriek 
kam vůbec zmizel Jakub Hegenbart (Kyosuke)?Nejaky Kyosuke (a mozna z Ceska, podle textu komentare) se vyskytl nedavno na Slashdotu: http://slashdot.org/comments.pl?sid=1669586&cid=32398916
Škoda, že Kyosuke (správne s dlhým ó) je úplne bežné japonské meno. Tiež si mohol vybrať lepší nick 
Rok jsem se teď pohyboval úplně mimo informatiku a celkem rád bych do toho jedoucího vlaku naskočil zase zpátky, ještě než mi úplně ujede.
Navíc mám v září státnice, a to už by vůbec nebylo od věci si něco málo dostudovat.
Mne sa na disku povaľujú Red a Purple Dragon Book. Už je to dávno, čo som ich čítal (a aj to nie celé), ale mám pocit, že boli dosť dobré.
Normálnímu člověku, který se chce v implementaci programovacích jazyků trochu zorientovat a možná i něco málo použít, bych okamžitě doporučil Language Implementation Patterns, ale obávám se, že to by tě asi neuspokojilo.
Jako intro do návrhu programovacích jazyků můžu doporučit Programming Language Pragmatics, a pokud jde přímo o překladače, tak asi odkazovaná Dragon Book (i když jsem ji nikdy nečetl; docela se mi ale zamlouvala výrazně kratší Modern Compiler Implementation in Java).
Treba u C++ nemame poradne ani po 15ti letech kompilator ktery by jej bezezbytku implementovalTo není tak úplně pravda; poslední verze standardu C++ je 7 let stará a kompilátor, který ji implementuje, pokud vím, existuje.
Zrovna nedavno jsem narazil ne nejakou nejednoznacnost vykladu specifikace mezi gcc a VC2008(i kdyz vic verim gcc)To je dost nesmyslné tvrzení: Buďto je ta specifikace nejednoznačná (klidně může být), a pak je každý konformní výklad stejně dobrý (můžeme se bavit o tom, jestli je vhodnější/použitelnější, ale těžko můžeme jednomu "víc věřit"). Nebo je některá z těch implementací v rozporu se standardem, a pak se dá těžko hovořit o nejednoznačnosti výkladu.
Co je tezke na implementaci pro kompilator musi by tezke na nauceni pro programatoraPokud by toto byla pravda, je pro programátora nejjednodušší (na naučení) stroják nebo assembler.
A ktorý to je?
Čo je na tom nezmyselné? Podstata je, že špecifikácia je nejednoznačná. To je celkom veľký problém. Lebo ak pripustíme nejednoznačnosť, tak už nám môže byť jedno, akého jazyka to vôbec špecifikácia je 
Že sa 500 stránkový štandard bude učiť ťažšie než 50 stránkový Vám pripadá nezrejmé? Nič viac tá jeho veta nehovorila. A rozhodne nehovorila nič o assemblere (btw, ktorom konkrétne? A ste si istý, že každý assemble má triviálnu gramatiku?)
A ktorý to je?Dost kompletní jsou Comeau C++ a kompilátor v Sun Studiu. Mimochodem standard C++ ISO/IEC 14882:2003 má skoro 800 stran.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.