Gramatiky v IT

Re:Gramatiky v IT
« Odpověď #45 kdy: 16. 05. 2017, 08:52:55 »
To jednoduše nepoznáte v ničem. Tak v tom není rozdíl, mezi seznamem a gramatikou.
V grafu mi stačí kouknout, jestli existuje cesta z počátečního stavu do akceptujícího. To vidím celkem hned i na složitějším grafu. Najít cestu od rytíře k princezně je standardní kvíz pro pětileté děti. V gramatice to na první pohled vidět není, člověk si musí projít všechny cesty, protože rychle nevidí, které jsou slepé. A to ani nemluvím o tom, že gramatika nemusí být zadaná v normální formě. To pak ani nejste schopný rychle posoudit, jestli je gramatika regulární nebo ne.

Nicméně, jestli se vám s gramatikami pracuje líp než s grafem přechodové funkce, tak vám to neberu, dělejte si to jak chcete. Klidně i z důvodu vroucí lásky k mocné Kálí, to je vaše věc. Když vám to někdo zaplatí... :)


Ivan Nový

Re:Gramatiky v IT
« Odpověď #46 kdy: 16. 05. 2017, 10:09:55 »
To jednoduše nepoznáte v ničem. Tak v tom není rozdíl, mezi seznamem a gramatikou.
V grafu mi stačí kouknout, jestli existuje cesta z počátečního stavu do akceptujícího. To vidím celkem hned i na složitějším grafu. Najít cestu od rytíře k princezně je standardní kvíz pro pětileté děti. V gramatice to na první pohled vidět není, člověk si musí projít všechny cesty, protože rychle nevidí, které jsou slepé. A to ani nemluvím o tom, že gramatika nemusí být zadaná v normální formě. To pak ani nejste schopný rychle posoudit, jestli je gramatika regulární nebo ne.

Nicméně, jestli se vám s gramatikami pracuje líp než s grafem přechodové funkce, tak vám to neberu, dělejte si to jak chcete. Klidně i z důvodu vroucí lásky k mocné Kálí, to je vaše věc. Když vám to někdo zaplatí... :)

V grafu, který má třeba několik tisíc uzlů? Ale nepovídejte.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Gramatiky v IT
« Odpověď #47 kdy: 16. 05. 2017, 10:54:52 »
To jednoduše nepoznáte v ničem. Tak v tom není rozdíl, mezi seznamem a gramatikou.
V grafu mi stačí kouknout, jestli existuje cesta z počátečního stavu do akceptujícího. To vidím celkem hned i na složitějším grafu. Najít cestu od rytíře k princezně je standardní kvíz pro pětileté děti. V gramatice to na první pohled vidět není, člověk si musí projít všechny cesty, protože rychle nevidí, které jsou slepé. A to ani nemluvím o tom, že gramatika nemusí být zadaná v normální formě. To pak ani nejste schopný rychle posoudit, jestli je gramatika regulární nebo ne.

Nicméně, jestli se vám s gramatikami pracuje líp než s grafem přechodové funkce, tak vám to neberu, dělejte si to jak chcete. Klidně i z důvodu vroucí lásky k mocné Kálí, to je vaše věc. Když vám to někdo zaplatí... :)

V grafu, který má třeba několik tisíc uzlů? Ale nepovídejte.
Gramatiky jsou mnohem přehlednější u vyšších typů, protože jakmile se k automatu přidá zásobník, už není na první pohled vidět nic. U regulárních jazyků to asi bude případ od případu, takže pravdu máte (částečně) oba  ;)

Ono vůbec jedna věc je zápis pro lidi a druhá pro počítač, taková BG s omezujícímí podmínkami se dá ekvivalentně zapsat jedním jediným pravidel (s hromadou podmínek), ale normální člověk tak nic implementovat nebude (aspoň doufám).

Ivan

