• Artykuły
  • Forum
  • Ciekawostki
  • Encyklopedia
  • Notacja BNF

    Przeczytaj także...
    Metajęzyk – dowolny język służący do opisu innego języka. W skład metajęzyka wchodzą nazwy wyrażeń języka opisywanego, zazwyczaj tworzone jako nazwy cudzysłowowe, predykaty opisujące relacje sematyczne między wyrażeniami języka opisywanego a tym, do czego wyrażenia te się odnoszą (np. "oznacza", "denotuje"), pewne reguły znaczeniowe, reguły składniowe itp. W szczególności językiem badanym może być ten sam język, w którym przeprowadza się badania.ALGOL (z ang. ALGOrithmic Language) – język programowania, który odegrał ważną rolę w historii informatyki. Wpłynął istotnie na kształtowanie się innych języków, w tym Pascala. Od momentu powstania przez około 20 lat ALGOL (lub jego dialekty) był de facto standardem opisu algorytmów w publikacjach naukowych i podręcznikach.
    Liczby naturalne – liczby służące podawaniu liczności (trzy osoby, zob. liczebnik główny/kardynalny) i ustalania kolejności (trzecia osoba, zob. liczebnik porządkowy), poddane w matematyce dalszym uogólnieniom (odpowiednio: liczby kardynalne, liczby porządkowe). Badaniem własności liczb naturalnych zajmują się arytmetyka i teoria liczb. Według finitystów, zwolenników skrajnego nurtu filozofii matematyki, są to jedyne liczby, jakimi powinna zajmować się matematyka - słynne jest stwierdzenie propagatora arytmetyzacji wszystkich dziedzin matematyki Leopolda Kroneckera: Liczby całkowite stworzył dobry Bóg. Reszta jest dziełem człowieka.

    Notacja Backusa-Naura (ang. Backus-Naur Form, BNF) – metoda zapisu reguł gramatyki bezkontekstowej.

    Definicja formalna[ | edytuj kod]

    Notacja BNF jest zestawem reguł produkcji o następującej postaci: <symbol>::= <wyrażenie zawierające symbole>

    Znaczenie użytych tu symboli jest następujące:

    Peter Naur (ur. 25 października 1928) – astronom i informatyk, współtwórca notacji Backusa-Naura, powszechnie używanej w informatyce do opisu składni języków programowania i jeden z twórców języka Algol. Laureat nagrody Turinga z 2005 roku.Informatyka – dyscyplina nauki zaliczana do nauk ścisłych oraz techniki zajmująca się przetwarzaniem informacji, w tym również technologiami przetwarzania informacji oraz technologiami wytwarzania systemów przetwarzających informację. Początkowo stanowiła część matematyki, później rozwinęła się do odrębnej dyscypliny – pozostaje jednak nadal w ścisłej relacji z matematyką, która dostarcza informatyce podstaw teoretycznych.
  • < – lewy ogranicznik symbolu
  • > – prawy ogranicznik symbolu
  • ::= – jest zdefiniowane jako
  • | – lub
  • Cztery powyższe symbole to symbole metajęzyka – ich znaczenie nie jest określone w języku, który określają.

    O innych symbolach występujących w regułach produkcji zakłada się, że należą do alfabetu języka lub samego języka.

    Przykład[ | edytuj kod]

    Aby przy pomocy notacji BNF określić liczbę naturalną, można użyć następujących reguł:

    Rozszerzona notacja Backusa-Naura (ang. Extended Backus-Naur Form) jest sposobem wyrażenia gramatyki bezkontekstowej, czyli opisem języków formalnych. Jest rozszerzeniem notacji BNF.Fortran (od wersji 90 do aktualnej) a dawniej FORTRAN (do wersji 77 włącznie) (od ang. FORmula TRANslator) – język programowania pierwotnie zaprojektowany do zapisu programów obliczeniowych, był niegdyś językiem proceduralnym, obecnie jest nadal rozwijanym językiem ogólnego przeznaczenia. Umożliwia programowanie strukturalne, obiektowe (Fortran 90/95), modularne i równoległe (Fortran 2008). Jego zastosowaniami są, między innymi, obliczenia naukowo-inżynierskie, numeryczne, symulacja komputerowa itp.
    1. <zero>::= 0
      Przykład wartości: 0
    2. <cyfra niezerowa>::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
      Przykład wartości: 1, 2, 3
    3. <cyfra>::= <zero>| <cyfra niezerowa>
      Przykład wartości: 0, 1, 2, 3
    4. <ciąg cyfr>::= <cyfra>| <cyfra><ciąg cyfr>
      Przykład wartości: 0, 1, 01, 23, 45, 99, 10023, 000001
    5. <liczba naturalna>::= <cyfra>| <cyfra niezerowa><ciąg cyfr>
      Przykład wartości: 0, 1, 2, 34 56, 406, 556066

    Wyjaśnienie: definicja ta jest rekurencyjna (w przeciwieństwie do iteracyjnej) – ciąg cyfr jest zdefiniowany przez odwołanie się do pojęcia ciągu cyfr. Jest to jednak poprawne określenie, bowiem produkcja 4 mówi, że ciągiem cyfr jest: cyfra lub cyfra i ciąg cyfr. Ostatecznie, pod pojęciem liczby naturalnej według powyższego określenia należy rozumieć dowolny ciąg cyfr, rozpoczynający się od cyfry niezerowej lub samo zero.

    Protokół komunikacyjny to zbiór ścisłych reguł i kroków postępowania, które są automatycznie wykonywane przez urządzenia komunikacyjne w celu nawiązania łączności i wymiany danych.John Warner Backus (ur. 3 grudnia 1924 w Filadelfii w stanie Pensylwania (stan w USA) w USA - zm. 17 marca 2007 w Ashland w stanie Oregon w USA) - amerykański informatyk, twórca języka programowania Fortran, pierwszego powszechnie używanego języka wysokiego poziomu, jeden z twórców (wraz z Naurem) notacji BNF wykorzystywanej do zapisu składni języków programowania. Laureat nagrody Turinga w 1977 roku za oba te dokonania.

    Na podobnej zasadzie, wykorzystując powyższe definicje, można zdefiniować liczbę zmiennoprzecinkową:

    1. <przecinek>::=, | .
      Przykład wartości:,,.
    2. <liczba zmiennoprzecinkowa>::= <liczba naturalna>| <liczba naturalna><przecinek><ciąg cyfr>
      Przykład wartości: 0, 12, 12.1, 12,09

    Idąc tą drogą można zdefiniować punkt, wektor, liczbę zespoloną itd.

    Zastosowanie[ | edytuj kod]

    Notacja ta jest powszechnie używana w informatyce do zapisu składni (syntaktyki) języków programowania i protokołów komunikacyjnych. Została wymyślona przez Johna Backusa w latach 50. w czasie prac nad językiem Fortran, a następnie zmodyfikowana przez Petera Naura i użyta do zdefiniowania składni języka ALGOL.

    Język programowania – zbiór zasad określających, kiedy ciąg symboli tworzy program komputerowy oraz jakie obliczenia opisuje.

    Zobacz też[ | edytuj kod]

  • Notacja EBNF
  • Uwagi[ | edytuj kod]

    1. Jako przecinek należy tu rozumieć znak przecinka lub kropki.

    Bibliografia[ | edytuj kod]

  • Michał Iglewski, Jan Madey, Stanisław Matwin: Pascal – język wzorcowy. Pascal 360. WNT, 1979. ISBN 83-204-0597-1.
  • Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman: Kompilatory – reguły, metody i narzędzia. WNT, 1984. ISBN 83-204-2656-1.




  • Reklama

    Czas generowania strony: 0.014 sek.