Diskussion:Syntaxbaum

Letzter Kommentar: vor 5 Jahren von 2003:C5:7F10:3D00:1044:9C54:9DF2:BDCD in Abschnitt Unerklärlich

Unerklärlich

Bearbeiten

Ich bin Schüler (Klasse 9) und stöbere ab- und zu hier herum, weil hier alles so umfangreich erklärt ist. Bei diesem Artikel allerdings blicke ich überhaupt nicht durch. Hier wird wohl erklärt wie das funktioniert, aber nicht was das denn jetzt genau ist.

Das ist leider bei sehr vielen Artikeln im Kontext theoretische Informatik der Fall, da diese häufig eine solide Kentniss des Thema's vorraussetzen. Als Hilfe empfehle ich die Artikel Formale Grammatik und Chomsky-Hierarchie welche beide recht gut verständlich sind und beim Verständnis dieses Artikels helfen. --Horratio 17:12, 9. Feb 2006 (CET)
stimme vollkommen zu...Artikel komplett wertlos für 99,99% der Menschheit. Wenn ein Artikel nur ab 8.Semestern der Informatik verstanden werden kann, warum ist er dann in einer Enzyklopädie zu finden, die für "alle" gedacht ist? Wenn man den englischen Artikel als Fremdsprachler besser versteht als den in der Muttersprache ist echt was schief gelaufen! Es darf ja gerne in das vorhandene Detail gehen, aber zunächst mal muss doch auf einfache Weise darauf eingegangen werden. "John hit the ball"?? Im Ernst jetzt? Ich bin hier über den engl Artikel zu "Abstract Syntax Tree" gelandet, weil ich verstehen wollte, warum ein Compiler erstmal einen AST bildet, wenn er C oder eine ähnlich prominente Sprache analysiert... (nicht signierter Beitrag von 2003:C5:7F10:3D00:1044:9C54:9DF2:BDCD (Diskussion) 20:15, 19. Aug. 2019 (CEST))Beantworten

Syntaxbaum != Ableitungsbaum

Bearbeiten

Im Artikel wird Syntaxbaum mit Ableitungsbaum gleichgesetzt. Ein Ableitungsbaum behandelt eine Sprache im Allgemeinen, während jedoch ein Syntaxbaum auf eine spezielle Ableitung versucht hinzuarbeiten. Also zum Beispiel ein kleines Programm abzuleiten ergäbe einen Syntaxbaum, während wiederum die gesamte(!) Sprache, in der das Programm dann geschrieben ist, als Abgeleitung einen (den) Ableitungsbaum ergeben würde. Liege ich falsch? (nicht signierter Beitrag von 139.30.45.39 (Diskussion) 12:14, 10. Apr. 2008)

du hast vollkommen recht. in dieser beziehung ist die einleitung leider etwas schwammig. darum geht es hier aber nicht, da eher das konzept und weniger die semantischen feinheiten erklärt werden. auf diesen unterschied wird daher kurz im letzten abschnitt verwiesen. gruss --Murkel (anmurkeln) 18:51, 10. Apr. 2008 (CEST)Beantworten

Ableitungsbaum nicht immer eindeutig

Bearbeiten

"Zu einer gegebenen Ableitung ist der Ableitungsbaum eindeutig" stimmt nicht, wenn Epsilon-Regeln verwendet werden: Bei

 S -> AA
 A -> epsilon

hat das leere Wort eine Ableitung und zwei Ableitungsbäume, denn aus

 S => AA => A => epsilon

ist nicht ersichtlich, ob im Schritt AA => A das erste oder das zweite A durch epsilon ersetzt wurde. Im Ableitungsbaum wird das deutlich, darum gibt es hier zwei Ableitungsbäume. Ich füge darum die Einschränkung "ohne Epsilon-Regeln" ein. -- UKoch 12:50, 15. Feb. 2011 (CET)Beantworten

Inhaltl. Überschneidung mit Artikel Baum (Graphentheorie)

Bearbeiten

...sollte mal angegangen werden. --Alazon (Diskussion) 11:16, 25. Mai 2014 (CEST)Beantworten

Neuer Abschnitt "Einleitung"

Bearbeiten

