Diskussion:Erweiterte Backus-Naur-Form

Letzter Kommentar: vor 8 Jahren von Arilou in Abschnitt logisches oder

Trennzeichen zwischen zwei "Single-Definitions"

Bearbeiten

Der ISO-Standard definiert das Komma "," als Trennzeichen zwischen zwei "Single-Definitions". Dies ist mir das erste Mal aufgefallen, als ich vor einigen Tagen über Wikipedia auf den Standard aufmerksam geworden bin. Bis dato war ich der Meinung, dass statt dessen das Leerzeichen " " als Trenner verwendet wird. Warum habe ich die Komma-Schreibweise noch nie irgendwo in Verwendung gesehen, obwohl es den Standard seit 1996 gibt? --StefanH 10:19, 22. Jun 2004 (CEST)

Ich meine auch, dass das Komma da rein müsste. Im Artikel der englischen Wikipedia ist es drin. Wenn niemand widerspricht, setze ich es in einigen Tagen an diversen Stellen rein. -- Gerd Fahrenhorst (Diskussion) 13:39, 8. Aug. 2012 (CEST)Beantworten

Einleitung

Bearbeiten
  • Ich finde den Artikel wenn ich ehrlich bin auch nicht besonders gut. Er ist zu schnell. Die Motivation sollte nur die Motivation enthalten und nicht direkt ein Beispiel das den Unterschied zwischen BNF und EBNF erklärt. Außerdem fehlt mir ein bißchen die Einführung mit Terminal- und Nichtterminalsymbolen usw. Ich werde das vielleicht gleich mal ändern. Falls jemand anders noch Ideen hat oder Verbesserungsvorschläge, wäre das sicher hilfreich. -- Korpsvart 22:22, 17. Sep 2004 (CEST)
Die Einführung in Terminal/Nichtterminalsymbole ist doch schon in BNF --Hubi 07:24, 18. Sep 2004 (CEST)
Aber BNF ist ungleich EBNF. Wenn jemand hierher kommt und nicht weiß dass es bei dem Artikel BNF steht, der sucht dann. Man könnte auch Terminalsymbol und Nichtterminalsymbol als Begriffserklärung aufnehmen und dann von beiden Artikeln dahin verlinken, falls das Sinn macht!? Ich fand es auf jeden Fall irgendwie fehlend. Ich wieß, dass beide Artikel das quasi benötigen, aber es müsste dann auch in beiden stehen. Finde ich. -- Korpsvart 02:52, 19. Sep 2004 (CEST)

Beispiel

Bearbeiten

"Beispiel raus, da sprachlich holprig, teilweise falsch oder irreführend (Startsymbol ist nicht Teil der EBNF sondern der Grammatik usw. usf.)" Das hat Hubi geschrieben bei der Versionsänderung. Um ehrlich zu sein verstehe ich das nicht so ganz. Das was ich als Beispiel geschrieben hatte, war das was ich an der Uni zur EBNF gelernt habe (und übrigens gerade erst wiederholt hatte, was also frisch im Kopf war). Und wieso soll das "Startsymbol" zur Grammatik aber nicht zur EBNF gehören? Was ist denn die EBNF ohne Grammatik? hast Du schon mal jemanden gesehen der Deutsch spricht, aber keine Deutsche Grammatik benutzt??? Ich verstehe den Sinn der Aussage nicht so ganz (mal unabhängig davon ob es nun richtig oder falsch ist). Und wieso war es "sprachlich holprig"? Das hätte man u. U. verbessern können und was genau bitte war falsch? Lass mich nicht dumm sterben. Ich bin nämlich noch nicht ganz überzeugt das da ein Fehler drinne war, da es fast zu 100% das Beispiel aus einem Vorlesungskript war und auch ähnlich (bis genauso) als Aufgabe in einer Übung war. Ich hätte das von dir gerne mal "bewiesen" oder erklärt. Vorher kann ich das noch nicht so ganz glauben und beim Versionsupdate dazu zu schreiben, dass es falsch ist, heißt noch lange nicht, dass es so ist! -- Korpsvart 22:41, 28. Sep 2004 (CEST)

