faecher:informatik:oberstufe:automaten:formale_sprachen:mailadressen:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:automaten:formale_sprachen:mailadressen:start [06.10.2020 13:19] – [Experimente mit JFlap] sbelfaecher:informatik:oberstufe:automaten:formale_sprachen:mailadressen:start [17.01.2025 07:52] (aktuell) Marco Kuemmel
Zeile 10: Zeile 10:
 Das Anmeldeformular besitzt bereits eine Komponente zur Validierung von E-Mail-Adressen. Diese Komponente prüft, ob die eingegebene Zeichenkette überhaupt eine Mailadresse sein kann, manchmal auch, ob die E-Mail-Adresse tatsächlich vergeben ist. Das Anmeldeformular besitzt bereits eine Komponente zur Validierung von E-Mail-Adressen. Diese Komponente prüft, ob die eingegebene Zeichenkette überhaupt eine Mailadresse sein kann, manchmal auch, ob die E-Mail-Adresse tatsächlich vergeben ist.
  
 +----
 +{{:aufgabe.png?nolink  |}}
 === (A1) === === (A1) ===
  
-**(a)** Führe selbst Experimente mit dem  [[http://sphinx.mythic-beasts.com/~pdw/cgi-bin/emailvalidate|RFC822 email address validator]] aus. Versuche auf diese Weise herauszufinden, wie E-Mail-Adressen (nicht) aufgebaut werden dürfen.+**(a)** Führe selbst Experimente mit dem [[https://regexr.com/2rhq7|RFC822 email address validator]] aus. Versuche auf diese Weise herauszufinden, wie E-Mail-Adressen (nicht) aufgebaut werden dürfen.
  
 **(b)** E-Mail-Adressen werden nach der RFC 822 überprüft. Recherchiere, was es mit der RFC 822 auf sich hat.  **(b)** E-Mail-Adressen werden nach der RFC 822 überprüft. Recherchiere, was es mit der RFC 822 auf sich hat. 
Zeile 76: Zeile 78:
   * Eine Subdomain und eine Topleveldomain besteht nur aus b´s.   * Eine Subdomain und eine Topleveldomain besteht nur aus b´s.
  
 +----
 +{{:aufgabe.png?nolink  |}}
 === (A2) === === (A2) ===
  
 Welche der folgenden Zeichenketten stellen vereinfachte E-Mail-Adressen dar? Welche der folgenden Zeichenketten stellen vereinfachte E-Mail-Adressen dar?
  
-    b@b.bbb +    bbbbb@bbbbb.bbb.bb 
-    @b.b.bb +    @bbbbbbbb.b 
-    bbb@bbbb +    bbb@bbbb.b.bbbb 
-    bb.b@b.bb+    bb.b.bb.b@b.bb.bbbb.b
  
 Warum ist es in einigen Fällen schwierig, das zu entscheiden?  Warum ist es in einigen Fällen schwierig, das zu entscheiden? 
Zeile 122: Zeile 126:
 {{:faecher:informatik:oberstufe:automaten:formale_sprachen:mailadressen:buchstabe.png|}} {{:faecher:informatik:oberstufe:automaten:formale_sprachen:mailadressen:buchstabe.png|}}
  
 +----
 +{{:aufgabe.png?nolink  |}}
 === (A3) === === (A3) ===
  
Zeile 135: Zeile 141:
 Gesucht ist eine Grammatik G=(V,Σ,P,S), die unsere Mailadressen als formale Sprache beschreibt.  Gesucht ist eine Grammatik G=(V,Σ,P,S), die unsere Mailadressen als formale Sprache beschreibt. 
  
-**(A4)** Gib das Alphabet ''Σ'' unserer Sprache an. + 
 +---- 
 +{{:aufgabe.png?nolink  |}} 
 +=== (A4) === 
 + 
 +Gib das Alphabet ''Σ'' unserer Sprache an. 
  
 ==== Herleitung ==== ==== Herleitung ====
Zeile 147: Zeile 158:
 | Domain:          | {{:faecher:informatik:oberstufe:automaten:formale_sprachen:mailadressen:domain.png}}          | ''(3) D -> KT''                     | | Domain:          | {{:faecher:informatik:oberstufe:automaten:formale_sprachen:mailadressen:domain.png}}          | ''(3) D -> KT''                     |
 | Subdomains:      | {{:faecher:informatik:oberstufe:automaten:formale_sprachen:mailadressen:subdomains.png}}      | ''(4) K -> N.''\\ ''(5) K -> N.K''  | | Subdomains:      | {{:faecher:informatik:oberstufe:automaten:formale_sprachen:mailadressen:subdomains.png}}      | ''(4) K -> N.''\\ ''(5) K -> N.K''  |
-| Topleveldomain:  | {{:faecher:informatik:oberstufe:automaten:formale_sprachen:mailadressen:topleveldomain.png}}  | ''(6) -> N''                      |+| Topleveldomain:  | {{:faecher:informatik:oberstufe:automaten:formale_sprachen:mailadressen:topleveldomain.png}}  | ''(6) -> N''                      |
 | Name:            | {{:faecher:informatik:oberstufe:automaten:formale_sprachen:mailadressen:name.png}}            | ''(7) N -> B''\\ ''(8) N -> BN''    | | Name:            | {{:faecher:informatik:oberstufe:automaten:formale_sprachen:mailadressen:name.png}}            | ''(7) N -> B''\\ ''(8) N -> BN''    |
 | Buchstabe:       | {{:faecher:informatik:oberstufe:automaten:formale_sprachen:mailadressen:buchstabe.png}}       | ''(9) B -> b''                      | | Buchstabe:       | {{:faecher:informatik:oberstufe:automaten:formale_sprachen:mailadressen:buchstabe.png}}       | ''(9) B -> b''                      |
Zeile 155: Zeile 166:
 ==== Anwendung: Ableiten von Worten anhand der Grammatik ==== ==== Anwendung: Ableiten von Worten anhand der Grammatik ====
  
-Die Ableitung der E-Mail-Adresse ''bb@b.bbb.bb'' kann man nun wie folgt mit Ersetzungsvorgängen beschreiben((Leerzeichen zur übersichtlicheren Darstellung)):+Die Ableitung der E-Mail-Adresse ''bb@b.bbb.bb'' kann man nun wie folgt mit Ersetzungsvorgängen beschreiben((Leerzeichen zur übersichtlicheren Darstellung)). Diese Darstellung nennt man auch **Satzformliste**:
 <code> <code>
 S ->                                                   # (1) S ->                                                   # (1)
Zeile 182: Zeile 193:
 </code> </code>
  
 +----
 +{{:aufgabe.png?nolink  |}}
 === (A5) === === (A5) ===
 +
  
   * Leite die Mailadresse ''b@bb.b'' anhand unserer Grammatik ab.   * Leite die Mailadresse ''b@bb.b'' anhand unserer Grammatik ab.
   * Mache dir klar, dass man ''b.b@bbb.b''und ''b@bb'' nicht ableiten kann, weshalb das kein gültigen Worte unserer Sprache sind.   * Mache dir klar, dass man ''b.b@bbb.b''und ''b@bb'' nicht ableiten kann, weshalb das kein gültigen Worte unserer Sprache sind.
  
-==== Experimente mit JFlap ====+==== Experimente mit FLACI oder JFLAP ==== 
 +<tabs> 
 +  * [[#flaci|Flaci]] 
 +  * [[#jflap|JFLAP]]
  
-Mit Hilfe von JFlap ([[http://www.jflap.org/jflaptmp/july27-18/JFLAP7.1.jar|Download]]) kann man auch Grammatiken experimentell testen. Am Beispiel unserer Grammatik für vereinfachte E-Mail-Adressen soll dies hier gezeigt werden. +<pane id="flaci">
  
  
 +Man kann im Online-Tool FLACI (https://flaci.com/kfgedit) das Werkzeug für "Kontextfreie Grammatiken" verwenden, um unsere Mailgrammatik zu simulieren und Experimente damit durchführen zu können.
  
-=== (A5) ===+{{ :faecher:informatik:oberstufe:automaten:formale_sprachen:mailadressen:flaci_grammar.png?600 |}} 
 + 
 + 
 + 
 +</pane> 
 +<pane id="jflap"> 
 +Mit Hilfe von JFlap ([[https://www.jflap.org/jflaptmp/july27-18/JFLAP7.1.jar|Download]]) kann man auch Grammatiken experimentell testen. Am Beispiel unserer Grammatik für vereinfachte E-Mail-Adressen soll dies hier gezeigt werden.  
 + 
 +---- 
 +{{:aufgabe.png?nolink  |}} 
 +=== (A6) ===
  
 Starte JFlap, wähle den Menupunkt ''[Grammar]'' aus und gib die Regeln unserer Grammatik im Grammatik-Editor ein.Variablen dürfen nur aus einem Buchstaben bestehen, Leerzeichen werden von JFLAP beachtet - wo keine sein sollen, dürfen auch keine sein. Starte JFlap, wähle den Menupunkt ''[Grammar]'' aus und gib die Regeln unserer Grammatik im Grammatik-Editor ein.Variablen dürfen nur aus einem Buchstaben bestehen, Leerzeichen werden von JFLAP beachtet - wo keine sein sollen, dürfen auch keine sein.
  
-{{:faecher:informatik:oberstufe:automaten:formale_sprachen:mailadressen:auswahl_171.png|}}+{{  :faecher:informatik:oberstufe:automaten:formale_sprachen:mailadressen:auswahl_171.png  |}} 
 + 
 +Zum Testen wähle der Reihe nach die Menupunkte ''[Input]'' und ''[Brute Force Parse]'' aus. Gib in das [Input]-Feld eine zu analysierende Zeichenfolge ein, z.B. b@bbb.bb. Mit der Schaltfläche ''[Start]'' wird jetzt die Suche nach einer Ableitung des eingegebenen Wortes mit Hilfe der vorgegebenen Ersetzungsregeln gestartet. Diese Suche kann eine Weile dauern. Wenn sie erfolgreich beendet wird, dann erhält man folgende Rückmeldung. 
 + 
 +{{  :faecher:informatik:oberstufe:automaten:formale_sprachen:mailadressen:auswahl_172.png  |}} 
 + 
 +Mit der Schaltfläche ''[Step]'' kann man  die Ableitung Schritt für Schritt nachvollziehen. Es stehen zwei Darstellungen zur Auswahl - als Baum und als Ableitungstabelle, die Auswahl wird im Dropdown Menü vorgenommen. 
 + 
 +|{{:faecher:informatik:oberstufe:automaten:formale_sprachen:mailadressen:auswahl_174.png|}}|{{:faecher:informatik:oberstufe:automaten:formale_sprachen:mailadressen:auswahl_175.png|}}| 
 + 
 +  * Teste die Ableitung weiterer Mailadressen. 
 +  * Die Topleveldomain soll nur aus den beiden Buchstaben ''bb'' bestehen dürfen. Ändere eine der Regeln entsprechend ab und teste.  
 +</pane> 
 +</tabs> 
 + 
 + 
 +---- 
 +{{:aufgabe.png?nolink  |}} 
 +=== (A7) === 
 + 
 +Entwerfe einen endlichen Automaten, der gültige Mailadressen akzeptiert und simuliere ihn in JFLAP. 
 + 
 +---- 
 +{{:aufgabe.png?nolink  |}} 
 +=== (A8) === 
 + 
 +Die Mengen 
 + 
 +  Σ = {x,y} 
 +  P = {S -> AB, A -> BA | y, B -> AB | x} 
 +  V = {S,A,B} // Startvariable S
  
 +legen eine Grammatik G fest. Schreibe die Grammatik in ihrer "Kurzschreibweise" auf.
  
 +Finde alle Wörter der Sprache, indem du die möglichen Ableitungen anhand der Regeln betrachtest. Überprüfe deine Vermutung mit JFLAP.
  
-----  +----     
 Dieser Abschnitt ist auf Basis der Seite https://www.inf-schule.de/sprachen/sprachenundautomaten/sprachbeschreibung/grammatiken/fallstudie_email in inf-schule.de entstanden. Lizenz: [[https://creativecommons.org/licenses/by-sa/4.0/|CC-BY-SA]] Dieser Abschnitt ist auf Basis der Seite https://www.inf-schule.de/sprachen/sprachenundautomaten/sprachbeschreibung/grammatiken/fallstudie_email in inf-schule.de entstanden. Lizenz: [[https://creativecommons.org/licenses/by-sa/4.0/|CC-BY-SA]]
  
  • faecher/informatik/oberstufe/automaten/formale_sprachen/mailadressen/start.1601990358.txt.gz
  • Zuletzt geändert: 06.10.2020 13:19
  • von sbel