Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > pl.comp.programming > #32240
| From | Borneq <borneq@antyspam.hidden.pl> |
|---|---|
| Newsgroups | pl.comp.programming |
| Subject | Porównywanie gramatyk |
| Date | 2019-01-04 00:17 +0100 |
| Organization | ATMAN - ATM S.A. |
| Message-ID | <q0m55q$cok$1@node1.news.atman.pl> (permalink) |
Dość nietrywialny problem. O ile porównanie plików tekstowych jest szeroko znane, to jak jest z gramatykami zdefiniowanymi przez rozszerzone produkcje EBNF, takie ze znakami + (1 i więcej razy potarzaj) czy * (0 i więcej razy potarzaj) ? Przy porównywaniu ma nie zważać na kolejność reguł ani na kolejność produkcji w regule. Tak samo na nazwy nieterminalne. Trochę co innego niż stwierdzenie, że dwie gramatyki generują taki sam język, bo nie tylko tak trzeba porównać, ale i wskazać różnice, na szczęście dla większych zmian generujących ten sam język (na przykład eliminacja rekurencji, łączenie reguł) można stwierdzać różnice, było by to nawet wskazane, byle by szybko "łapać synchronizację". Co takiego aby można było stwierdzić jakie różnice są w różnych plikach gramatyk dla tego samego języka, Pascala,Javy, C,itd.. a także porównać np. definicje C i C++ - jakie podobieństwa i jakie różnice, a także Javy i C# itp.(to ostatnie oznacza że musiałby być w pewnym stopniu ślepy również na symbole terminalne generujące inne języki, byle by mógł wyłapać różnice w strukturze i filozofii języka - ale to trudniejszy warunek niż porównywanie dla tego samego języka)
Back to pl.comp.programming | Previous | Next — Next in thread | Find similar | Unroll thread
Porównywanie gramatyk Borneq <borneq@antyspam.hidden.pl> - 2019-01-04 00:17 +0100
Re: Porównywanie gramatyk J-23 <Baczeklu@poczta.fm> - 2019-01-05 22:53 +0100
Re: Porównywanie gramatyk Borneq <borneq@antyspam.hidden.pl> - 2019-01-06 13:23 +0100
csiph-web