Ich habe versucht, das was im Beispiel erklärt war, zu ergänzen und zu verbessern, gelangte aber zur Ansicht, dass vieles schon an anderen Stellen ({..}) bzw. im BNF-Artikel erklärt ist. Ausdrücke wie aufdröseln etc. fand ich sprachlich ungeschickt. Eine Grammatik besteht aus vier Teilen:
  1. der Menge der Terminalsymbole T
  2. der Menge der Nichtterminalsymbole N
  3. dem Startsymbol, das ein Element der Menge N ist
  4. der Menge R der Ableitungsregeln, notiert z.B. in EBNF
Die EBNF ist nur eine Notation der Menge R, das Startsymbol gehört hier nicht her. Im Einzelnen
Einführung mit Beispiel
Die BNF sowie auch die EBNF bestehen aus zwei Arten von wichtigen Symbolen. Da wären zunächst die Terminalsymbole und die Nichtterminalsymbole.
Wie zunächst? Das sind schon zwei Arten. Kommen denn noch mehr? Weiterlesen hilft auch nicht.
Die EBNF ist so aufgebaut, dass auf der linken Seite immer ein Nichtterminalsymbol steht. Dann folgt ein Gleichheitszeichen (=) als Zuweisung und auf der rechten Seite (also das was zugewiesen wird) ist eine Folge von Terminal- und Nichtterminalsymbolen.
Na ja, das sieht man auch so. Das Gleichheitszeichen ist keine zwingende Vorschrift, man kann auch :==, ::= usw. nehmen. Es ist Bestandteil der EBNF, obwohl oben steht, es gäbe nur zwei Arten von (wichtigen) Symbolen. Vielleicht ist es ja auch unwichtig, oder es handelt sich um eine dritte Symbolart. Jedenfalls verwirrend. Wenn man hier schon beginnt, EBNF-Regeln zu erklären, dann bitte mMn vollständiger (Endesymbol fehlt etc.). Das Ganze kann man außerdem in BNF sowie teilweise im Abschnitt über die Unterschiede nachlesen.
Terminalsymbol
Ein Terminalsymbol ist, wie der Name schon sagt, ein Symbol das terminiert.
und was heißt in diesem Zusammenhang "terminieren"? Für mich unverständlich. Der Link hilft auch nicht weiter...
Es ist in der EBNF das letzte Glied in der Kette. Dieses Zeichen kann nicht weiter aufgelöst, aufgedröselt werden. Es steht also für sich selbst!
Die Praxis, sprich Compilerbau, verwendet oft Zahlen als Terminalsymbole, die dann vom Lexer an den Parser geliefert werden. Steht für sich selbst ist dann nicht ganz richtig. Aufgelöst, aufgedröselt siehe oben. Auflösen wird nicht erklärt.
Nichtterminalsymbol
Die Nichtterminalsymbole sind Platzhalter (Namen) die sich wiederum aus anderen Terminal- oder Nichtterminalsymbolen zusammen setzen können.
Ein Nichtterminalsymbol besteht also immer aus einer Folge von Terminal- und/oder Nichtterminalsymbolen.
und wie kriegt man jetzt die Kurve zu {...} etc? Wirklich immer nur eine Folge von Ts und Ns? Und was heißt Platzhalter.
Im Folgenden ein einfaches Beispiel zu den natürlichen Zahlen wodurch die Definition von Terminal- und Nichtterminalsymbol verständlicher werden dürfte.
Die natürlichen Zahlen in EBNF
   Startsymbol: natZahl
   Grundmenge: keine

   Regel:
   natZahl = ZifferOhneNull {Ziffer} .
   ZifferOhneNull = "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" .
   Ziffer = "0" | ZifferOhneNull .
