Portál AbcLinuxu, 27. dubna 2024 02:06

Flex?! To si to radsi udelam v ruce!

10.3.2007 21:51 | Přečteno: 1803× | Programování

serial o schemu se mne malinko zasekl, protoze kazdy clanek o programovacich jazycich musi mit aspon jednu kapitolu o gramatikach a tak. abych pravdu rekl, formalni jazyky a takove ty srandy okolo me nikdy nebavily. do ted jsem pouzival starou dobrou kombinaci flex + bison. nicmene... nicmene, zacinaji me mirne stvat.

ne, ze by ty nastroje byly nejake ultra-slozite, ale jejich implementace je desiva. mozna je to tim, ze koncepce techto nastroju je starsi nez ma malickost, ale to api... to api!

ovladani pres globalni promenne -- odevzdat dneska neco takoveho ve skole... asi byste nedostali zapocet a se zlou se potazali. s tim souvisi hromada dalsich problemu.. thread-safety (ma to vubec cesky preklad?) - jedine rozumne reseni je big lock a proste, kdyz jedno vlakno parsuje vstup dalsi maji proste smulu.
je potreba hlidat si v jakem stavu bude analyzer a vsechno okolo po opakovanem pouziti.... dneska jsem cely den resil, proc me program nefunguje a problem byl v tom, ze v jednom specialnim pripade se prepl stav a zpatky se uz nevratil, ale vliv to melo jenom kdyz se zavalal flex vickrat po sobe... kdybych si lexer udelal v ruce (uzasny terminus technicus), trva to pulhodiny a vim co kde mam a toto se nestane...

nahradit flex rucne napsanym analyzerem neni zase takovy problem, ve svem dusledku je to jen jednoduchy konecny automat, kde sa da vystacit s par ifama a jednim cyklem. a kod je porad citelny.

napsat analyzator nejake te slozitejsi bezkontextove gramatiky uz je docela problem a kod uz neni tak hezky citelny jako vstup pro bison.

no, neramcal bych tu nad tim, kdych se nechtel zeptat, jestli tu nekdo nevi o necem lepsim. smula je, ze antlr neni pro ansi c a ta predchozi verze vypada ze uz ma taky nejlepsi leta za sebou.

       

Hodnocení: 75 %

        špatnédobré        

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

Komentáře

Nástroje: Začni sledovat (3) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

Josef Kufner avatar 11.3.2007 02:48 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: Flex?! To si to radsi udelam v ruce!
Odpovědět | Sbalit | Link | Blokovat | Admin
Jo, flex je děsnej bastl. Ale šikovnej ;-)

Chtělo by ho to přepsat, nebo alespoň trošku překopat. Nastrkat tu hromádku globálních proměnných do nějaké struktury a doladit API by snad neměl být moc velký problém. Nehledá někdo téma na bakalářku?
Hello world ! Segmentation fault (core dumped)
11.3.2007 10:49 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: Flex?! To si to radsi udelam v ruce!
to by chtelo prepsat rovnou i bison... z toho by byla spis hezka diplomka.... nicmene dobry napad pro prilezitosti, az bude nekdo otravovat s tim, ze hleda tema....
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
11.3.2007 17:24 qiRzT | skóre: 14 | blog: U_Marvina
Rozbalit Rozbalit vše Re: Flex?! To si to radsi udelam v ruce!
Nastrkat tu hromádku globálních proměnných do nějaké struktury a doladit API by snad neměl být moc velký problém.
Takle nějak je to vyřešeno v PHP. Je tam jakési makro, které nahrazuje globální proměnné a balí je do struktury.

Bison má volbu pure-parser, která zajistí, že parser je reentrantní.

Jinak naprosto souhlasím s tím, že to, co tyhle vytvářejí je děs...
Důležité je vědět jak problém vyřešit, zbytek zvládne i cvičená opice...
11.3.2007 15:37 zde | skóre: 9 | blog: Linuch | Brno
Rozbalit Rozbalit vše Re: Flex?! To si to radsi udelam v ruce!
Odpovědět | Sbalit | Link | Blokovat | Admin
Od kdy jsou globální proměnné EVIL?
Táto, ty de byl? V práci, já debil.
11.3.2007 16:13 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: Flex?! To si to radsi udelam v ruce!
odjakziva! ;-]

je to jenom provakace, nebo je to zacatek nejak rozsahlejsi diskuze o paradigmatech vyvoje?
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
13.3.2007 11:05 Tom.š Ze.le.in | skóre: 21 | blog: tz
Rozbalit Rozbalit vše Re: Flex?! To si to radsi udelam v ruce!
Asi to byla provokace, ale proč si nepřisadit. Nejsou (zvláště v onom Scheme) často přiřazení funkcí a jejich jmén taky globální proměnné? Je to špatně? :)
13.3.2007 12:52 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: Flex?! To si to radsi udelam v ruce!
docela zajimava uvaha a ma neco do sebe... nicmene vetsina aplikaci ma implicitni jmenny prostor, ktery se casem zaneradi proste obecnymi funkcemi, jelikoz jazyk nic moc chytrejsiho neumoznuje... podivejte se na cecko nebo PHP ;-] treba takovy pascal, je na tom o poznani lip - tam jdou funkce bez problemu do sebe vnorovat

...na druhou stranu, pokud si vezmete lispovy jazyk s lexikalnim rozsahem platnosti, tak vas nikdo nenuti tento implicitni jmenny prostor pouzivat. volani libovolne funkce vlastne vytvari novy jmeny prostor. takze staci kod zabalit do lambda vyrazu a jste vysmaty a kolize globalnich promennych nehrozi... ;-]
Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.