Wie ist denn der Begriff des "Textes" gemeint, der da auftritt? Im linguistischen Sinne würde es mir nicht einleuchten, denn Baumdiagramme (vielleicht für "Oberflächenstrukturen") werden für die Analyse von Sätzen benutzt; ein "Text" ist hingegen eine Größe jenseits des Satzes und kein Gegenstand der Syntax.

Ok, da war ich auch am Zögern, als ich das geschrieben habe. Ich weiche aus WP:OMA-Gründen hier von der üblichen Terminologie ab. Die technisch richtige Bezeichnung für eine Zeichenkette, die durch eine Grammatik beschrieben wird, ist Wort (Theoretische Informatik), s.a. Ableitung_(Informatik)#Erzeugte_Sprache. Dies beißt sich natürlich mit dem umgangssprachlichen "Wort", "Satz" oder "Text". Bzgl. der Informatik gibt es da kein Vertun. Eine grammatisch korrekte Zeichenkette heißt "Wort". Die können dann auch tatsächlich sehr lang sein. Übliche Längen von Dateien mit Quelltexten sind so zwischen 200 bis 5000 Zeilen, also 2-100 Seiten, können aber noch länger sein. Dass in der Linguistik Syntaxbäume speziell für Sätze üblich sind, ist klar. Das Ganze betrifft die "Einleitung" und evtl. muss man dies einfach dort erwähnen, damit es richtig wird. --Cobalt pen (Diskussion) 12:46, 3. Jan. 2019 (CET)Beantworten

Die in Form einer verdeckten Verlinkung vorgenommene Gleichsetzung von "Tiefenstruktur" und "Inhalt" ist auch nicht richtig. Die syntaktische Form wird gerade von Chomsky als unabhängig vom Inhalt behandelt.

Ok, bin ich bei dir. --Cobalt pen (Diskussion) 12:46, 3. Jan. 2019 (CET)Beantworten

Insgesamt verstehe ich den Text zu wenig, um ihn redigieren zu können. Wie es vorher war, dass man von der Ableitung einer Kette wie in einem Kalkül ausging, war es plausibler. Der Satz wird auch zunächst so behandelt, die Elemente sind hierbei die Wörter der Sprache. --Alazon (Diskussion) 23:49, 1. Jan. 2019 (CET)Beantworten

Du meist hier den Abschnitt "Konstruktion"? Ich habe den zusammengestrichen, weil man Syntaxbäume in vielfältigster Weise konstruieren kann. Wie ursprünglich beschrieben, ausgehend vom Startsymbol, also von top-down, von oben nach unten. Genauso kann man aber auch von den Symbolen ausgehen, und den Baum von unten nach oben konstruieren. In der Linguistik, wo die Syntax besonders mehrdeutig ist, werden oft Chart- oder Insel-Parser eingesetzt, die sowohl als auch können. Ich habe dann lieber auf Parser verwiesen, wo diese unterschiedlichen Parser-Typen in einer Liste zusammengefasst sind. Zudem habe ich das Beispiel gestrichen, was nun vermutlich ebenfalls fehlt.
Alazon, danke für deine Anmerkungen. Ich glaube deine Kritik zielt vor allem auf die Allgemeinverständlichkeit. Ich finde das bei technischen Artikeln z.T. sehr schwierig, da der Text für Leser mit sehr unterschiedlichen Anforderungen gleichermaßen geeignet sein soll. Man kann, wie mir das vielleicht passiert ist, aber auch furchtbar leicht alle gleichermaßen unglücklich machen. :) --Cobalt pen (Diskussion) 12:46, 3. Jan. 2019 (CET)Beantworten
Die Behandlung von struktureller Ambiguität könnte vielleicht expliziter einbezogen werden, dann kriegt man auch ein Gefühl für Anwendung, und damit vielleicht sowas wie Allgemeinverständlichkeit?
Im Abschnitt "Konstruktion": Kann es sein, dass das "Wort" in der Informatik dem "Satz" bzw. "Konstituente" in der Linguistik entspricht? --Alazon (Diskussion) 13:15, 3. Jan. 2019 (CET)Beantworten
Siehe Wort (Theoretische Informatik) oder Formale_Sprache#Definition. Was auch immer man mit einer formalen Grammatik beschreibt, ist ein "Wort", egal wie lang. --Cobalt pen (Diskussion) 13:36, 3. Jan. 2019 (CET)Beantworten