Erläuterung zum Beispiel
Die fett markierten Wörter sind normalerweise immer anzugeben (es gibt wohl verschiedene Ausführungen / Dialekte der EBNF die sich in solchen Kleinigkeiten unterscheiden).
Der Satz widerspricht dem Standard (siehe Weblinks). Dieser beschreibt unter Notes: When the syntax of a complete language is defined there is a) a start symbol. b)... Das Startsymbol gehört (genaugenommen) also zur Syntax und nicht (!) zur EBNF. Der Standard schreibt schon gar keine Notation für diese Teile vor, wie das Beispiel suggeriert und der Text behauptet.
...erläutert weder Startsymbol noch Grundmenge noch Regel... Dagegen wird bei {..}, [...] wiederholt, was im Artikel weiter oben schon steht.
Zum Startsymbol/Grundmenge kein Wort. Und was sind jetzt im Beispiel die Terminalsymbole/Nichtterminalsymbole? Und Regeln? Oben steht: Die EBNF ist so aufgebaut, dass... Dies stimmt nicht mit dem Beispiel (Zeilen Startsymbol/Grundmenge/Regel) überein. Das Beispiel ist also keine EBNF, höchstens die drei letzten Zeilen! Trägt mMn eher zur Verwirrung bei. --Hubi

´