Re:Gramatiky v IT
« Odpověď #48 kdy: 16. 05. 2017, 12:42:31 »
To jednoduše nepoznáte v ničem. Tak v tom není rozdíl, mezi seznamem a gramatikou.
V gramatice to na první pohled vidět není, člověk si musí projít všechny cesty, protože rychle nevidí, které jsou slepé. A to ani nemluvím o tom, že gramatika nemusí být zadaná v normální formě. To pak ani nejste schopný rychle posoudit, jestli je gramatika regulární nebo ne.

Nicméně, jestli se vám s gramatikami pracuje líp než s grafem přechodové funkce, tak vám to neberu, dělejte si to jak chcete. Klidně i z důvodu vroucí lásky k mocné Kálí, to je vaše věc. Když vám to někdo zaplatí... :)

Finta je v tom, ze ze tohle za tebe udela kazdy rozumny tool, ktery z te gramatiky generuje zdrojaky.
Popr. ti IDE prevede tu gramatiku na graf (klikaci).

PS: gramatika se preci jenom udrzuje mnohem snaz, nez definice prechodove fce.

Re:Gramatiky v IT
« Odpověď #49 kdy: 16. 05. 2017, 13:28:55 »
V grafu, který má třeba několik tisíc uzlů? Ale nepovídejte.
Pokud by ten graf měl nekolik tisíc uzlů, tak by ta gramatika měla k desítce tisíc pravidel (z jednoho uzlu půjde zepár hran žejo).  Poud budu brát 40 řádků na stránku, tak to máme někde kolem 2 až 3 tisíc stránek pravidel gramatiky. Tam jistě půjde tu cestu najít snadno :))))


Re:Gramatiky v IT
« Odpověď #50 kdy: 16. 05. 2017, 13:29:48 »
Popr. ti IDE prevede tu gramatiku na graf (klikaci).
A proc by to dělal? Že by proto, že graf je přehlednější? :)))

Re:Gramatiky v IT
« Odpověď #51 kdy: 16. 05. 2017, 13:32:27 »
U regulárních jazyků to asi bude případ od případu, takže pravdu máte (částečně) oba  ;)
Nemáme, protože řeč je čistě o regulárních automatech/gramatikách :)

Re:Gramatiky v IT
« Odpověď #52 kdy: 16. 05. 2017, 13:39:45 »
2 až 3 tisíc stránek
Pardon: set, ne tisíc

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Gramatiky v IT
« Odpověď #53 kdy: 16. 05. 2017, 14:59:25 »
U regulárních jazyků to asi bude případ od případu, takže pravdu máte (částečně) oba  ;)
Nemáme, protože řeč je čistě o regulárních automatech/gramatikách :)
...které explicitně zmiňuju. Nicméně taky se to dá říct tak, že pravdu nemáte ani jeden  :)

balki

Re:Gramatiky v IT
« Odpověď #54 kdy: 16. 05. 2017, 15:47:08 »
No ale ten obrázek je de facto grafický zápis pravidel gramatiky. To jste se trochu střelil do nohy.
OMG! Je to de facto zápis gramatiky, protože pro ten automat existuje regulární gramatika. Ale tohle je prostě automat. Automat je automat a gramatika je gramatika.

Gramatika je generativna, automat je akceptacny. Gramatikou sa opisuju mozne vstupy pre ten automat.

zboj

  • *****
  • 1 507
    • Zobrazit profil
    • E-mail
Re:Gramatiky v IT
« Odpověď #55 kdy: 18. 05. 2017, 11:13:33 »
No ale ten obrázek je de facto grafický zápis pravidel gramatiky. To jste se trochu střelil do nohy.
OMG! Je to de facto zápis gramatiky, protože pro ten automat existuje regulární gramatika. Ale tohle je prostě automat. Automat je automat a gramatika je gramatika.

Gramatika je generativna, automat je akceptacny. Gramatikou sa opisuju mozne vstupy pre ten automat.
Blbost, gramatika může být rekognoskativní (sic!) a automat generovat, to s tím vůbec nesouvisí.

balki

