Napsal jsem lingvistický modul do školního projektu. V systému "robůtků" běhajících po domě tenhle modul zajišťuje, že robot rozumí větám typu "Seber červenou knihu." "Dej ji na polici v knihovně." Pokud nelze z udaného popisu předmět určit, robot se zeptá: "Kterou červenou knihu, tu v pokoji nebo tu v kuchyni?" A správně rozumí odpovědi "Tu v kuchyni.".
Pak jsem napsal interpret vlastního jazyka na výběr "jednoduchých vět" (jeden typ "jednoduchých vět" jsou skutečně věty jednoduché, ale můžete napsat skriptík na výběr něčeho jiného) z textu. Základním stavebním kamenem jsou sestavy rysů a regulární výrazy nad sestavami rysů.
Pak jsem napsal kompilátor vlastního jazyka na přípravu tabulek do Perlu. Ten jazyk lze charakterizovat takto: popíšete cílovou tabulku jako slepeninu tabulek podsebou a vedle sebe, lepíte jakkoli se vám hodí, ale aby lepení bylo možné, tj. počet řádků/sloupců musí souhlasit. Dále popíšete, kde se berou vstupní data, např. SQL dotaz, a jak se vstupní data pro účely tabulky transformují. Pikantní na té transformaci je eliminace for-cyklů, speciálně vnořených. Když budu mít proměnnou seznam_cisel a v ní jednotlivá čísla uchovaná v položce cislo, tak se např. podíl jednotlivých čísel na součtu nechá vypočítat takto:
seznam_cisel {
cislo,
podil_cisla_na_souctu = cislo / ..:soucet
},
soucet = sum(seznam_cisel, cislo)
A pro kontrolu, že nám podíly sčítají do jedničky, můžeme přidat jeden řádek:
pro_kontrolu_soucet_do_1 = sum(seznam_cisel, podil_cisla_na_souctu).
Zmíněný kompilátor vyřeší všechny závislosti mezi proměnnými, přidá potřebné for-cykly a uloží program v Perlu, který tabulku generuje (např. ze zmíněných SQL dotazů.)
A pak ještě řadu drobností.
Odpověď na názor
Odpovídáte na názor k článku Mercury: Programování s pomocí instalatéra.
Re: Clanek
celé vláknoPravidla pro diskutující
Přidáním čtenářského příspěvku do diskusí či fóra souhlasíte s tím, že budete dodržovat následující pravidla. Při jejich hrubém porušení se vystavujete riziku smazání příspěvku, jeho modifikaci, v krajním případě i zablokování přístupu do diskusí.
Redakce ze zásady nezasahuje do čtenářských diskusí a zavazuje se, že nebude mazat ani modifikovat příspěvky, kromě případů, kdy tyto porušují některé z následujících pravidel. V takové situaci je na zvážení redakce, zda příspěvek modifikuje s viditelným upozorněním, či přímo smaže. Redakce nikdy nemaže „nesouhlasné komentáře“ jen proto, že jsou nesouhlasné. Vítáme střet názorů, ale vždy v rámci slušné a kultivované debaty.
Příspěvky nesmí obsahovat:
- Vulgární či hrubé výrazy.
- Urážlivé výroky na adresu druhé osoby či skupiny osob.
- Texty, které mají za cíl jen vyprovokovat emotivní reakci (trolling).
- Rasové útoky či útoky na jakoukoliv jinou menšinu či skupinu obyvatel.
- Komerční nabídky a affiliate odkazy.
- Odkazy na warez, sériová čísla, licenční kódy, pornografii a další nevhodný materiál stejně jako žádosti o poskytnutí tohoto obsahu.
- Prokazatelně protiprávní obsah.
Informace o soukromí: U všech přidaných komentářů provozovatel ukládá IP adresu a hostname odesílatele. U neregistrovaných uživatelů se na webu zobrazuje část hostname, případně IP adresy, neumožňující identifikovat konkrétní počítač.
Povolené značky XHTML: a, br, code, em, li, ol, p, pre, strong, sub, sup, ul