Hi.
OK. Ich habe deinen Einwand verstanden und kann dir sicher nicht in allem widersprechen.
Aber was ich absolut nicht verstehe sind deine Unterscheidungen zwischen EBNF und Grammatik und Syntax. Die Syntax ist einfach nur die Art und Weise welche Begriffe und Zeichen erlaubt sind. Das ist laut Definition des Begriffs zu (Programmier)Sprachen genau so definiert. Das wäre also bei der EBNF sowas wie "|" oder auch die Anführungszeichen selbst und alle weiteren Zeichen die erlaubt sind. Die Semantik beschreibt dann wie man welche Zeichen im Sinne der Grammatik richtig zu verwenden hat.
Damit wären wir beim nächsten Punkt Grammatik. Du schreibst bspw., dass es egal wäre ob man :== oder ::= verwendet oder eben ein normales Gleichheitszeichen. Das ist zumindest nach dem was ich in der Uni gelernt habe faktisch falsch! Die BNF(!) hat die Notation <terminalsymbol> ::= <folge von termin- und nichtterminalsymbolen> was sich hingegen zur EBNF nur davon unterscheidet, dass beide Symbole nur von einem Gleichheitszeichen getrennt sind.
Außerdem schreibst Du Der Satz widerspricht dem Standard (siehe Weblinks). Dieser beschreibt unter Notes: When the syntax of a complete language is defined there is a) a start symbol. b)... Das Startsymbol gehört (genaugenommen) also zur Syntax und nicht (!) zur EBNF.. Das verstehe ich wiederum nicht. Woher hast Du den Unterschied zwischen Syntax und EBNF? EBNF ist eine Beschreibungssprache und jede Sprache besteht aus Semantik, Syntax und Lexographie. Letzteres bezeichnet alle erlaubten Zeichen an sich. Die Syntax ist quasi die Menge aller erlaubten Wörter (also zusammengesetzt aus den Zeichen) und die Semantik ordnet den entsprechenden Zeichen nun eine Grammatik zu, so dass man weiß wie man sie zu verwenden hat. Ich habe irgendwie das Gefühl, dass Du verwechselst, dass die EBNF zwar selbst eine Sprache ist und eine Grammatik hat (und somit auch eine Syntax), aber dazu dient andere Grammatiken (für was auch immer) "aufzuschreiben". Dass bspw. das Startsymbol nicht wirklich zur EBNF dazu gehört mag sein, dass weiß ich nicht genau, aber es ist auf jeden Fall nicht unsinnig es hinzuschreiben. Und das einfache Beispiel von mir habe ich nur deswegen eingeführt, weil ich das Beispiel weiter unten für einen Anfänger der sich die Sache anschaut durchaus etwas komplex und zu verwirrend fand. Es ist ja nicht Sinn der Sache jemandem ein Thema nicht beizubringen in dem man es so kompliziert wie möglich gestaltet.
Zum Startsymbol/Grundmenge kein Wort. Und was sind jetzt im Beispiel die Terminalsymbole/Nichtterminalsymbole?
Du sagtest ganz oben Na ja, das sieht man auch so.. Was nun? Sieht man es auch so oder soll man es extra erklären? Außerdem habe ich hingeschrieben, dass die linke Seite nur Nichtterminalsymbole enthält womit schon mal alle Nichtterminalsymbole zu erkennen sind und was übrig bleibt müssen dann, logischerweise, die Terminalsymbole sein.
Was mich irgendwie stört ist, dass Du auf der einen Seite so tust, als ob meine Erklärungn überflüssig sind, weil es ja schon klar ist und auf der anderen Seite fragst Du wie es denn gemeint ist bzw. das dazu nichts weiter erklärt wird usw. usf.
Was die Terminalsymbole angeht. Was terminieren ist kann man nachschauen. Das terminieren dafür steht, dass etwas "zu ende geht", dass etwas nicht weiter in Einzelteile zerlegt werden kann (was ich übrigens mit dem Wort aufdröseln beschrieben habe) ist dann aus dem Sinn des Wortes terminieren abzuleiten.
Es ist Bestandteil der EBNF, obwohl oben steht, es gäbe nur zwei Arten von (wichtigen) Symbolen.
Sorry, aber entweder versuchst Du krampfhaft mich mißzuverstehen oder Du verstehst es wirklich nicht. Es ist hier die Rede davon, dass es zwei wichtige (und deswegen extra zu erwähnende) Symbolarten(!) gibt. Ich habe nie geschrieben, dass es nur, einzig und alleine, also ausschließlich zwei Symbole gibt. Ich wollte damit nur darauf hinweisen, dass im allgemeinen gesagt die EBNF aus zwei wichtigen Symbolarten besteht. Eben den Terminal und den Nichtterminalsymbolen. Und wenn man es ganz genau nimmt ist das Gleichheitszeichen ebenso wieder ein Terminalsymbol. Es wird zwar von der EBNF in der Grammatik (für die Zuweisung) verwendet, aber es ist dennoch nicht weiter in seine Einzelteile zu zerlegen und deswegen ein Terminalsymbol!
Die Praxis, sprich Compilerbau, verwendet oft Zahlen als Terminalsymbole, die dann vom Lexer an den Parser geliefert werden. Steht für sich selbst ist dann nicht ganz richtig. Aufgelöst, aufgedröselt siehe oben. Auflösen wird nicht erklärt.
Also wie Du jetzt auf Compilerbau kommst weiß ich nicht genau. Sicher wird die EBNF zum Compilerbau verwendet, aber nicht um den Compiler selbst zu bauen (der schon richtig auch Zahlen weiter aufdröselt vom Lexer an den Parser usw.), aber wenn dann wird die EBNF genommen um bspw. die Syntax (bzw. Grammatik) einer Programmierpsrache (die vom Compiler compiliert wird) genau zu beschreiben. Mit der EBNF selbst wird kein Compiler gebaut. Schließlich ist es eine Beschreibungssprache und keine Programmiersprache. Und ob der PC nun eine Zahl weiter aufdröselt spielt für die EBNF keine Rolle. Dann könnte man auch sagen, dass alle Zeichen die dort verwendet werden keine Terminalsymbole sind (es solche Symbole also nicht gibt), da der PC alle Zeichen in eine Folge von 0en und 1en auflöst und diese wiederum eine Folge von Stromimpulsen im Netzwerk des Rechners sind. Somit wären die Stromimpulse die Terminalsymbole und die versuch mal darzustellen. Also der Vergleich mit Compilerbau und das ein PC die Zeichen weiter auflöst (also auch die Zahlen) ist hier völlig irrelevant.
Wenn Du jetzt sagen würdest, dass man eine Grammatik beschreiben kann, die definiert wie Zahlen in Binärschreibweise dargestellt werden, dann wäre das was Du oben schreibst fast korrekt, denn dann wären wiederum Zahlen die Terminalsymbole die nicht weiter aufgelöst werden können nämlich hier die Zahlen 0 und 1. Wenn Du sagst das stimmt auch nicht dann zeig mir mal bitte wie Du die 0en und 1en in Stromimpulse weiter auflöst!
Übrigens schreibst Du das das Wort "aufgelöst" oder "aufgedröselt" nicht weiter erklärt wird. Das ergibt sich, wenn man richtig gelesen hat und verstanden hat, aus dem Sinnzusammenhang zwischen Terminalsymbol, der Erklärung zu terminieren (was hier ja nicht Aufgabe des Artikels ist) und dem Begriff aufdröseln oder auflösen. Das ist hier ein Enzyklopädie-Artikel und keine Begriffserklärung und jeder der der deutschen Sprache mächtig ist wird den Sinn des Wortes "aufdröseln" oder "auflösen" (ich habe extra Beide Worte hingeschrieben!) verstehen. Dieser Sinn muss hier nicht extra erklärt werden. Das einzige wo ich dir Recht geben kann, ist die subjektive Meinung, dass die Ausdrucksform evtl. nicht ganz schön gewählt ist, aber wie gesagt, dass hätte man verbessern können.
Oben steht: Die EBNF ist so aufgebaut, dass... Dies stimmt nicht mit dem Beispiel (Zeilen Startsymbol/Grundmenge/Regel) überein. Das Beispiel ist also keine EBNF, höchstens die drei letzten Zeilen! Trägt mMn eher zur Verwirrung bei.
Da kann ich dir insofern Recht geben, als das nach meinem Satz (wenn man ihn ganz genau nimmt) das Startsymbol und die Grundmenge vielleicht nicht zur EBNF gehören. Das mag sein, dass es so stimmt (hab ich ja schon geschrieben). Sie sind heir nur der Vollständigkeit halber angegeben. Aber wie schon geschrieben, wenn Du alles so genau nimmst, dann sind deine Sätze, dass man ja sehen würde, dass es Nichttermainl- und Terminalsymbole gibt überflüssig.
Im Ganzen würde ich sagen, dass Du vielleicht Recht damit hast, dass mein Beispiel nicht sauber eingebaut war in den Artikel, aber er war nicht grundsätzlich falsch und hätte (wenn es weiter bearbeitet worden wäre) gut in den Artikel eingebaut werden können und zum Verständnis beitragen können. Dein Beispiel ist leider für die bloße Sinnerklärung und zum Verständnis des Anfänger viel zu komplex und zu undurchsichtig.
Es ging hier auch nicht darum etwas madig zu machen sondern zu erweitern, zu verbessern, aber ich habe das Gefühl, dass Du dich in deiner Ehre verletzt fühlst. Mein Beispiel war auf jeden Fall nicht grundfalsch und sehr wohl EBNF. Falls Du dir so sicher bist anderer Meinung und zwar der richtigen Meinung zu sein, dann kannst Du dich ja mal mit den Professoren unterhalten die solche Sachen lehren. Vielleicht kannst Du denen dann auch noch was erklären?
Aber Sarkasmus beiseite, ich gebe dir Recht in dem Einwand das es sicher nicht optimal erklärt war und auch sicher sprachlich nicht 100% richtig und schön ausgedrückt. Aber dazu sind ja auch andere User hier um daran mitzuarbeiten und zu verbessern. Aber wenn Du mir diesen Vorwurf machst, dann muss der Vorwurf für den (deiner Meinung nach guten und richtigen Artikel) genauso gelten. Denn er ist einfach zu kryptisch und zu komplex um dieses Thema zu erläutern und einzuführen.
Ich weiß ja nicht inwieweit Du mit Didaktik oder Lernen an sich vertraut bist, aber es gibt Leute die nicht auf Anhieb solche komplexen Themen erschließen können und es ist didaktisch und lerntechnisch gesehen sehr sinnvoll mit kleinen Erklärungen und Erläuterungen, dann mit einfachen und gut überschaubaren Beispielen anzufangen und von dort aus weiter ausdehnend zu komplexeren Anschauungen und Beispielen zu kommen. -- Korpsvart 11:41, 21. Okt 2004 (CEST)
[EDIT] Wie ich gerade sehe hast Du ja mein Beispiel zu den natürlichen Zahlen so ähnlich aufgenommen bzw. eingefügt. Dann verstehe ich dich noch weniger, denn das war es ja worum es mir ging. Verstehe nicht warum man erst alles entfernt, meckert und dann das Beispiel doch aufnimmt!? Korpsvart 12:01, 21. Okt 2004 (CEST)
Hallo Korpsvart. Das ist ja jetzt recht viel und momentan habe nicht die Zeit, alles durchzulesen. Beim letzten Satz [EDIT] hast du allerdings recht. In der Tat glaubte ich erst, dass man ja, wenn man Erweiterte BNF liest, automatisch auch BNF geht, wenn man etwas nicht versteht. Das ist nicht so. Insofern war dein Eingreifen in den Artikel natürlich richtig. Der Artikel sollte das Wichtigste selber erklären. Ich hab dann Einfügungen vorgenommen, die Du eigentlich richtigerweise (!) begonnen hast. Deine hab ich damals gelöscht, weil ich sie inhaltlichen und sprachlich nicht ganz gelungen fand (der Aufwand einer Korrektur wäre meines Erachtens zu hoch gewesen). Zu den fachlichen Einwänden später. Deine Kritik ist natürlich auch wichtig und richtig.
Dass ich den Artikel für gut (oder gar gelungen) halte, hab ich niemals gesagt, das unterstellst du mir (Den BNF-Artikel halte ich für wesentlich besser). Der Artikel ist verbesserungsfähig, das heisst aber nicht, dass gleich jede Ergänzung von mir gut geheissen wird. --Hubi 18:22, 21. Okt 2004 (CEST)
Hi Hubi.
Freut mich, dass Du meine Änderungen nicht als grundsätzlich falsch siehst. So hatte ich es zumindest verstanden. Das meine Änderungen nicht unbedingt 100% korrekt waren mag sein und sprachlich sicher verbesserungsüwrdig. Ich hatte die Einwände nur nicht ganz verstanden. Ich will auch nicht behaupten das alles was ich schreibe oder sage richtig ist. Ich kann eben nur das wieder geben was ich gelernt habe und da ich die BNF bzw. EBNF an der Uni gelernt habe gehe ich auch davon aus, dass das was ich gelernt habe korrekt ist.
Das es immer auch andere Meinungen, Sichtweisen oder "Unterarten" von etwas gibt ist mir bewusst. Auf jeden Fall freut mich das wir scheinbar ja doch zu einem Konsens finden, so finde ich macht das auf jeden Fall mehr Sinn und bringt den Artikel voran.
Dass ich den Artikel für gut (oder gar gelungen) halte, hab ich niemals gesagt, das unterstellst du mir (Den BNF-Artikel halte ich für wesentlich besser).
Ok da muss ich zu geben, dass war eine Behauptung von mir die ich aus deiner Verteidigung her aufgestellt habe, hast Du so nicht erwähnt, das ist korrekt!
Der Artikel ist verbesserungsfähig, das heisst aber nicht, dass gleich jede Ergänzung von mir gut geheissen wird.
Sehe ich genauso. Es muss zwar nicht jeder Artikel und jede Sache dem Geschmack und der Bearbeitungsform von jedem entsprechen (das geht ja nicht), aber dass man nicht alles als gut heißt, sondern auch hinterfragt und eventuell bessere Erklärungen und / oder Ausführungen findet ist ja Sinn von Wikipedia. Von daher finde ich bspw. die "Verarbeitungsform" meines Beispiels in den Artikel durchaus als Sinnvoll und gut. Von meiner Seite aus ist die Sache damit eigentlich erledigt. Aber Du kannst natürlich gerne noch auf mein langes posting oben eingehen (wenn die Muße besteht). :) -- Korpsvart 22:06, 21. Okt 2004 (CEST)

