Anwendungen formaler Sprachen
Es gibt viele Anwendungsgebiete formaler Sprachen. Ein typisches Beispiel ist die Validierung von Eingaben in Formularen, sowohl in Webanwendungen als auch in Desktopanwendungen.
Eingabevalidierung in Formularen
Im Modul Datenbanken haben wir einen Webshop betrachtet. Möchte ein:e Kund:in eine Bestellung aufgeben, muss sie in der Regel eine gültige E-Mail Adresse angeben. Wenn die Eingabe nicht gültig ist, fehlt z. B. das @-Zeichen, dann wird ein Hinweis angezeigt und das Formular kann nicht abgeschickt werden.
Die Menge der gültigen E-Mail Adressen ist eine Sprache, die durch eine Grammatik beschrieben werden kann. Wir können auch einen regulären Ausdruck angeben, der die Menge der gültigen E-Mail Adressen beschreibt.
Wie Sprachen mittels Grammatiken und regulären Ausdrücken beschrieben werden, das wollen wir uns in diesem Modul genauer ansehen.
Compiler und Interpreter
Compiler sind Programme, die Programme einer Quellsprache in zugehörige Programme einer Zielsprache überführen.
Mithilfe Compilern kann gewährleistet werden, dass das gleiche Programm auf verschiedenen Computern geöffnet und ausgeführt werden kann, die sich in Betriebssystem und Architekturdetails unterscheiden.
Python ist eine Hochsprache. Die Sprachelemente sind leicht von einem Menschen zu lesen und zu verstehen und müssen zunächst übersetzt werden, bevor sie von Betriebssystem und Prozessor verarbeitet werden können. Compiler sind derartige Übersetzungsprogramme.
Es besteht das Interesse, ein und dasselbe Programm auf verschiedenen Zielmaschinen ausführen zu können, die sich in ihrem Betriebssystem oder in Architektur-Details unterscheiden. Für diese unterschiedlichen Systeme bzw. Architekturen werden verschiedene Compiler eingesetzt.
Bei Interpretern wird ein vorliegendes Programm nicht vollständig übersetzt, sondern „portionsweise" analysiert. Interpreter haben die Aufgabe, einen vorliegenden Programmcode von Anfang bis Ende zu analysieren, also zu „interpretieren".