Checkmark on Circle.png

Formale Sprache

Aus KGS-Wiki
Version vom 1. September 2023, 06:41 Uhr von Sn (Diskussion | Beiträge) (Beispiel zu Grammatiken eingefügt)

Eine formale Sprache ist eine Sprache, die nicht der Kommunikation dient, sondern zur Definition von Korrektheit in Informatiksystemen. Mit formalen Sprachen wird z.B. die Syntax von Programmiersprachen festgelegt, damit diese von einem Compiler überprüft werden können. Auch technische Spezifikationen wie der Aufbau von E-Mail-Adressen oder URLs werden mit formalen Sprachen festgelegt.

Grundbegriffe

Die Elemente einer formalen Sprache nennt man Wörter und deren Bestandteile Symbole. Alle Symbole einer Sprache bilden deren Alphabet.

Symbole können alles Mögliche sein: Buchstaben, Zahlen, Zeichen oder auch Zeichenketten.

Beispiele

  • Eine Sprache, die römische Zahlen beschreibt, hat das Alphabet und enthält Wörter wie oder .
  • Eine Sprache, die chemische Verbindungen beschreibt, könnte das Alphabet haben und enthält Wörter wie oder .

Grammatik

Nicht alle Wörter, die aus den Symbolen eines Alphabets gebildet werden können, sind auch in der Sprache enhalten. Zum Beispiel können aus dem Alphabet für römische Zahlen auch Wörter wie gebildet werden, die keine gültigen römischen Zahlen darstellen. Denn zu einer Sprache gehören auch Regeln zur Bildung der Wörter. Diese Regeln fasst man zu einer Grammatik zusammen.

Beispiel

<RoemischeZahl> ::= <Tausender> <Hunderter> <Zehner> <Einer>
<Tausender>     ::= M <Tausender> | ε
<Hunderter>     ::= C | CC | CCC | CD | D | DC | DCC | DCCC | CM | ε
<Zehner>        ::= X | XX | XXX | XL | L | LX | LXX | LXXX | XC | ε
<Einer>         ::= I | II | III | IV | V | VI | VII | VIII | IX | ε

Diese Regeln bedeuten Folgendes:

  1. Eine <RoemischeZahl> besteht aus einer <Tausender>-, einer <Hunderter>-, einer <Zehner>- und einer <Einer>-Stelle in dieser Reihenfolge.
  2. Die <Tausender>-Stelle ist entweder leer – dafür steht das εoder besteht aus einem M, gefolgt von noch mehr <Tausender>n, die aber auch leer sein dürfen. Der senkrechte Strich | trennt zwei Alternativen.
  3. Die <Hunderter>-Stelle ist entweder ein C, ein CC, ... ein CM oder leer.
  4. Die <Zehner> und die <Einer> funktionieren genau wie die Hunderter.
🕳
Lückenhaft

In diesem Artikel oder Abschnitt fehlen noch folgende wichtige Informationen:

Ableitung von Wörtern fehlt noch

Hilf dem KGS-Wiki, indem du sie recherchierst und einfügst.