Varianten

Bearbeiten

Einen Überblick über die BNF/EBNF-Varianten bietet die Seite BNF/EBNF variants von Pete Jinks. --StefanH 10:34, 22. Jun 2004 (CEST)

Beispiel: Programmsyntax in EBNF

Bearbeiten

Das Beispiel ist m.E. etwas unglücklich dargestellt, weil es auf den ersten Blick den Eindruck vermittelt, dass einzelne Terminalsysmbole mit " und Wortsymbole mit ' quotiert werden. Wenn das im Text auch klar definiert wird, sollte man den Einfluss gerade eines Beispiels nicht unterschätzen. Ich bin jedenfalls schon mit der obigen Anschauung konfrontiert worden.
Weiterhin wäre es recht nützlich, wenn auf die Definition der optinalen Wiederholung {} explizit eingegangen würde. Leider wird das nämlich überhaupt nicht einheitlich gehandhabt und an anderer Stelle finden sich Beispiele der Form [{...}], woraus sich eigentlich nur ergeben kann, dass die Wiederholung da nicht optional ist. Besonders für Anfänger ist das ein böser Stolperstein.
Danke für den Hinweis auf die ISO-Norm. Obwohl ich mich schon lange mit dem Thema beschäftige, hatte ich davon auch noch nichts gehört.
J. Lampe

