abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×

    dnes 16:55 | Nová verze

    Flameshot (GitHub), nástroj pro vytváření a úpravu snímků obrazovky postavený nad frameworkem Qt, byl vydán ve verzi 11.0.0. Změněno bylo číslování verzí. Verze 11 následuje po verzi 0.10.

    Ladislav Hagara | Komentářů: 1
    dnes 09:00 | Komunita

    V pátek 28. ledna začíná 14. ročník konference DevConf.CZ. Jde o každoroční komunitní konferenci pro vývojáře, administrátory, DevOps inženýry, testery, autory dokumentace a další přispěvatele či uživatele technologií open source. Konference proběhne podruhé online, a to v termínu 28. - 29. ledna.

    … více »
    Dorka | Komentářů: 3
    dnes 08:00 | Nová verze

    Byla vydána nová verze 2.35.0 distribuovaného systému správy verzí Git. Přispělo 93 vývojářů, z toho 35 nových. Přehled novinek v příspěvku na blogu GitHubu a v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 1
    dnes 07:00 | Zajímavý software

    Giada je open source minimalistický softwarový nástroj pro tvorbu hudby navržený pro diskžokeje, elektronické hudebníky a živou produkci. Vydána byla verze 0.20.0 aneb Alicanto. Vedle zdrojových kódů je ke stažení také balíček ve formátu AppImage.

    Ladislav Hagara | Komentářů: 0
    dnes 06:00 | Nová verze

    Byla vydána první alfa verze nové major verze 4.0 multiplatformního open source herního enginu Godot (Wikipedie, GitHub). Přehled novinek v příspěvku na blogu.

    Ladislav Hagara | Komentářů: 2
    včera 18:11 | Komunita

    Vývojáři Ubuntu MATE oznámili vydání Ubuntu MATE 21.10 pro 8 palcový UMPC notebook GPD Pocket 3.

    Ladislav Hagara | Komentářů: 0
    včera 13:22 | Zajímavý software

    Počítačová hra Oil Rush (Wikipedie) od UNIGINE běžící také na Linuxu byla vydána 25. ledna 2012. K desátému výročí je hra na Steamu zdarma.

    Ladislav Hagara | Komentářů: 0
    včera 12:44 | Nová verze

    Byla vydána nová verze 1.10.0 multiplatformního frontendu k emulátorům, herním enginům a multimediálním přehrávačům RetroArch (Wikipedie). Přehled novinek v příspěvku na blogu. RetroArch je k dispozici také na Steamu.

    Ladislav Hagara | Komentářů: 0
    včera 12:22 | Zajímavý článek

    Článek Zajímavé nástroje pro CLI na MojeFedora.cz představuje nástroje bat (vylepšený cat), diff-so-fancy (barevný diff), fx (práce s JSONem) a fzf (rychlé vyhledávání).

    Ladislav Hagara | Komentářů: 2
    včera 07:00 | Nová verze

    Sway, dlaždicový (tiling) správce oken pro Wayland kompatibilní s i3, byl vydán ve verzi 1.7. Do vývoje se zapojilo 77 vývojářů. Přehled novinek na GitHubu. Sway 1.7 závisí na wlroots 0.15.0.

    Ladislav Hagara | Komentářů: 1
    Jestliže jste používali distribuci CentOS Linux, jejíž konec byl oznámen před rokem, kam jste přešli?
     (30%)
     (1%)
     (8%)
     (19%)
     (1%)
     (4%)
     (36%)
    Celkem 211 hlasů
     Komentářů: 14, poslední 14.1. 14:44
    Rozcestník

    Sám jsem člověkem více než cokoli jiného rozporuplným, a bohužel i mé texty jsou začasté plny rozporů. Když si jich někdy všimnu a snažím se o vysvětlování, čitelnost obvykle povážlivě klesá. Celé to je jen snaha zdokonalovat svoje vyjadřování, snaha vměstnat notně zkurvenou poezii do schémat hovorové řeči. A snad i já mohu věřit, že hledat krásná slova je lepší než zabíjet a vraždit.

    Aktuální zápisy



    RFC: seriál o DSLkách

    1.8.2010 19:03 | Přečteno: 1108× | pro temnou strunu | poslední úprava: 1.8.2010 19:04

    Zdá se, že jsem se včera trapně prokecl… Nuže, je pravdou, že jsem na konci února tak napůl slíbil napsat pro ábíčko seriálek o DSLkách, čili Domain Specific Languages, čili česky asi nejlíp oborových jazycích (návrhy na lepší překlad?). Vzhledem k tomu, že jde o téma potenciálně velmi rozsáhlé a zpracovatelné mnoha různými způsoby, rozhodl jsem se požádat možné čtenáře o názory. Varování: tenhle zápisek se netýká koček (čtyř- ani dvounohých), filmů, tvrdého alkoholu a dokonce ani krásné literatury. Chcete to risknout?

    Dobře, děkuji všem pěti lidem, kteří pokračují ve čtení. Vytvořit si vlastní minijazyk není nic extra komplikovaného, v žádném případě nejde o týdny práce, naopak to týdny práce může ušetřit. Ale – kdo se s tím má zabývat, když na průměrném softwarovém projektu se už nejmíň pět jazyků používá? A tedy: kdo bude takový seriál číst? Podle mne jde o téma dostatečně zajímavé i pro toho, kdo si žádný jazyk nikdy sám nenapíše, takže primární cílovou skupinou jsou normální programátoři, ve kterých ještě nezhasl plamen zvědavosti a zájmu o obor. Absolventi teoretické informatiky se nic nového nedozví, bušiči kódu budou pravděpodobně odrazeni už tématem samotným, ale snad je těch ostatních pořád ještě dost.

    Dal jsem tedy (po šesti pivech :-) ) dohromady takovou stručnou osnovu. Je sice plná odporných termitů, ale toho se neděste, to je jen abych já věděl. Kdyžtak v diskusi.

    1. Motivace

    Jaký je význam programovacího jazyka a proč psát vlastní minijazyky? Jaké to má výhody, na jaké lze narazit nevýhody a co to od programátorů vyžaduje. DSLka interní a externí. Ukázky (zpracování XML v Groovy, odpočinek v Ruby, CSS done right).

    2. Úvod do interních oborových jazyků

    Jak přiohnout existující jazyk k jinému způsobu vyjadřování? Které jazyky k tomu jsou a nejsou vhodné, co to od hostitelského jazyka vyžaduje a co všechno lze vyjádřit. Data jsou kód a kód jsou data. API versus jazyk.

    3. Interní oborové jazyky v Javě, Groovy a Ruby

    Vytváření datových stuktur přímo v jazyce. Kód je konfigurace. Deklarativní Java. Buildery v Groovy, bloky v Ruby.

    4. Úvod do externích oborových jazyků – význam

    Program jako strom, jeho průchod a interpretace. Sémantická analýza. Virtuální stroj, instrukční sada, zásobník. Překlad AST do instrukcí a jejich provádění.

    5. Úvod do externích oborových jazyků – podoba

    Struktura překladače. Formální jazyky, lexikální a syntaktická analýza. Regulární výrazy a bezkontextové gramatiky. Rekurzivní sestup.

    6. Externí oborové jazyky a ANTLR

    Generátory parserů. ANTLR a ANTLRWorks. Predikátové gramatiky, stromové gramatiky. Překlad a přepis.

    7. Externí oborové jazyky a MPS

    Meta Programming System. AST jako zdrojový kód, včetně verzování. Editor a generátor.

    Je z toho snad zřejmé, že se nehodlám pouštět moc hluboko do teorie formálních jazyků (i když je to teorie náramně krásná!), ale zůstat u věcí, které jsou ihned použitelné. Nechci mít žádné díly, kde se bude jen budovat nějaký aparát, v každém díle by měl být nejmíň jeden spustitelný program (nějaké příklady mám vymyšlené, ale každý nápad v tomhle směru vítám!). Proto taky řadím sémantiku před syntaxi, pokud byste se divili.

    Prozatím uvažuju, že co bod, to jeden článek, ale od externích jazyků se to začíná vcelku komplikovat a i když třeba nemám vůbec v úmyslu mluvit o LR jazycích a bottom-up parsování, horko těžko narvu syntaktickou analýzu do jediného článku. Ale to je v tuhle chvíli implementační detail.

    Takže: myslíte si, že to takhle dává smysl? Něco chybí, něco přebývá? Víc teorie? :-) Jít víc do hloubky, za cenu většího rozsahu a případné nezajímavosti pro čtenáře? Nebo raději nejdřív udělat povrchový průzkum a podle případného zájmu se do některých témat pustit hlouběji? Nebo se na to úplně vykašlat? Díky za komentáře a dotazy.

    Jóóó! A nečekejte to za měsíc, jsem přece jenom zaměstnanej člověk :-)        

    Hodnocení: 100 %

            špatnédobré        

    Anketa

    Takový seriál…
     (73 %)
     (18 %)
     (7 %)
     (2 %)
    Celkem 55 hlasů

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    1.8.2010 19:58 disorder | blog: weblog
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    a sme si isti, ze 3. je DSL?
    Marek Bernát avatar 1.8.2010 20:02 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách

    A nie je? Ak tomu dobre rozumiem, tak tam spadajú aj Lispovské makrá. A to určite DSL je.

    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    Marek Bernát avatar 1.8.2010 20:11 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách

    Aha možno som to zle pochopil. Ak je ten zoznam jazykov v 3. vyčerpávajúci, tak sorry. Ale v tom prípade žiadam o pridanie Lispu do zoznamu :-) A možno tiež Haskellu, ten je na DSL viac než vhodný. Samozrejme, len ak Ladíček tieto jazyky ovláda, inak by to asi nemalo zmysel :-)

    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    1.8.2010 20:16 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    Je pár míst, kde určitě plánuju zmínit Lisp, ale příklady v něm psát nebudu. Jeden důvod jsi uvedl :-), druhý důvod je, že to má být pro normální lidi. Jo a Haskell, no tak to je bezpečně mimo moje znalosti i touhy, takže leda by se toho chopil někdo jiný :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    Marek Bernát avatar 1.8.2010 20:30 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách

    Na mňa sa nepozeraj, ja som na Haskell úplný amatér :-) Ale mám vo feedoch pár moc zaujímavých blogov a tam sa DSL z času na čas objavujú. Čo si teraz spomínam, tak DSL pre 3D grafiku, DSL pre skriptovanie hier a naposledy ma zaujal pojem FRP (functional reactive programming), ktorému síce vôbec nerozumiem, ale videl som to niekde spomenuté pri DSL :-) Takže rozhodne by ma potešilo keby sa tu niečo také vyskytlo. Možno sa toho chytí niektorý ábičkovský haskellista (prádza množina?).

    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    2.8.2010 13:22 JS
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    Dobra knizka je On Lisp, akorat musite uz Lisp znat, abyste ji mohl cist. Prestoze je uz temer 20 let stara, ukazuje, v cem Lisp umoznuje vytvareni vlastnich DSL a typicke priklady pouziti (treba kompilator dotazu nad databazi). No, mozna by neskodilo do ni alespon nakouknout, kdyz uz pisete o DSL.
    Marek Bernát avatar 2.8.2010 14:16 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách

    Nemyslím si, že je potrebné ovládať Lisp. Práve naopak, prvé kapitoly sú v podstate úvod do Lispu, tie v prostriedku sa zasa až príliš do hĺbky sa tam preberajú problémy spojené s makrami. Až na konci sú zaujímavejšie príklady. Takže drvivá väčšina kapitol je neprenositeľná na iné jazyky.

    Inak, nič proti tej knihe. Čisto ako literatúra o Lispe je skvelá.

    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    1.8.2010 20:06 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    Myslím, že 3. začíná slovem "interní", takže jo, docela jistí :-) V čem přesně vidíte problém?

    Jinak si teď říkám, že tenhle zápisek není moc srozumitelný, určitě ne pro ty, kteří by mohli číst ten seriál. Ale přepisovat už to holt nebudu.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    1.8.2010 20:52 disorder | blog: weblog
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    neviem co s tou javou a groovy, ale u ruby je to len velmi flexibilna syntax, nic viac.
    1.8.2010 21:00 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    Ruby a Groovy jsou na tom hodně podobně, ale neřekl bych, že to je jen flexibilní syntax. Prostředky pro metaprogramování, které Ruby i Groovy nabízí, se sice asi nemůžou rovnat lispovským makrům :-), ale pro konstrukci DSLek jsou jako stvořené.

    Java tam je jako jazyk, který sice na první pohled nemůže obsáhnout žádný jiný jazyk, ale s použitím pár fíčur (varargs, statické importy, inicializátory tříd apod.) se dá docela hezky kouzlit.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    1.8.2010 22:30 disorder | blog: weblog
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    1.8.2010 23:36 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    No, jo. Myslím, že někde tam mám napsáno "API versus jazyk", ale nedělal bych z toho takovou kovbojku.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    Marek Bernát avatar 1.8.2010 21:21 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách

    Určite? Pokiaľ viem, tak metaprogramovanie (pomocou metatried, ktoré sú ale spracované úplne iným spôsobom než v Smalltalku) dáva dosť veľké možnosti.

    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    Marek Bernát avatar 1.8.2010 20:04 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách

    Trochu ma sklamalo, že sa nebudeš venovať LR. To je momentálne téma, ktorá ma najviac zaujíma. Aspoň spomenúť by si ich mohol. Ale aj tak je tam kopa viac než zaujímavých oblastí, takže jedného verného čitateľa máš istého :-)

    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    1.8.2010 20:11 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    Tak to se omlouvám, ale já vždycky považoval LR za složitou zbytečnost, a současný vývoj v parsování (LL(*), PEGy a packrat) mne v tom utvrzuje. Jsou teda i lidi, kteří LR považují za intuitivnější než LL, ale tak daleko jsem zatím fakt nedospěl :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    Marek Bernát avatar 1.8.2010 20:20 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách

    Takto: mne sa LL páči podstatne viac než LR. Konceptuálne je to oveľa jednoduchšie (LL človek v podstate vymyslí aj na kolene) a viem o nich už dlho. Ale mal som za to, že za a) vymyslel to Knuth :-) b) LR(1) > LL(1) v zmysle inklúzie gramatík, c) LR je algoritmicky efektívnejšie ako LL, d) pri LL treba riešiť kopu vecí (left-recursion napr.), ktoré pri LR nie sú. Preto som sa v poslednej dobe začal trochu učiť LR. Ale súčasný vývoj v parsovaní nepoznám a ak je to tak ako hovoríš, tak mám radosť a pokojne LR oželiem (ale aj tak si myslím, že by bola škoda aspoň ich nespomenúť).

    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    1.8.2010 20:29 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    Jak říkám, jsou lidi, kteří preferujou LR, viz třeba tady. Určitě to není špatný nástroj :-), ale já mu prostě nikdy nepřišel na chuť. Je užitečné (skoro bych řekl nutné) to znát, když se používá LALR generátor, ale jinak si myslím, že se bez toho dá v klidu žít.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    Marek Bernát avatar 1.8.2010 20:39 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách

    Ok, to mi stačí.

    Btw, netušíš náhodou ktorý z nich (LL/LR) produkujú PCT v Parrote? mj41 tu totiž nedávno spomenul zaujímavý tutoriál na implementáciu kompilátora do Parrotovského bytekódu (PASM?). Spravil som si z toho pár kapitoliek a bolo to fakt fajn. A mimochodom som dospel k tomu, že Perl 6 je fakt fajn jazyk. Parrot používa jeho podmnožinu ako na špecifikáciu gramatiky, tak parsing actions nad AST. Jazyky pre Parrot sa píšu fakt jedna báseň, možno ďalší tip, ktorý by si mohol spomenúť v článku? Ale aby som sa vrátil k téme, tak celý čas rozmýšľam nad tým, čo za kompilátor tam vlastne vzniká. Nejak sa mi to nepodarilo dogoogliť, takže možno aspoň tu mi niekto dá odpoveď :-)

    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    1.8.2010 20:50 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    Nejsem si teď jistý, jak je to s PCT, ale pokud vím, tak "rules" v Perlu 6 jsou PEGy. To je takové vylepšené LL (záleží na pořadí alternativ v pravidlu, neomezený lookahead, backtracking + memoizace), každopádně to vede na rekurzivní sestup.

    Teď ještě koukám a wikibooks praví:
    Grammars, typically files with a ".pg" file extension, are compiled using the Parrot Grammar Engine (PGE). PGE is an implementation of the Perl 6 rules engine for Parrot. PGE uses a Recursive Descent parser, although certain components such as expressions can be parsed using a bottom-up parser for efficiency.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    Marek Bernát avatar 1.8.2010 21:27 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách

    Aha, díky :-)

    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    1.8.2010 20:51 Ondrej 'SanTiago' Zajicek
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    netušíš náhodou ktorý z nich (LL/LR) produkujú PCT v Parrote?

    To netusim, ale anekdota rika, ze na parsovani Perlu 7 bude treba pouzit Chart parser nebo Viterbi parser.
    Marek Bernát avatar 1.8.2010 21:43 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách

    Mno, momentálne mám pocit, že ak bude vývoj podobný ako Perl 5 -> Perl 6, tak z Perlu 7 bude úplne minimalistický jazyk :-)

    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    1.8.2010 20:13 Ondrej 'SanTiago' Zajicek
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    Je z toho snad zřejmé, že se nehodlám pouštět moc hluboko do teorie formálních jazyků

    Osobne si myslim, ze k tomu v podstate teorie formalnich jazyku neni treba (nebo jen naproste zaklady) a ze se celkove parsovani v literature o DSL nebo o prekladacich dost precenuje. LL(1) parser napise schopnejsi programator aniz by potreboval cokoliv vedet o teorii a vic v podstate neni treba :–) . Na DSL (a programovacich jazycich ci prekladacich) je preci mnohem zajimavejsi semantika nez syntax. Tedy v prve rade jak vhodne navrhnout DSL v navaznosti na konkretni problem a v druhe rade jak to rozumne implementovat (kdyz uz mame nejak zparsovany vstup do AST). Tipuju, ze ta prvni vec je ale spis umeni nez ze by na to byla vhodna teorie (coz je asi taky duvod, proc se to bezne pri vyuce odbyva). Mozna by to bylo nejvhodnejsi vylozit formou prikladu takovych jazyku a rozborem jejich silnych a slabych stranek.
    1.8.2010 20:21 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    Spousta jednodušších jazyků sestává jenom z parseru, do kterého jsou doplněné nějaké akce, a na žádný AST ani nedojde. Navíc každé zpracování vstupu je vlastně triviální parser, a neuškodí vědět, jak se to dělá pořádně :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    Marek Bernát avatar 1.8.2010 20:26 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách

    Asi tiež neuškodí spomenúť, že úplne najjednoduchšie veci sa dajú riešiť už regulárnymi výrazmi. Pochopiteľne sa jedná o primitívne šablónovacie jazyky pre HTML :-)

    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    1.8.2010 20:48 Ondrej 'SanTiago' Zajicek
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    A tez neuskodi zminit, ze samotne regularni vyrazy jsou pekny priklad DSL.
    1.8.2010 20:51 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    Jo jo. A jazyk pro popis gramatiky, který je na vstupu takového generátoru parseru, jakbysmet.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    1.8.2010 20:46 Ondrej 'SanTiago' Zajicek
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    a na žádný AST ani nedojde
    Samozrejme, ten AST tam muze byt jen implicitne mysleny.
    Marek Bernát avatar 1.8.2010 20:24 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách

    +1

    Teóriu jazykov som neabsolvoval (viem čo je gramatika a približne aj ako to súvisí s automatmi a regulárnymi výrazmi, ale to je tak všetko), ale malý LL kompilátorček Lispu, som si napísal už dávno :-)

    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    1.8.2010 23:07 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    Osobne si myslim, ze k tomu v podstate teorie formalnich jazyku neni treba (nebo jen naproste zaklady) a ze se celkove parsovani v literature o DSL nebo o prekladacich dost precenuje.
    souhlasim. osobne mi prijde problematika parsovani, jako asi nejnudnejsi pasaz z oblasti navrhu prog. jazyku.
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    Marek Bernát avatar 1.8.2010 23:12 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách

    A ktoré sú zaujímavejšie oblasti? Typový systém?

    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    2.8.2010 00:06 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    Typové systémy jsou určitě super, ale moc se tam onanuje s lambda kalkulem, takže já mám radši garbage collectory :-D Ne, vážně, zdálo by se, že parsování je dávno vyřešený problém – a přesto se jím pořád spousta lidí zabývá. Já mám pocit, že jeden díl o tom, jak to udělat ručně, a jeden o tom, jak to udělat automaticky, snad není tolik. A krom toho, že to je první věc, na kterou člověk narazí, je to často taky jediná věc, kterou potřebuje (jak už jsem psal o kousek výš).
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    Marek Bernát avatar 2.8.2010 07:53 Marek Bernát | skóre: 17 | blog: Arcadia
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách

    Parsovanie je podľa mňa základ. S tým by si mal asi začať (teda modulo texty, ktoré uvádzajú do problematiky). Kam sa vydáš ďalej, to už je na tebe. Garbage collector je užitočná vec, ale dnes už je jeden v každom virtuálnom stroji (a to zrejme kvalitnejší, než človek vyrobí na kolene), takže mi pripadá trochu zbytočné sa mu venovať. Typové systémy vyzerajú užitočnejšie, ale asi je to fakt trochu hard-core. Ešte by sa dali spomenúť optimalizácie, ale to mi pripadá zasa zbytočné, lebo to "len" zlepšuje už hotovú vec. Takže neviem, nechám sa prekvapiť s čím prídeš :-)

    physics.stackexchange.com -- Q&A stránky o fyzike v štýle StackOverflow.
    1.8.2010 22:16 User682 | skóre: 38 | blog: aqarium | Praha
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    zdravim,

    nemam ve zvyku pretahovat autory a ani to tady delat nebudu.

    Kazdopadne, az dopisete dany serial pro abicko, tak by se u me naslo par praktickych veci, o ktere bych mel zajem a netvrvam na tom, ze musi byt zadarmo. ANTLR jsem vcelku studoval. Horsi je to s casem.

    Kazdopadne Vam fandim, at to dotahnete do konce. Gramatiky nejsou jednoduche a zerou hodne casu.

    Jak prakticky jste delal s antlr ?

    Osobne jsem se zasekl na tom, jak rozebirat dany AST strom v Jave. Je to ale spise otazkou casu.

    Vcelku by me zajimaly tyto veci:

    - rozeberete ruzne typy gramatik v jednom souboru a poslete je do ruznych streamu.

    - stringtemplate

    - napisete gramatiku, vyjde Vam z toho AST strom. Chcete potom z tohoto stromu neco filtrovat (jen urcite elementy) a co nejmene psat.

    - nahrazovani v AST stromu, prevod jednoho jazyka na druhy. Vcelku by se mi hodilo nejake klikadlo, kde naklikate na kazde strane jednu gramatiku a resite vztahy mezi nimi (mapovani).

    - nadefinujete gramatiku. Presneji nadefinujete pouze typy elementu a jejich relace mezi nimi. Ale dany typ elementu musite overit pres nejakou databasi "treba" slov. To, co znate jsou ty relace mezi danymi typy elementu. Zda to je a jak ?

    Takze to tak na namet a ze to ma smysl. Spise by se dalo pokecat po mailu.

    gf
    1.8.2010 23:50 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    rozeberete ruzne typy gramatik v jednom souboru a poslete je do ruznych streamu.
    Je to trochu porno, ale dá se vyjít třeba odtud: http://www.antlr.org/wiki/display/ANTLR3/Island+Grammars+Under+Parser+Control. Nikdy jsem to nedělal, ale musí to jít. Řeší to v každém lepším IDE (kombinace PHP+HTML+CSS+JavaScript+regexpy v jednom souboru musí být peklo).
    stringtemplate
    Hodně minimalistickej šablonovací jazyk, ale líbí se mi, že docela dobře zvládá bílé znaky. Ale není to nic než šablonovací jazyk, stejně dobře může posloužit třeba FreeMarker.
    napisete gramatiku, vyjde Vam z toho AST strom. Chcete potom z tohoto stromu neco filtrovat (jen urcite elementy) a co nejmene psat.
    Stromové gramatiky v ANTLR jsou docela mocné, od ANTLR 3.2 se dají přepisovat i stromy na stromy. Stačí popsat jen tu část stromu, která je zajímavá. Zase, nedělal jsem to, ale musí to jít.
    nahrazovani v AST stromu, prevod jednoho jazyka na druhy. Vcelku by se mi hodilo nejake klikadlo, kde naklikate na kazde strane jednu gramatiku a resite vztahy mezi nimi (mapovani).
    To musí být obecně docela šílený problém (ne-li nerozhodnutelný). Ale mám pocit, že grafické návrháře existují třeba pro XSLT :-)) Nicméně, to už je mimo můj záběr, nikdy jsem nad tím nepřemýšlel a tohle nestudoval.
    nadefinujete gramatiku. Presneji nadefinujete pouze typy elementu a jejich relace mezi nimi. Ale dany typ elementu musite overit pres nejakou databasi "treba" slov. To, co znate jsou ty relace mezi danymi typy elementu. Zda to je a jak ?
    A to už jsem ani nepochopil :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    2.8.2010 00:35 disorder | blog: weblog
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    emacs riesi kombinaciu PHP+HTML+CSS+JavaScript vratane heredoc cez nxhtml mode (mumamo - multiple major modes)
    1.8.2010 23:18 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    sice si myslim, ze DSL jazyky se trochu (zbytecne) precenuji... ale urcite si to rad prectu.
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    1.8.2010 23:21 disorder | blog: weblog
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    regularne vyrazy su trochu precenovane? :)
    1.8.2010 23:56 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    Já vím, jak to myslí. Je pravda, že tahle zkratka je docela magická a spousta lidí si myslí, že v ní našla pověstnou stříbrnou kulku, na druhou stranu na automatizaci rutinních činností není nic špatného a DSLka jsou v automatizaci rutinních činností skvělá. No a když se povede, že skutečně vykonávanému programu rozumí i zákazník, tak to musí být nirvána :-) Já se teda tak daleko ještě nedostal.
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    2.8.2010 00:37 disorder | blog: weblog
    Rozbalit Rozbalit vše Re: RFC: seriál o DSLkách
    classic case of buzzword :)

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.