Aufgabe Vorschlag C2 - Aufgabe 3 · Abitur Hessen Informatik LK 2022

Thema: Grammatiken, reguläre Ausdrücke und Syntaxdiagramme · Aus der Prüfung LK (2022)

Aufgabenstellung

Auszeichnungssprache YAML

YAML ist eine Auszeichnungssprache zur Darstellung strukturierter Daten in einfach lesbarer Textform. Die Sprache zeichnet sich dadurch aus, dass sie jede Datenstruktur allein durch Verwendung von Konstanten, Listen und assoziativen Listen darstellen kann. Elemente von Listen und assoziativen Listen werden durch Zeilenumbrüche (<CR> <LF>) getrennt dargestellt. Dabei besitzen diese Elemente in aufeinanderfolgenden Zeilen die gleiche Einrückung. Elemente einer Liste beginnen mit dem Zeichen „-“ und Elemente einer assoziativen Liste bestehen aus einem Schlüssel:Wert-Paar. Listen und assoziative Listen enthalten jeweils nur gleichartige Listenelemente (Material 1).

Alle Elemente einer Liste und alle Werte einer assoziativen Liste können entweder Konstanten oder auch wieder Listen oder assoziative Listen sein. In den beiden letztgenannten Fällen spricht man dann von geschachtelten Listen. Die Schachtelung wird durch einen Zeilenumbruch und eine Einrückung mit Leerzeichen (<SP>) dargestellt (Material 1).

Material 1

Beispiel von Listen und assoziativen Listen in YAML

Liste

assoziative Liste

- Apfel

- Banane

- Karotte

Name: Frank

Alter: 19

Sport: Fußball

geschachtelte Liste

geschachtelte assoziative Liste

assoziative Liste mit einer Liste als Wert

- HTML

-

- Überschrift H1

- Absatz p

- CSS

- JavaScript

Datum: 2021 05 17

Name: Lisa

Adresse:

Straße: Allee 17

PLZ: 64646

Ort: Heppenheim

Datum: 2021 05 17

Name: Frank

Interessen:

- Sport

- Politik

Alter: 19

Material 2

YAML-Texte

a

b

Datum: 2021 04 05

RechnungNr: 7266

Produkt:

-

Beschreibung: Basketball

Preis: 86

Menge: 4

-

Beschreibung: Hantel

Preis: 48

Menge: 2

-

Name: Martin Schmidt

Anstellung: Entwickler

Fachkompetenz:

- Python

- Java

- Pascal

-

Name: Tabitha Bitumen

Anstellung: Entwicklerin

Fachkompetenzen:

- Lisp

- Fortran

- Erlang

Material 3

Text in einer Konfigurationsdatei

packages:

yum:

mod_ssl: false

files:

servercrt:

mod: 000400

owner: admin

- group root

script:

- cd tools

- tox ecover

Material 4

Unvollständige Grammatik G zur Sprache YAML

T={<CR>,<LF>,<SP>,<INDENT>,<DEDENT>,-,:, true, false, null,0,…,9,a,…,z,A,…,Z}T = \{<\text{CR}>, <\text{LF}>, <\text{SP}>, <\text{INDENT}>, <\text{DEDENT}>, \text{-,:, true, false, null}, 0, \dots, 9, a, \dots, z, A, \dots, Z\}

N={YAML,Liste,Element,AssoziativeListe,Schlu¨ssel,Wert,Konstante,Zeichenkette,Zeichenketten,Zahl}N = \{\text{YAML}, \text{Liste}, \text{Element}, \text{AssoziativeListe}, \text{Schlüssel}, \text{Wert}, \text{Konstante}, \text{Zeichenkette}, \text{Zeichenketten}, \text{Zahl}\}

Startsymbol=YAML\text{Startsymbol} = \text{YAML}

$\begin{aligned}