BNF ist gleich mächtig wie EBNF?

Bearbeiten

Alle Formulierungen in einer EBNF-Syntax lassen sich auch in BNF ausdrücken. Die EBNF wurde von Wirth aus Gründen der besseren Lesbarkeit und kompakteren Schreibweise geschaffen.

Das halte ich für falsch, so kann man z.B. die "Steuerzeichen" < und | nicht durch BNF-Regeln erzeugen, da es dort kein Anführungszeichen für Literale gibt. (s.a. englische Fassung des Artikels) --Lollipop 16:38, 3. Mär. 2008 (CET)Beantworten

Ich weiß nicht, wie es gehandhabt wird, aber muss die BNF denn maschinen-lesbar sein? Ansonsten könnte man über die sich aus dem Kontext ergebende Logik sehr wohl spitze Klammern etc. zulassen. Die Regeln <Spitze Klammer> ::= < | > und <Trennzeichen> ::= ; | | wären dann sehr wohl eindeutig, weil man beim ersten Beispiel weiß, dass es kein Nicht-Terminal "< | >" gibt, sowie dass die Aussage "Semikolon ODER nichts ODER nichts" keinen Sinn ergibt und daher "Semikolon ODER Vertikaler Strich" heißen muss. Ansonsten könne man in der EBNF ja auch kein " oder kein ' darstellen. - Chris 18:36, 20. Nov. 2011 (CET)Beantworten

