Benutzerspezifische Werkzeuge
Sie sind hier: Startseite Lexikon Technologische und methodische Grundlagen Sprache Formale Sprache

Formale Sprache

Eine formale Sprache stellt eine zumeist mit Mitteln der mathematischen Logik bzw. natürlichen Sprache festgelegte künstliche Sprache dar.

Anstoß zur Entwicklung und für den Einsatz formaler Sprachen gaben Forschungen aus dem Bereich der Programmiersprachen (Informatik) sowie der Modellierungssprachen zur Darstellung (Repräsentation) von unternehmensrelevanter Information (Data and Knowledge Engineering, Content Management) und geschäftsbestimmenden Unternehmensabläufen (Geschäftsprozessmodellierung, Business Process Engineering). Die Folgen waren zum einen höhere (abstraktere) Programmiersprachen und zum anderen semantische Modelle. Mit ihrer Hilfe sollen komplexe Systeme wie Anwendungsprogramme oder Unternehmensnetze effektiver und effizienter entwickelt werden können.

Eine formale Sprache wird mit Hilfe von bedeutungstragenden Bausteinen wie Symbolen, Buchstaben oder Ziffern, dem sogenannten Alphabet, sowie Regeln, welche die Zusammensetzbarkeit von Bausteinen betreffen, gebildet. Eine formale Sprache L wird also immer über ein Alphabet A mit endlich oder unendlich vielen Zeichen bestimmt. Die Sprache L ist somit eine Menge von Bausteinen oder Sprachelementen (Ausdrücke, Zeichen) und Bausteinketten, deren Zusammensetzung durch Anwendung einer Menge von Regeln R bestimmt wird. Das Alphabet wird zusammen mit den Regeln als formale Grammatik bezeichnet.

Aus dem Alphabet A = {a,b} kann beispielsweise die Sprache L = {a, b, ab, ba}, also eine endliche Menge von Ausdrücken, mit Hilfe der Regelmenge R = { S -> a | b | K, K -> ab | ba } gebildet werden. Dabei wird der Ausgangspunkt S der Ableitung als Startpunkt bezeichnet. K wird (ebenso wie S) als Nicht-Terminalsymbol bezeichnet, während die Bausteine a und b sowie die Bausteinketten ab und ba Terminalsymbole darstellen. Sämtliche Elemente von Terminalsymbolen müssen dem Alphabet A angehören. | ist das Trennsymbol und wird benutzt, sobald eine Regel mehrere Optionen zur Ableitung von Terminal- oder Non-Terminalsymbolen bietet.

In einem formalen Grammatik-Regelwerk sollten Terminalsymbole nicht durch andere ersetzt werden, Nicht-Terminalsymbole jedoch sehr wohl. Letztere dienen der Reduktion von Komplexität und sollen die Ableitung oder Produktion von Sprachelementen vereinfachen sowie nachvollziehbar gestalten. SO trennt beispielsweise oben erwähnte Regelmenge R die Ableitung zusammengesetzter und einfacher Sprachelemente. Im Bereich der Programmiersprachen haben sich die Backus-Naur-Form, reguläre Ausdrücke und Syntaxdiagramme zur textuellen bzw. visualisierten Darstellung von (Produktions-)Regeln durchgesetzt.

Die grammatikalischen Regeln einer formalen Sprache bestimmten ihre Syntax, d.i. das Bildungsgefüge von Sprachelementen und deren Kombinationen, wie etwa zu Sätzen bei natürlicher Sprache. Regeln erlauben somit in formalen Sprachsystemen die Ableitung des gesamten Sprachumfangs. Dieser wird zuweilen als Mächtigkeit einer formalen Sprache bezeichnet. Die Mächtigkeit beispielsweise von Programmiersprachen hat allerdings weder Einfluss auf die Lösbarkeit von technischen Implementierungsproblemen noch auf die Effizienz programmierter Algorithmen. Letztere hängt zum einen vom Gebrauch der Sprache, und damit von den ProgrammiererInnen, und zum anderen von der Laufzeitumgebung bei der computerunterstützten Anwendung ab.

Typische Vertreter formaler Sprachen sind Programmiersprachen wie etwa C. Zum Zweck der Implementierung von Anwendungssystemen werden Syntax und Semantik (Bedeutung) festgelegt. Nur syntaktisch korrekte, d.h. im Sinne der Grammatik ableitbare Sprachelemente besitzen Bedeutung. Es können jedoch auch syntaktisch korrekte Ausdrücke bzw. deren Kombinationen existieren, denen (bislang) keine Bedeutung zugeordnet wurde.

Während bei Programmiersprachen häufig eine geringe Anzahl an Regeln und ein eingeschränkter Sprachumfang genutzt wird, treffen wir bei Modellierungssprachen wie BPMN (Business Process Model and Notation – www.bpmn.org) eine Vielzahl an Regeln und Ableitungsmöglichkeiten von Sprachelementen an. Im Rahmen der Modellierung kommt oft die Zerlegung von Sachverhalten (Dekomposition) zum Einsatz. Dabei wird davon ausgegangen, dass jede Aufgabe, Funktion oder Daten in hierarchisch untergeordnete Teile zerlegbar ist. Demgegenüber steht der assoziative Ansatz, der beliebige Relationen derartiger Betrachtungseinheiten zulässt, um den jeweiligen Kontext mit erfassen zu können. Geschieht dies nicht, kann die sogenannte semantische Lücke, die im Rahmen der Modellierung entsteht, vergrößert werden. Damit wird jener Teil der Umgebung bezeichnet, der nicht im modellierten Ausschnitt derselben abgebildet ist.

Als formale Spezifikation wird im Rahmen der Modellierung als auch Anwendungssystem-Entwicklung die integrative Repräsentation von Aufgaben eines Modells oder eines Software-Systems bezeichnet, die mit Hilfe einer formalen Sprache festgelegt wird. Im Rahmen der Anwendungsentwicklung (siehe Software-Engineering) dient sie der Vorgabe möglichst exakter und umfassender Strukturen und Abläufe für die technische Implementierung. Gegebenenfalls kann ein formaler Beweis geführt werden, dass die Implementierung mit der Spezifikation übereinstimmt.

Autor


 

Prof. Dr. Christian Stary, Johannes Kepler Universität Linz, Institut für Wirtschaftsinformatik - Communications Engineering, Kompetenzzentrum Wissensmanagement, Freistädterstr. 315, A - 4040 Linz

Autoreninfo


Zuletzt bearbeitet: 22.11.2016 12:19
Letzter Abruf: 22.08.2017 03:41
Artikelaktionen