P = \{ & \text{YAML} & \to & \ \text{Liste} \mid \text{AssoziativeListe}, \\

& \text{Liste} & \to & \ \text{Element } <\text{CR}> <\text{LF}> \mid \text{Element } <\text{CR}> <\text{LF}> \text{Liste}, \\

& \text{AssoziativeListe} & \to & \ \text{Schlüssel}: <\text{SP}> \text{Wert } <\text{CR}> <\text{LF}> \mid \\

& & & \ \text{Schlüssel}: <\text{SP}> \text{Wert } <\text{CR}> <\text{LF}> \text{AssoziativeListe}, \\

& \text{Element} & \to & \ \text{- } <\text{SP}> \text{Wert}, \\

& \text{Schlüssel} & \to & \ \text{Zeichenkette}, \\

& \text{Wert} & \to & \ \text{Konstante} \mid <\text{CR}> <\text{LF}> <\text{INDENT}> \text{Liste } <\text{DEDENT}> \mid \\

& & & \ <\text{CR}> <\text{LF}> <\text{INDENT}> \text{AssoziativeListe } <\text{DEDENT}>, \\

& \text{Konstante} & \to & \ \text{Zeichenketten} \mid \text{Zahl} \mid \text{true} \mid \text{false} \mid \text{null}, \\

& \text{Zeichenketten} & \to & \ \text{Zeichenkette} \mid \text{Zeichenkette } <\text{SP}> \text{Zeichenketten}, \\

& \dots \\

\} & & &

\end{aligned}$

Hinweis: Die Terminale <INDENT> und <DEDENT> stehen für eine Ein- bzw. Ausrückung.

In Material 4 ist ein Ausschnitt einer Grammatik G der Sprache YAML dargestellt.

3.1

Überführen Sie die Produktionen für YAML, AssoziativeListe und Wert in Syntaxdiagramme. (5 BE)

3.2

Zeichenkette ist eine nicht leere Folge von Buchstaben und Ziffern. Zahl ist eine ganze Zahl, die führende Nullen haben kann und der optional ein „-“ vorangestellt werden kann.

Geben Sie Produktionen für Zeichenkette und Zahl an. (3 BE)

3.3

Ordnen Sie die Grammatik G in die Chomsky-Hierarchie ein. (2 BE)

Aufgabenstellung: Aufgabe Vorschlag C2 - Aufgabe 3 · Abitur Hessen Informatik LK 2022

Lösung

Nach den offiziellen Korrekturhinweisen

3.1 Überführen Sie die Produktionen für YAML, AssoziativeListe und Wert in Syntaxdiagramme.

Lösung:

3.2 Geben Sie Produktionen für Zeichenkette und Zahl an.

Lösung: ```pseudocode Zeichenkette → Buchstabe | Ziffer | Buchstabe Zeichenkette | Ziffer Zeichenkette, Zahl → Ziffern | - Ziffern, Buchstabe → a | ... | z | A | ... | Z, Ziffern → Ziffer | Ziffer Ziffern, Ziffer → 0 | 1 | ... | 9 ```

3.3 Begründung der Einordnung von G in die Chomsky-Hierarchie.

Lösung: Die Grammatik ist kontextfrei (Typ 2), da die linken Seiten aller Produktionen aus jeweils genau einem Nichtterminal bestehen und die rechten Seiten Folgen von Terminalen und Nichtterminalen sind. Sie ist nicht regulär (Typ 3), da beispielsweise die rechte Seite von Liste → Element <CR> <LF> nicht von der Form a oder aN (bzw. Na) ist.

Die ausführliche Erklärung Schritt für Schritt (mit KI) gibt es mit Premium. Premium

Löse sie direkt hier: automatische Korrektur, Hinweise und Lösung Schritt für Schritt.

‹ Aufgabe Vorschlag C2 - Aufgabe 1 · LK 2022 · Aufgabe Vorschlag B3 - Aufgabe 1 · GK 2021 ›

Mehr Aufgaben zu Grammatiken, reguläre Ausdrücke und Syntaxdiagramme