{"id":3976,"date":"2019-04-08T12:33:17","date_gmt":"2019-04-08T10:33:17","guid":{"rendered":"https:\/\/dev.wi-lex.de\/index.php\/formale-sprache\/"},"modified":"2022-03-28T14:15:22","modified_gmt":"2022-03-28T12:15:22","slug":"formale-sprache","status":"publish","type":"page","link":"https:\/\/wi-lex.de\/lexikon\/technologische-und-methodische-grundlagen\/sprache\/formale-sprache\/","title":{"rendered":"Formale Sprache"},"content":{"rendered":"<p align=\"JUSTIFY\"><em>Eine formale Sprache stellt eine zumeist mit Mitteln der mathematischen Logik bzw. nat\u00fcrlichen Sprache festgelegte k\u00fcnstliche Sprache dar.<\/em><\/p>\n<p>Ansto\u00df zur Entwicklung und f\u00fcr den Einsatz formaler <span class=\"highlightedSearchTerm\">Sprache<\/span>n gaben Forschungen aus dem Bereich der Programmier<span class=\"highlightedSearchTerm\">sprache<\/span>n (Informatik) sowie der Modellierungs<span class=\"highlightedSearchTerm\">sprache<\/span>n zur Darstellung (Repr\u00e4sentation) von unternehmensrelevanter Information (Data and Knowledge Engineering, Content Management) und gesch\u00e4ftsbestimmenden Unternehmensabl\u00e4ufen (Gesch\u00e4ftsprozessmodellierung, Business Process Engineering). Die Folgen waren zum einen h\u00f6here (abstraktere) Programmier<span class=\"highlightedSearchTerm\">sprache<\/span>n und zum anderen semantische Modelle. Mit ihrer Hilfe sollen komplexe Systeme wie Anwendungsprogramme oder Unternehmensnetze effektiver und effizienter entwickelt werden k\u00f6nnen. Semantische Modelle gewinnen durch neuere Anwendungsbereiche wie Industrie 4.0, Internet of Things, und Cyberphysische Systeme vermehrt an Bedeutung. Sie dienen der Erstellung des sogenannten Digitalen Zwillings und bilden eine Referenzrepr\u00e4sentation ausf\u00fchrbarer Systeme.<\/p>\n<p>Eine formale <span class=\"highlightedSearchTerm\">Sprache<\/span> 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 <span class=\"highlightedSearchTerm\">Sprache<\/span> L wird also immer \u00fcber ein Alphabet A mit endlich oder unendlich vielen Zeichen bestimmt. Die <span class=\"highlightedSearchTerm\">Sprache<\/span> L ist somit eine Menge von Bausteinen oder <span class=\"highlightedSearchTerm\">Sprache<\/span>lementen (Ausdr\u00fccke, 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.<\/p>\n<p>Aus dem Alphabet A = {a,b} kann beispielsweise die <span class=\"highlightedSearchTerm\">Sprache<\/span> L = {a, b, ab, ba}, also eine endliche Menge von Ausdr\u00fccken, mit Hilfe der Regelmenge R = { S -&gt; a | b | K, K -&gt; ab | ba } gebildet werden. Dabei wird der Ausgangspunkt S der Ableitung als Startpunkt bezeichnet. K wird (ebenso wie S) als Nicht-Terminalsymbol bezeichnet, w\u00e4hrend die Bausteine a und b sowie die Bausteinketten ab und ba Terminalsymbole darstellen. S\u00e4mtliche Elemente von Terminalsymbolen m\u00fcssen dem Alphabet A angeh\u00f6ren. | ist das Trennsymbol und wird benutzt, sobald eine Regel mehrere Optionen zur Ableitung von Terminal- oder Non-Terminalsymbolen bietet.<\/p>\n<p>In einem formalen\u00a0<span class=\"link-\"><a title=\"Automatentheorie\" href=\"https:\/\/www.wi-lex.de\/index.php\/lexikon\/technologische-und-methodische-grundlagen\/informatik-grundlagen\/automatentheorie\/\">Grammatik<\/a><\/span>-Regelwerk sollten Terminalsymbole nicht durch andere ersetzt werden, Nicht-Terminalsymbole jedoch sehr wohl. Letztere dienen der Reduktion von Komplexit\u00e4t und sollen die Ableitung oder Produktion von <span class=\"highlightedSearchTerm\">Sprache<\/span>lementen vereinfachen sowie nachvollziehbar gestalten. SO trennt beispielsweise oben erw\u00e4hnte Regelmenge R die Ableitung zusammengesetzter und einfacher<span class=\"highlightedSearchTerm\">Sprache<\/span>lemente. Im Bereich der Programmier<span class=\"highlightedSearchTerm\">sprache<\/span>n haben sich die Backus-Naur-Form, regul\u00e4re Ausdr\u00fccke und Syntaxdiagramme zur textuellen bzw. visualisierten Darstellung von (Produktions-)Regeln durchgesetzt.<\/p>\n<p>Die grammatikalischen Regeln einer formalen <span class=\"highlightedSearchTerm\">Sprache<\/span> bestimmten ihre Syntax, d.i. das Bildungsgef\u00fcge von <span class=\"highlightedSearchTerm\">Sprache<\/span>lementen und deren Kombinationen, wie etwa zu S\u00e4tzen bei nat\u00fcrlicher <span class=\"highlightedSearchTerm\">Sprache<\/span>. Regeln erlauben somit in formalen Sprachsystemen die Ableitung des gesamten Sprachumfangs. Dieser wird zuweilen als M\u00e4chtigkeit einer formalen <span class=\"highlightedSearchTerm\">Sprache<\/span> bezeichnet. Die M\u00e4chtigkeit beispielsweise von Programmier<span class=\"highlightedSearchTerm\">sprache<\/span>n hat allerdings weder Einfluss auf die L\u00f6sbarkeit von technischen Implementierungsproblemen noch auf die Effizienz programmierter Algorithmen. Letztere h\u00e4ngt zum einen vom Gebrauch der <span class=\"highlightedSearchTerm\">Sprache<\/span>, und damit von den ProgrammiererInnen, und zum anderen von der Laufzeitumgebung bei der computerunterst\u00fctzten Anwendung ab.<\/p>\n<p>Typische Vertreter formaler <span class=\"highlightedSearchTerm\">Sprache<\/span>n sind Programmier<span class=\"highlightedSearchTerm\">sprache<\/span>n 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 <span class=\"highlightedSearchTerm\">Sprache<\/span>lemente besitzen Bedeutung. Es k\u00f6nnen jedoch auch syntaktisch korrekte Ausdr\u00fccke bzw. deren Kombinationen existieren, denen (bislang) keine Bedeutung zugeordnet wurde.<\/p>\n<p>W\u00e4hrend bei Programmier<span class=\"highlightedSearchTerm\">sprache<\/span>n h\u00e4ufig eine geringe Anzahl an Regeln und ein eingeschr\u00e4nkter Sprachumfang genutzt wird, treffen wir bei Modellierungs<span class=\"highlightedSearchTerm\">sprache<\/span>n wie BPMN (Business Process Model and Notation \u2013 <span class=\"link-external\"><a href=\"http:\/\/www.bpmn.org\/\" target=\"_blank\" rel=\"noopener\">www.bpmn.org<\/a><\/span>) eine Vielzahl an Regeln und Ableitungsm\u00f6glichkeiten von <span class=\"highlightedSearchTerm\">Sprache<\/span>lementen 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\u00fcber steht der assoziative Ansatz, der beliebige Relationen derartiger Betrachtungseinheiten zul\u00e4sst, um den jeweiligen Kontext mit erfassen zu k\u00f6nnen. Geschieht dies nicht, kann die sogenannte semantische L\u00fccke, die im Rahmen der Modellierung entsteht, vergr\u00f6\u00dfert werden. Damit wird jener Teil der Umgebung bezeichnet, der nicht im modellierten Ausschnitt derselben abgebildet ist.<\/p>\n<p>Als formale Spezifikation wird im Rahmen der Modellierung als auch Anwendungssystem-Entwicklung die integrative Repr\u00e4sentation von Aufgaben eines Modells oder eines Software-Systems bezeichnet, die mit Hilfe einer formalen <span class=\"highlightedSearchTerm\">Sprache<\/span> festgelegt wird. Im Rahmen der Anwendungsentwicklung (siehe <span class=\"link-\"><a class=\"internal-link\" title=\"Software-Engineering\" href=\"https:\/\/www.wi-lex.de\/index.php\/lexikon\/entwicklung-und-management-von-informationssystemen\/systementwicklung\/software-engineering\/\">Software-Engineering<\/a><\/span>) dient sie der Vorgabe m\u00f6glichst exakter und umfassender Strukturen und Abl\u00e4ufe f\u00fcr die technische Implementierung. Gegebenenfalls kann ein formaler Beweis gef\u00fchrt werden, dass die Implementierung mit der Spezifikation \u00fcbereinstimmt<\/p>\n<div class=\"wl_autorbeitrag\">\n<p align=\"JUSTIFY\">\n<\/div>\n<hr \/>\n<hr \/>\n<p>&nbsp;<\/p>\n<div id=\"accel-snackbar\" style=\"left: 50%; transform: translate(-50%, 0px); bottom: 50px;\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Eine formale Sprache stellt eine zumeist mit Mitteln der mathematischen Logik bzw. nat\u00fcrlichen Sprache festgelegte k\u00fcnstliche Sprache dar. Ansto\u00df zur Entwicklung und f\u00fcr den Einsatz formaler Sprachen gaben Forschungen aus dem Bereich der Programmiersprachen (Informatik) sowie der Modellierungssprachen zur Darstellung <a href=\"https:\/\/wi-lex.de\/lexikon\/technologische-und-methodische-grundlagen\/sprache\/formale-sprache\/\" class=\"read-more\">Read More &#8230;<\/a><\/p>\n","protected":false},"author":568,"featured_media":0,"parent":9490,"menu_order":3,"comment_status":"open","ping_status":"open","template":"","meta":{"footnotes":""},"class_list":["post-3976","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/pages\/3976","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/users\/568"}],"replies":[{"embeddable":true,"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/comments?post=3976"}],"version-history":[{"count":9,"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/pages\/3976\/revisions"}],"predecessor-version":[{"id":16127,"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/pages\/3976\/revisions\/16127"}],"up":[{"embeddable":true,"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/pages\/9490"}],"wp:attachment":[{"href":"https:\/\/wi-lex.de\/wp-json\/wp\/v2\/media?parent=3976"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}