Spursprache

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 18. April 2020 um 15:14 Uhr durch imported>Aka(568) (Punkt hinter Abkürzung gesetzt, Kleinkram).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

In der Theoretischen Informatik versteht man unter einer Spursprache eine Formale Sprache, die parallel ausführbare Prozesse modelliert. Dabei werden die Buchstaben eines gegebenen Alphabets als elementare Operationen betrachtet, die sich in ihrer Ausführung untereinander beeinflussen (d. h., sie sind abhängig) oder unabhängig voneinander sein können. Ein Wort in dieser Sprache entspricht dann dem Hintereinanderausführen dieser Operationen, also einem Programm.

Zwei Wörter über diesem Alphabet (also zwei Programme) gelten dann als ununterscheidbar, wenn sie sich nur durch (evtl. mehrmaliges) Vertauschen nebeneinanderstehender, unabhängiger Buchstaben ineinander überführen lassen, also letztlich den gleichen Algorithmus beschreiben.

Definition

Sei ein Alphabet und eine binäre, symmetrische und reflexive Relation auf , Abhängigekeitsrelation genannt. Man sagt und sind unabhängig, falls .

Dann definiert man als die kleinste Äquivalenzrelation, für die gilt

für alle .

Die Äquivalenzklassen von unter sind als Mazurkiewicz spuren bekannt.

Da eine Kongruenzrelation unter der Konkatenation ist, bildet einen Monoid, der als notiert wird, den Monoid der Spuren.

Teilmengen von werden dann als Spursprachen bezeichnet.

Erkennbarkeit

Spezielle Spursprachen lassen sich, wie formale Sprachen, durch Automaten erkennen. Dabei finden Asynchrone Zelluläre Automaten Verwendung.