Mir ist nicht klar, wie die Ausdrücke "unendliche" Sprache oder "endliche" Sprache in der Computertheorie verwendet werden.
Ich denke, die Wurzel des Problems ist, dass eine Sprache wie unendlich ist, in dem Sinne, dass sie eine unendliche (aber abzählbare) Anzahl von Zeichenfolgen erzeugen kann. Dennoch kann es von einem Automaten mit endlichen Zuständen erkannt werden.L={ab}∗
Ein weiteres Problem ist, dass die formale Sprachtheorie in Bezug auf die Verwendung des Begriffs "Sprache" ziemlich eigenartig ist.
Für alle Menschen auf dieser Welt, mit Ausnahme der Menschen in der formalen Sprachtheorie, ist eine Sprache ein System von Äußerungen, mit denen kommuniziert wird. Jede Äußerung hat also eine Form (ihre Syntax ) und eine Art Bedeutung (ihre Semantik ). Die formale Sprachtheorie, zumindest der Teil, der in der Informatik verwendet wird, befasst sich mit der Frage, wie die Syntax von Sprachen formal am besten definiert werden kann . Es geht um die Beziehung zwischen der Syntax von Sprachen (wie die Äußerungen aussehen) und Formalismen (Sprachen!) Wie regulären Ausdrücken, mit denen die Syntax von Sprachen definiert wird.
Daher wird in der formalen Sprachtheorie "eine Sprache" einfach als "eine Menge von Zeichenfolgen" definiert. Normalerweise werden den Zeichenfolgen in der Sprache keine Bedeutungen zugewiesen.
Gleichzeitig bilden die zur Beschreibung von Sprachen verwendeten Formalismen wie reguläre Ausdrücke auch Sprachen in diesem Sinne: Beispielsweise ist jeder reguläre Ausdruck eine Zeichenfolge, und daher ist die Menge regulärer Ausdrücke eine Sprache. Für diese Formalismen haben die Zeichenfolgen in der Sprache jedoch eine Bedeutung: Beispielsweise ist die Bedeutung jedes regulären Ausdrucks die Sprache, die sie kennzeichnet.
ab{ab}abab{ab}
{ab}∗∗LLLL; in all other cases, the result is an infinite language. For instance, {ab}∗ is the language {ϵ,ab,abab,ababab,abababab,…}. It is infinite, but using the operator ∗, we can describe it in a finite way, as {ab}∗.
Furthermore, we can use a regular expression to describe this language, namely (ab)∗. Like all regular expressions, this is a finite string, but like most regular expressions that contain the ∗ operator, it describes an infinite language.
Whenever a text on formal languages uses an expression such as (ab)∗ that denotes a language, ask yourself whether it is discussing the regular expression itself (e.g. how it is constructed, which language it denotes, etc.) or whether it merely uses the regular expression to refer to the language being denoted.
ab*
(Kleene-Stern) bedeutet, dass Sie null oder mehr Kombinationen der Zeichenfolge habenab
können. Dies schließt eine potenzielle unendliche Anzahl von Zeichenfolgen ein: {"", ab ^ 1, ab ^ 2, ab ^ 3, ... ., ab ^ n}. Sie können jedoch immer noch ein FSM erstellen, das diese Sprache erkennt, da es in der Realität keine Möglichkeit gibt, eine unendliche Zeichenfolge zu generieren, wenn alle Zeichenfolgen von einer Maschine verarbeitet werden, aber das macht die Sprache selbst nicht endlich. Die Unendlichkeit der Sprachen ist theoretisch.