logisches oder

Bearbeiten

Für das Zeichen | wird in der Tabelle angegeben, es handle sich um ein "logisches oder", was meines Wissens gleichbedeutend ist mit einem "einschließendem oder" bzw und/oder. Der Text scheint aber mehrfach von einem "entweder oder" auszugehen. Was stimmt denn nun? der Begriff "logisches oder" wird doch zur Abgrenzung vom "umgangssprachlichen oder" (="entweder oder") benutzt.

In BNF und EBNF bedeutet | stets XOR, richtig. --arilou (Diskussion) 09:48, 4. Feb. 2016 (CET)Beantworten
Hab' das entsprechend präzisiert und verlinkt. --arilou (Diskussion) 09:51, 4. Feb. 2016 (CET)Beantworten
Bearbeiten

Guten Abend,
beim lesen dieses Artikels (Permalink: http://de.wikipedia.org/w/index.php?title=Erweiterte_Backus-Naur-Form&oldid=91944305, Version vom "1. August 2011, 06:56 UTC") bin ich auf einen toten Link gestoßen: (Artikelabschnitt: Weblinks)

„Erzeugen von Syntaxdiagrammen aus EBNF (http://www-cgi.uni-regensburg.de/~brf09510/syntax.html)“

Momentan verlinkte Seite:

„Homepage-Server                      Seite nicht gefunden (Fehler 404)

Die Seite, die Sie gesucht haben, existiert auf diesem Server nicht. [...]“

Da ich kein Wikipedia Autor bin, wollte ich hier nur auf den toten Link aufmerksam machen und diesen nicht gleich löschen, da ich die entsprechenden Regeln nicht kenne. Ich hoffe mit meinem Hinweis dabei geholfen zu haben den Artikel zu verbessern.

Mit freundlichen Grüßen
saranas@web_punkt_de -- 109.226.128.122 01:50, 22. Sep. 2011 (CEST)Beantworten