Abschnitt "Abstrakte Syntaxbäume"

Bearbeiten

Abgesehen von Fragen zur Wortwahl (wie anderswo schon angemerkt: "Schlüsselwort", "Tiefenstruktur") frage ich mich, wie viel eigene Arbeit in dem Abschnitt steckt. Wie nah ist der Text an einer Theoriefindung?

Was ich hier beschreibe, ist m.E. ein absolut gängiges, kanonisches, lehrbuchmäßiges Vorgehen. Nein, keine Theoriefindung. "Konkrete" und "abstrakte" Grammatik lässt sich ebenfalls als Terminus im Zusammenhang mit abstrakten Syntaxbäumen nachweisen. Problem ist ein bischen, dass die Methode in der Literatur, die ich zur Hand habe, einfach nur angewendet, dort aber nicht erklärt wird. Hier wäre ein passender, lehrbuchmäßiger Beleg zu suchen. --Cobalt pen (Diskussion) 02:45, 6. Jan. 2019 (CET)Beantworten
Hmm, ich habe nach passenden Belegen gesucht. G. Kahn, Natural Semantics, 1987 [1] schildert das im Zusammenhang. -- Cobalt pen (Diskussion) 14:36, 6. Jan. 2019 (CET)Beantworten

Könnte man die Sache besser verständlich machen, wenn man als Thema direkter die Frage stellt, wie die Begriffe "Syntaxbaum" und "Datenstruktur" zueinander stehen? Das könnte heißen, dass man den Informationsgehalt verschiedener Arten von Bäumen problematisiert, und den Vergleich mit Datenstruktur während der Diskussion als Bezugspunkt kontinuierlich beibehält... Ich muss hier aber gerade ein bisschen raten, worum es gehen könnte... --Alazon (Diskussion) 18:42, 3. Jan. 2019 (CET)Beantworten

Ja, da fehlt etwas. Der Punkt ist, dass beim Übergang zum abstrakten Syntaxbaum konzeptionell ein Sprung von der Grammatik zu entsprechenden algebraischen Typen gemacht wird. (Siehe Kahn, S. 27) Ab der Stelle ist es dann auch mit grammatischen Begriffen vorbei. Gegenstand sind dann nicht mehr Worte oder Bäume, sondern Terme. Aus Nonterminalen werden Typen, aus (Namen für) Produktionen werden Funktionssymbole (wie add, mul). Der tiefere Grund dafür ist knapp gesagt, dass kontextfreie Grammatiken nicht gegen Schnitte abgeschlossen sind. Würde man statt der Terme Worte einsetzen, dann könnte man die Vorraussetzungen und Schlüsse nicht mehr (mechanisch) in der Abwendung der Regeln zusammenbringen. Bei Termen ist die Lage einfacher. Die Regeln lassen sich dann gut automatisieren. In den Regeln werden zwar Terme notiert, jedoch in grammatisches Gewand gekleidet. Z.B.   (S.28 Regel (6)) anstatt  , wie es die "abstrakte Syntax" (S. 27) eigentlich erfordern würde. Grund dafür ist die bessere Lesbarkeit der Regeln. -- Cobalt pen (Diskussion) 14:36, 6. Jan. 2019 (CET)Beantworten
An der Stelle kann ich dann nicht mehr mithalten, aber ich wünsch dir viel Glück beim Austüfteln einer allgemeinverständlichen Darstellung ;) --Alazon (Diskussion) 15:14, 6. Jan. 2019 (CET)Beantworten
Danke ;). Vielleicht mache ich auch einen Versuch in diese Richtung. Wert wäre es, da die Methode in der Literatur doch recht verbreitet ist. Das ist dann aber wirklich ein anderer Artikel: Natürliche Semantik. Bzgl. der abstrakten Syntaxbäume lasse ich es für den Augenblick besser so stehen. Ggfls. ist es aber günstig, den Abschnitt doch wieder zu einem eigenen Artikel herauszugliedern. Nochmals vielen Dank für deine Unterstützung, Alazon! --Cobalt pen (Diskussion) 15:40, 6. Jan. 2019 (CET)Beantworten