Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Lingwistyka Matematyczna Mgr inż. Michał Jaros Lingwistyka Matematyczna wykład 5.

Podobne prezentacje


Prezentacja na temat: "Lingwistyka Matematyczna Mgr inż. Michał Jaros Lingwistyka Matematyczna wykład 5."— Zapis prezentacji:

1 Lingwistyka Matematyczna Mgr inż. Michał Jaros Lingwistyka Matematyczna wykład 5

2 Lingwistyka Matematyczna Agenda Rozszerzenia notacji BNF Diagramy składniowe Zamiana diagramów składniowych na kod analizatora Podsumowanie Q&A Mgr inż. Michał Jaros2

3 Lingwistyka Matematyczna Metody zapisu gramatyk Gramatyka Pāņiniego Notacja BNF i jej rozszerzenia Notacja WSN Diagramy składniowe Mgr inż. Michał Jaros3

4 Lingwistyka Matematyczna Gramatyka Pāņiniego Autor Pāņini Powstał w V w.p.n.e. Ashtadhyayi (Ośmioksiąg) Gramatyka sanskrytu 3959 reguł gramatycznych Mgr inż. Michał Jaros4

5 Lingwistyka Matematyczna Notacja BNF Backus–Naur form (BNF) Metasymbole notacji BNF:, ::=, | Mgr inż. Michał Jaros5 ::= | ::= " ">" "::=" ::= | "|" ::= | ::= | " ">" ::= """ """ ::= | ::= " ">" "::=" ::= | "|" ::= | ::= | " ">" ::= """ """ ::= ::= kwiaty | gwiazdy ::= kwitną | świecą ::= ::= kwiaty | gwiazdy ::= kwitną | świecą

6 Lingwistyka Matematyczna Notacja WSN Wirth syntax notation (WSN) Mgr inż. Michał Jaros6 SKŁADNIA = { PRODUKCJA }. PRODUKCJA = IDENTYFIKATOR "=" WYRAŻENIE ".". WYRAŻENIE = SKŁADNIK { "|" SKŁADNIK}. SKŁADNIK = CZYNNIK { CZYNNIK }. CZYNNIK = IDENTYFIKATOR | LITERAŁ | "(" WYRAŻENIE ")" | "[" WYRAŻENIE "]" | "{" WYRAŻENIE "}". IDENTYFIKATOR = litera { litera }. LITERAŁ = """ znak { znak } """. SKŁADNIA = { PRODUKCJA }. PRODUKCJA = IDENTYFIKATOR "=" WYRAŻENIE ".". WYRAŻENIE = SKŁADNIK { "|" SKŁADNIK}. SKŁADNIK = CZYNNIK { CZYNNIK }. CZYNNIK = IDENTYFIKATOR | LITERAŁ | "(" WYRAŻENIE ")" | "[" WYRAŻENIE "]" | "{" WYRAŻENIE "}". IDENTYFIKATOR = litera { litera }. LITERAŁ = """ znak { znak } """.

7 Lingwistyka Matematyczna Rozszerzenia notacji BNF (EBNF) Extended Backus–Naur form (EBNF) Mgr inż. Michał Jaros7 Zapis w BNFZapis w EBNFZnaczenie ::= jest zdefiniowany przez ||lub zakończenie formuły brak{ x }0 lub wielokrotne powtórzenie symbolu x symbol nie terminalny symbol symbol terminalny

8 Lingwistyka Matematyczna Rozszerzenia notacji BNF (MBNF) Modified Backus–Naur form (MBNF) Mgr inż. Michał Jaros8 Zapis w EBNFZapis w MBNFZnaczenie ::==jest zdefiniowany przez ||lub.zakończenie formuły brak[ x ]0 lub jednokrotne powtórzenie symbolu x { x } 0 lub wielokrotne powtórzenie symbolu x brak( x | y | … | z )dowolny z symboli x, y, …, z symbol-nie-termsymbol nie terminalny symbol"symbol"symbol terminalny

9 Lingwistyka Matematyczna Diagramy składniowe Diagram składni (diagram kolejowy) Sposób prezentacji gramatyk formalnych Graficzna alternatywa dla BNF i innych Przejrzysty obraz struktury języka Bardziej czytelne dla człowieka Mniej czytelne dla komputera Dobry przy projektowaniu języka Mgr inż. Michał Jaros9

10 Lingwistyka Matematyczna Diagramy kolejowe ? Mgr inż. Michał Jaros10 Fragment diagramu składni JSONa

11 Lingwistyka Matematyczna Diagramy składniowe - reguły konstrukcji Mgr inż. Michał Jaros11 A=B. A="x".

12 Lingwistyka Matematyczna Diagramy składniowe - reguły konstrukcji Mgr inż. Michał Jaros12 A= α 1 α 2 … α n.

13 Lingwistyka Matematyczna Diagramy składniowe - reguły konstrukcji Mgr inż. Michał Jaros13 A="α 1 " | "α 2 " | … | "α n ".

14 Lingwistyka Matematyczna Diagramy składniowe - reguły konstrukcji Mgr inż. Michał Jaros14 A= ["x"].

15 Lingwistyka Matematyczna Diagramy składniowe - reguły konstrukcji Mgr inż. Michał Jaros15 A= {"x"}.

16 Lingwistyka Matematyczna Zamiana diagramów składniowych na kod analizatora Diagram składniowy schemat blokowy analizatora Reguły przejścia od diagramu do kodu analizatora Cel działania analizatora: – Sprawdzenie poprawności składniowej – Wygenerowanie komunikatów o błędach Mgr inż. Michał Jaros16

17 Lingwistyka Matematyczna Zamiana diagramów składniowych na kod analizatora Mgr inż. Michał Jaros17 procedure A; begin … end; procedure A; begin … end;

18 Lingwistyka Matematyczna Zamiana diagramów składniowych na kod analizatora Mgr inż. Michał Jaros18 … if ch = "x" then read(ch) else błąd; … if ch = "x" then read(ch) else błąd; … if ch in pierw(B) then B() else błąd; … if ch in pierw(B) then B() else błąd; …

19 Lingwistyka Matematyczna Zamiana diagramów składniowych na kod analizatora Mgr inż. Michał Jaros19 … case ch of "x" : read(ch); "y" : read(ch); … "z" : read(ch); else błąd; end; … case ch of "x" : read(ch); "y" : read(ch); … "z" : read(ch); else błąd; end; …

20 Lingwistyka Matematyczna Zamiana diagramów składniowych na kod analizatora Mgr inż. Michał Jaros20 … while ch = "x" do read(ch); … while ch = "x" do read(ch); …

21 Lingwistyka Matematyczna Podsumowanie Rozszerzenia notacji BNF Diagramy składniowe Analizator składniowy z diagramu składni Mgr inż. Michał Jaros21

22 Lingwistyka Matematyczna Q&A Mgr inż. Michał Jaros22

23 Lingwistyka Matematyczna KONIEC Mgr inż. Michał Jaros23


Pobierz ppt "Lingwistyka Matematyczna Mgr inż. Michał Jaros Lingwistyka Matematyczna wykład 5."

Podobne prezentacje


Reklamy Google