dieser nicht fehler finden algorithmus enthält einfach einen gravierenden welcher zu ist
TRANSCRIPT
![Page 1: Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist](https://reader036.vdocuments.pub/reader036/viewer/2022062512/55204d7f49795902118d15d3/html5/thumbnails/1.jpg)
Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu
ist.
![Page 2: Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist](https://reader036.vdocuments.pub/reader036/viewer/2022062512/55204d7f49795902118d15d3/html5/thumbnails/2.jpg)
Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu
ist.
Ein falscher Satz.
![Page 3: Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist](https://reader036.vdocuments.pub/reader036/viewer/2022062512/55204d7f49795902118d15d3/html5/thumbnails/3.jpg)
Inhalt
• WasMöglichkeit, eine Programmiersprache mit Regeln zu beschreiben
• Lernziel• einfache Sprache mit Regeln beschreiben• Programme einer Sprache erzeugen• erkennen, ob Programme korrekt sind
![Page 4: Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist](https://reader036.vdocuments.pub/reader036/viewer/2022062512/55204d7f49795902118d15d3/html5/thumbnails/4.jpg)
Ablauf
• Ablauf der Stunde:• Vortrag 25 min• Übungen 60 min• Abschluss 5 min
![Page 5: Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist](https://reader036.vdocuments.pub/reader036/viewer/2022062512/55204d7f49795902118d15d3/html5/thumbnails/5.jpg)
Gliederung des Vortrags
1. Terminologie: Symbol, Alphabet, Wort, Sprache
2. Definition einer Sprache3. Regelbasierte Definition einer
Sprache4. Extended Backus Naur Form5. Beispiel
![Page 6: Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist](https://reader036.vdocuments.pub/reader036/viewer/2022062512/55204d7f49795902118d15d3/html5/thumbnails/6.jpg)
1. Terminologie
• Symbol• Eine Sprache besteht aus einer Menge
von Symbolen.
• Beispiele:», ¤, ¿15, -, +, 45, %, =if, then, begin, a, >
![Page 7: Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist](https://reader036.vdocuments.pub/reader036/viewer/2022062512/55204d7f49795902118d15d3/html5/thumbnails/7.jpg)
1. Terminologie (2)
• Alphabet• Ein Alphabet ist die Menge aller Symbole,
die zu einer Sprache gehören.
• Beispiele:
Alphabet1 = {¤, ¿, ‡, &}
Alphabet2 = {0,1,2,3,...+,-,=,...}Alphabet3 = {if, then, begin, a, >,...}
![Page 8: Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist](https://reader036.vdocuments.pub/reader036/viewer/2022062512/55204d7f49795902118d15d3/html5/thumbnails/8.jpg)
1. Terminologie (3)
• Wort• Ein Wort ist ein Element der Sprache und
besteht aus einem oder mehreren Symbolen des Alphabets.
• Beispiele:¤ ‡ & ¿ » # * ‡ + ¿ 15 * 3 = 45if a > b then c := a + b
![Page 9: Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist](https://reader036.vdocuments.pub/reader036/viewer/2022062512/55204d7f49795902118d15d3/html5/thumbnails/9.jpg)
1. Terminologie (4)
• Sprache• Eine Sprache besteht aus einer Menge
von Worten.
• Wenn M die Menge aller möglichen Worte w ist, die man auf Basis eines gegebenen Alphabets bilden kann,dann ist jede Teilmenge von M eine Sprache.
![Page 10: Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist](https://reader036.vdocuments.pub/reader036/viewer/2022062512/55204d7f49795902118d15d3/html5/thumbnails/10.jpg)
abc
cba
aac
aab
bbb
baa aba aaaaca
cabbcabacacb
bbc ccc
bbc
cac
abb
cca
bab bba
bcc
cbb
cbc
acc
bcbcaa
![Page 11: Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist](https://reader036.vdocuments.pub/reader036/viewer/2022062512/55204d7f49795902118d15d3/html5/thumbnails/11.jpg)
2. Definition einer Sprache
• Eine Sprache kann definiert werden durch:• Aufzählung aller Worte der Sprache
(Bsp. Duden)• Regeln, wie man alle Worte der Sprache
bilden kann• Regeln, wie man entscheidet, ob ein
Wort zu einer Sprache gehört
![Page 12: Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist](https://reader036.vdocuments.pub/reader036/viewer/2022062512/55204d7f49795902118d15d3/html5/thumbnails/12.jpg)
3. Regeln zur Bildung von Worten
• Welche Symbole gibt es?• Welche Symbole können
hintereinander auftreten? Wo?• Welche Symbole können optional
auftreten? Wo?• Welche Symbole können alternativ
zueinander auftreten? Wo?
![Page 13: Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist](https://reader036.vdocuments.pub/reader036/viewer/2022062512/55204d7f49795902118d15d3/html5/thumbnails/13.jpg)
4. Extended Backus Naur Form (EBNF)
• Methode, um Regeln zu definieren, die eine Programmiersprache beschreiben
• benannt nach J. Backus und P. Naur• vier Elemente:
• Produktion• Terminalsymbol• Nichtterminalsymbol• Metazeichen
![Page 14: Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist](https://reader036.vdocuments.pub/reader036/viewer/2022062512/55204d7f49795902118d15d3/html5/thumbnails/14.jpg)
4. Elemente der EBNF (1)
• Produktion• ist eine Regel• „Eine Gleichung besteht aus zwei
mathematischen Ausdrücken rechts und links von einem Gleichheitszeichen.“
• Gleichung ::= math_Ausdruck '=' math_Ausdruck
![Page 15: Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist](https://reader036.vdocuments.pub/reader036/viewer/2022062512/55204d7f49795902118d15d3/html5/thumbnails/15.jpg)
4. Elemente der EBNF (2)
• Terminalsymbol• ist ein Symbol• wird in Hochkommata geschrieben '‡'• Term_Symbol ::= 'if' | 'then' | 'begin'
• Nichtterminalsymbol• es gibt für jedes Nichtterminalsymbol eine
Produktion, wie es gebildet wird• Addition ::= math_ausdruck '+'
math_ausdruck
![Page 16: Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist](https://reader036.vdocuments.pub/reader036/viewer/2022062512/55204d7f49795902118d15d3/html5/thumbnails/16.jpg)
4. Elemente der EBNF (3)
• Metazeichen• beschreiben Beziehungen zwischen
Nichtterminal- und Terminalsymbolen
• ::= Definition: trennt die linke und die rechte Seite einer Produktion A ::= ¤ &Gleichheitszeichen ::= '='
![Page 17: Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist](https://reader036.vdocuments.pub/reader036/viewer/2022062512/55204d7f49795902118d15d3/html5/thumbnails/17.jpg)
4. Elemente der EBNF (4)
• Metazeichen (Fortsetzung)• | Alternative:
‡ | ¤ bedeutet, dass an dieser Stelle entweder ‡ oder ¤ stehtRechenzeichen ::= '+' | '-' | '*' | '/'
• [] Option: [‡] bedeutet, dass ‡ optional istganze_zahl ::= ['+'|'-'] natürliche_zahl
![Page 18: Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist](https://reader036.vdocuments.pub/reader036/viewer/2022062512/55204d7f49795902118d15d3/html5/thumbnails/18.jpg)
4. Elemente der EBNF (5)
• Metazeichen (Fortsetzung)• {} Iteration:
¤ {&} bedeutet, dass & beliebig oft stehen kann: ¤, ¤ &, ¤ & &, ¤ & & &zahl ::= ziffer {ziffer}
• () Gruppierung: zur logischen Gruppierung von Teilausdrückenregel1 ::= ['-'] zahl | zifferregel2 ::= ['-'] (zahl | ziffer)
![Page 19: Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist](https://reader036.vdocuments.pub/reader036/viewer/2022062512/55204d7f49795902118d15d3/html5/thumbnails/19.jpg)
4. Elemente der EBNF (6)
• Metazeichen (Fortsetzung)• ... Bereich:
'0' ... '9' bedeutet, dass alle Zeichen zw. 0 und 9 vorkommen könnenziffer ::= '0' ... '9'buchstabe ::= 'a' ... 'z' | 'A' ... 'Z'
![Page 20: Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist](https://reader036.vdocuments.pub/reader036/viewer/2022062512/55204d7f49795902118d15d3/html5/thumbnails/20.jpg)
5. Beispiel
• Ziel: Definition von ganzen Zahlen und Ziel: Kommazahlen basierend auf EBNF
• Zahlen bestehen aus Ziffern und einem oder keinem Komma
• vor dem Komma steht entweder eine Null oder eine Ziffernfolge, die nicht mit einer Null anfängt
• hinter dem Komma können beliebig viele Nullen hintereinander stehen
• vor einer Zahl kann ein Vorzeichen stehen
![Page 21: Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist](https://reader036.vdocuments.pub/reader036/viewer/2022062512/55204d7f49795902118d15d3/html5/thumbnails/21.jpg)
5. Beispiel (2)
• Ziffer ::= '0'...'9'• ZifferOhneNull ::= '1' ... '9'• Komma ::= ','• ganzZahl ::= Ziffer |
ZifferOhneNull {Ziffer}• nachKommaZahl::= Ziffer {Ziffer}• kommaZahl ::= ganzZahl Komma
nachKommaZahl• zahl ::= ['+'|'-'] (kommaZahl |
ganzZahl)
![Page 22: Dieser nicht Fehler finden Algorithmus enthält einfach einen gravierenden welcher zu ist](https://reader036.vdocuments.pub/reader036/viewer/2022062512/55204d7f49795902118d15d3/html5/thumbnails/22.jpg)
• Dieser Fehler enthält einfach einen gravierenden Algorithmus, welcher nicht zu finden ist.
• Dieser Algorithmus enthält einen gravierenden Fehler, welcher nicht einfach zu finden ist.