Re:Gramatiky v IT
« Odpověď #56 kdy: 19. 05. 2017, 07:26:31 »
No ale ten obrázek je de facto grafický zápis pravidel gramatiky. To jste se trochu střelil do nohy.
OMG! Je to de facto zápis gramatiky, protože pro ten automat existuje regulární gramatika. Ale tohle je prostě automat. Automat je automat a gramatika je gramatika.

Gramatika je generativna, automat je akceptacny. Gramatikou sa opisuju mozne vstupy pre ten automat.
Blbost, gramatika může být rekognoskativní (sic!) a automat generovat, to s tím vůbec nesouvisí.

No, ak myslite, lol. Tak ok. Uz rozumiem, preco mam taky vysoky plat. Ano, niektore automaty mozu byt aj generativne, napriklad taky turingac, alebo LBA, ale akceptacnu gramatiku som este jakziv nevidel. (Kedze gramatika je opis a nie algoritmus) "Blbost" hovorte, viete komu ...

Ivan Nový

Re:Gramatiky v IT
« Odpověď #57 kdy: 19. 05. 2017, 07:44:32 »
No ale ten obrázek je de facto grafický zápis pravidel gramatiky. To jste se trochu střelil do nohy.
OMG! Je to de facto zápis gramatiky, protože pro ten automat existuje regulární gramatika. Ale tohle je prostě automat. Automat je automat a gramatika je gramatika.

Gramatika je generativna, automat je akceptacny. Gramatikou sa opisuju mozne vstupy pre ten automat.
Blbost, gramatika může být rekognoskativní (sic!) a automat generovat, to s tím vůbec nesouvisí.

No, ak myslite, lol. Tak ok. Uz rozumiem, preco mam taky vysoky plat. Ano, niektore automaty mozu byt aj generativne, napriklad taky turingac, alebo LBA, ale akceptacnu gramatiku som este jakziv nevidel. (Kedze gramatika je opis a nie algoritmus) "Blbost" hovorte, viete komu ...

Akceptační gramatika == PEG, je ji možno implementovat tak, že jde o zápis gramatiky a zároveň akceptační automat.

Kód: [Vybrat]
    rule = Sequence(OneOrMore(Char('A')), Optional(Char('B')))  # rule => A*B?
    ast = rule.parse(text)

balki

Re:Gramatiky v IT
« Odpověď #58 kdy: 19. 05. 2017, 08:27:02 »
Akceptační gramatika == PEG, je ji možno implementovat tak, že jde o zápis gramatiky a zároveň akceptační automat.

Kód: [Vybrat]
    rule = Sequence(OneOrMore(Char('A')), Optional(Char('B')))  # rule => A*B?
    ast = rule.parse(text)

Ah, vypinam root-a idem robit radsej nieco uzitocne. Tu to nema cenu.

Ivan Nový

Re:Gramatiky v IT
« Odpověď #59 kdy: 19. 05. 2017, 09:05:17 »
Akceptační gramatika == PEG, je ji možno implementovat tak, že jde o zápis gramatiky a zároveň akceptační automat.

Kód: [Vybrat]
    rule = Sequence(OneOrMore(Char('A')), Optional(Char('B')))  # rule => A*B?
    ast = rule.parse(text)

Ah, vypinam root-a idem robit radsej nieco uzitocne. Tu to nema cenu.

Tak například funkce, nebo konstruktor objektu OneOrMore je pravidlo a zároveň část automatu, protože 'fyzicky' opakuje provádění či akceptaci pravidla, které do ní vložíte. Zároveň je to část automatu, a zároveň sémanticky vyjadřuje část pravidla. Nemáte zde zřetelně odděleno co je gramatika a co je automat, který ji přijímá, protože ten automat skládáte rovnou z pravidel gramatiky. Uvedené pravidlo OneOrMore z hlediska gramatiky je metasymbol, z hlediska automatu je to jasně definovaná akce nad stavy automatu (pravidly), a to, proveď pravidlo alespoň jednou dokud platí.


Co je na tom nesrozumitelného.