http://google.ifanyi.com.cn/
Satzanalyse 分析
Die Aufgabe eines Ubersetzers oder Compilers ist normalerweise nicht die
Erzeugung oder Herleitung, sondern die Erkennung eines Satzes und seiner
Struktur. 分析
重写器或编译器的任务通常不是产生或派生,但一个集合及其子集合的标识结构。
Dies bedeutet, dass die Schritte der Erzeugung beim Lesen eines Satzes
als Schritte der Erkennung nachvollzogen werden miissen. Dies ist im
allgemeinen eine komplizierte, und in vielen Fiillen sogar eine unmogliche
Aufgabe. Ihre Komplexitat hangt unmittelbar von der Art der Produktionen ab,
die die Syntax bestimmen. 这意味着在阅读一个句子时,句子的产生步骤因为认识的步骤被误解了。这是在
一个复杂的,在许多情况下甚至是不可能的任务。其复杂性直接取决于生产类型,
它们决定了语法。
Zahlreiche Erkennungs-Algorithmen fUr verschiedene
Klassen von Sprachen unterschiedlicher struktureller Komplexitat sind bekannL
Ihre Effektivitat hangt direkt von ihrer Machtigkeit ab: je allgemeiner sie
verwendbar sind, umso weniger Effizienz kann erwartet werden. 针对不同的应用,有多种检测算法
已知具有不同结构复杂性的语言类它们的有效性直接取决于它们的力量:它们越普遍如果是可用的,那么预期的效率就越低。
Unser Ziel hier
ist jedoch lediglich die Entwicklung einer Methodik, relativ einfach Sprachen zu
erkennen, dies jedoch mit einer Effizienz, wie sie von der Praxis gefordert wird.
Die Zeit, die gebraucht wird, um einen Satz zu erkennen, darf demnach
hochstens proportional zu seiner Lange anwachsen. 我们的目标在这里然而,它仅仅是一种方法论的发展,相对简单的语言来实现
然而,正如实践所要求的那样,这可以从效率上看出来。因此,识别句子所需的时间可能是:生长最多与它的长度成比例。
Anstatt einen moglichst
allgemeinen Erkennungs-Algorithmus, genannt Parser, zu tinden, gehen wir in
umgekehrter Richtung vor: Wir postulieren einen einfachen Algorithmus und
bestimmen danach die Klasse der Sprachen, die er verarbeiten kann.
而不是
一般的识别算法,称为解析器,对于tind,我们进入反向:我们假设一个简单的算法和然后确定他可以处理的语言类别。
Eine erste Folge dieser grundlegenden Forderung ist, dass jeder Schritt in der
Zerlegung eines Satzes lediglich durch den gegenwarugen Zustand der Analyse
und ein einziges, nachstes zu lesendes Symbol bestimmt werden darf. Ferner
wird gefordert, dass kein Schritt spater riickgangig gemacht werden darf (one
symbollookahead, no backtracking). 这一基本要求的第一个结果是仅按分析的冲突状态对句子进行细分并且可以确定随后要读取的单个符号。进一步
要求任何步骤都不应具有风险(一个Symbolookahead,无回溯)。
Die grundlegende Methodik, die nachfolgend beschrieben wird, beruht auf
dem sogenannten top-down Prinzip. Es ist zweckmassig, die Struktur eines Satzes
als Baum darzustellen. Zuoberst steht das Startsymbol, an seiner Basis der zu
erkennende Satz. Zur Illustration moge folgendes Beispiel dienen:以下描述的基本方法基于:
所谓自上而下原则。句子的结构是有用的就像一棵树。顶部是开始符号,基于识别句子。以下示例可用于说明:
Beim Lesen (von links nach rechts) durchliiuft der Parser die folgenden
Schritte, wobei von S ausgehend eine Struktur aufgebaut wird, die an der Basis dem zu lesenden Satz entspricht Der Baum wachst also von oben nach unten;
daher der Ausdruck top-down.当读取(从左到右)时,解析器通过以下步骤步骤,其中从S构造一个结构,该结构在底部对应于要读取的集合,因此树从上到下生长;因此出现了自上而下的术语。
Umgekehrt wird beim sogenannten botto~up Prizip vorgegangen. Anstatt
“spekulativ” vom Startsymbol auszugehen und eine Folge zu produzieren, die
dem eingelesenen Text entspricht, wird der eingelesene Text reduziert, bis zuletzt
der ganze Text in das Startsymbol zuriickgefUhrt ist. In der graphischen
Darste11ung wachst der Strukturbaum von unten nach oben; daher die
Bezeichnung bottom-up.相反,使用所谓的botto~up原理。反而“推测性”从开始符号开始,产生一个与读取的文本相对应,读取的文本减少到最后一个整个文本将返回到开始符号。在图形中结构树自下而上生长;因此自下而上命名。
所谓的底向上原则的情况正好相反。
不是从开始符号“推测性地”开始并生成与已读入的文本相对应的序列,而是减少已读文本直到整个文本最终返回到开始符号。
在图形表示中,结构树自下而上生长;因此名称 自下而上。
第4章语法图
Die Darstellung einer Syntax in BNF ist nur eine von verschiedenen Moglichkeiten.用BNF呈现语法只是几种可能性之一。
Eine andere, in vieler Hinsicht vorteilhafte Art der Darstellung beruht auf der Verwendung von Diagrammen oder Graphen.另一种,在许多方面,有利的表示类型是基于图表或图形的使用。
Der Hauptvorteil beruht dabei auf der besseren Ueberschaubarkeit.
Wir schlagen nachfolgend eine Art der Graphen vor, die den Ablauf einer Satzerkennung im top-down Verfahren unmittelbar veranschaulicht Wir geben ein einfaches Rezept, wie eine durch BNF definierte Syntax konsequent in entsprechende Graphen iibersetzt werden kann.它的主要优点是易于移动。下面我们提出了一种图,直接说明自上而下过程中的句子识别过程。我们给出了一个简单的方法,说明如何将BNF定义的语法一致地翻译成相应的图。
Der umgekehrte Vorgang ist natiirlich ebenso leicht moglich.
Wir nehmen an, dass die BNF bereits in dem Sinne normalisiert ist, dass jedes nicht-terminale Symbol durch eine einzige Produktionsfolge definiert ist.相反,在全局范围内也同样容易做到。我们假设BNF已经标准化,即每个非终端符号由单个生产序列定义。
Die Uebersetzung ist dann durch nachfolgende Regeln bestimmt.然后根据以下规则确定翻译。
图2
Die Graphen sind also eine Alternative zur BNF.
Sie sind in Bezug auf Ubersichtlichkeit der BNF vorzuziehen und vermitteln eine unmittelbarere Vorstellung tiber den Prozess der Satzerkennung.
因此,这些图是BNF的替代品。它们比BNF的超可见性更好,并提供了更直接的速率识别过程。
Es fragt sich daher, wie sich die beiden postulierten Regeln im graphischen Bild aussern. In der Tat wird ihr Sinn dabei erst recht deutlich.因此,问题在于图形中的两个假定规则如何不同。事实上,它们的含义变得相当清楚。
Regel 1 besagt niimlich, dass bei jeder
Verzweigung im Graphen der zu beschreitende Ast eindeutig aus der Kenntnis des nachsten Symbols hervorgehen muss.
规则1并不意味着,对于图中的每个分支,要行走的分支必须明确来自于对以下符号的了解。
Dies impliziert, dass keine zwei Aste mit dem gleichen Symbol beginnen durfen.
这意味着任何两个分支都不应以相同的符号开头。
Regel 2 verlangt, dass ein Graph, der ohne Einlesen eines Symbols traversiert werden kann, als “durchsichtig” betrachtet wird.
规则2要求可以在不读取符号的情况下遍历的图形被认为是“透明的”。
Es muss eindeutig entscheidbar sein, ob das nachste Symbol zu dem Graphen oder bereits zu seinem Nachfolger geh5rt.必须明确下一个符号是属于图形还是已经属于其后续符号。
Die Mengen der Anfangssymbole und der m5glicherweise nachfolgenden Symbole mussen daher disjunkt sein.因此,必须断开初始符号和可能的后续符号的数量。
Es ist nun sehr einfach zu verfizieren, ob eine Menge von Graphen diesen beiden Regeln genugt.现在很容易形式化许多图是否喜欢这两个规则。
Es ist dabei durchaus nicht notwendig, auf die Syntax in BNF zuruckzugreifen. 1m Gegenteil erweist sich die ubersichtliche graphische Darstellung als besonders geeignet.不需要访问BNF中的语法。相反,出色的图形表示被证明特别适合。
Vorsorglicherweise bestimmen wir zuerst wiederum fUr jedes nicht-terminale Symbol A seine zugeh5rigen Mengen first(A) und follow(A).我们首先为每个非终端符号确定其各自的数量
Wir nennen ein System von Graphen, das die beiden einschrankenden Regeln erfUllt, ein deterministisches Graphensystem.我们称满足这两条令人恶心的规则的图形系统为确定性图形系统。