Warum sind reguläre Ausdrücke reguläre Ausdrücke?Warum werden reguläre Ausdrücke "reguläre" Ausdrücke genannt?
Antwort
Sie sind auf regular languages basiert.
Warum brauchte es 3 Antworten, um zu "normalen Sprachen" zu gelangen: P –
Ich fragte mich auch, ob ich gerade den gleichen Link schreiben sollte, +1 – RobV
+1. Die meisten aktuellen Implementierungen sind jedoch nicht mehr regelmäßig. –
Warum werden sie "reguläre Ausdrücke" genannt?
Reguläre Ausdrücke zurückverfolgen auf die Arbeit eines amerikanischen Mathematiker von der Name Stephen Kleene (einer der einflussreichsten Persönlichkeiten in der Entwicklung der theoretischen Computer Wissenschaft), die regelmäßig Ausdrücke als Notation entwickelt für beschreibend, was er "die Algebra der regelmäßigen Sätze" nannte. Seine Arbeit schließlich fand seinen Weg in einige frühe Bemühungen mit computational Search-Algorithmen, und von dort zu einigen der frühesten Text-Manipulations-Tools auf der Unix Plattform (einschließlich Ed und Grep). In der Kontext der Computersuchen, die "*" ist formal bekannt als "Kleene Stern."
Von here.
... und deshalb haben wir Kleenex (google it) ;-) – corlettk
... und warum sind die Sets regelmäßig? Ich frage mich, ob die Unfähigkeit, eine zirkuläre Lösung zu erkennen, irgendeine Art von Anpassung ist, um eine Gehirnverriegelung zu verhindern. Vielleicht würden diese Leute katatonisch werden, wenn ihre Gehirne nicht die Antwort "Es ist Schildkröten bis ganz nach unten" akzeptieren könnten. –
Eine kurze Geschichte der regular expressions
Weil sie verwendet, um in der Tat regelmäßig zu sein. Siehe http://en.wikipedia.org/wiki/Regular_language und http://en.wikipedia.org/wiki/Regular_expressions. Larry Wall befürwortet, dass moderne Regexen aufgerufen werden, weil sie nicht mehr so regelmäßig sind.
Was Kleene mit "regelmäßigen Ereignissen" meinte, war ein Ereignis, das von einer Reihe von Nervenzellen verarbeitet wurde - ein Ereignis der Wahrnehmung oder des Denkens. Kleees Artikel sagt nichts über Computer, Programmierung, das Zusammenpassen von Mustern im Text oder die Suche nach Text auf einem Computer aus, das Papier wurde nicht einmal auf oder in der Nähe eines Computers erstellt, wie das Typoskript anzeigen würde.
Wie Sie sich in einer ausgezeichneten Geschichte von regulären Ausdrücken, in der feinen Christopher M. Kelty Buch [Logical Instrumente: Regular Expressions, AI und Denken über das Denken] lesen kann (2011) 1
Reguläre Ausdrücke stammen aus Neurologie und Neurobiologie in den Arbeiten von McCulloch in den 1930er Jahren. Später, in den vierziger Jahren, war das, was McCulloch und Pitts erreichten, in Ingenieurwesen, Informatik und Mathematik viel einflussreicher als in Biologie oder Neurowissenschaften. Arbeiten, die McCullochs und Pitts logischen Kalkül von Nervennetzen als Ausgangspunkt nehmen, sind in Mathematik und Informatik außerordentlich reichhaltig gewesen. Formalisierung ganz, beginnend zumindest mit McCulloch und Pitts selbst, deren 1947 Papier "Wie wir Universalien kennen" und das 1959 Papier, das sie mit Lettvin und Maturana schrieben, "Was die Frösche Auge dem Frosch Gehirn erzählt" [Lettvin et al., 1959 Pitts und McCulloch, 1947] verzichten beide auf die formale Äquivalenz mit propositionalen Kalkülen oder der Turing-Maschine, zugunsten komplexer biologischer Modelle, die der logischen Manipulation weniger zugänglich sind.
McCullochs Interesse war zunächst herauszufinden, was er als "Psychon" oder Atomeinheit neuronaler Aktivität vermutete, was er zuerst in seiner physiologischen Forschung in den 1930er Jahren in Zusammenarbeit mit Yale Physiologe J.G. Dusser de Barenne.In den frühen 1940er Jahren wurde McCulloch Walter Pitts von Jerome Lettvin und damit Nicholas Rashevsky Mathematical Biology Gruppe an der Universität von Chicago vorgestellt, wo Walter Pitts aktiv an Modellen der neuralen Aktivität mit Rashevsky und Mathematiker Alston Householder gearbeitet hatte.
Die Zusammenarbeit zwischen den beiden war bestenfalls schief. McCulloch war in seinen Vierzigern, Pitts war 17; McCulloch hatte seine Karriere in Physiologie und Philosophie verbracht, Pitts war durch verschiedene und manchmal unzuverlässige Berichte ein mathematisches Wunderkind, das von seinem Haus in Detroit weggelaufen war und Bertrand Russell in einem Park in Chicago getroffen hatte [Smalheiser, 2000, Schlatter und Aizawa, 2008] . Zusammen jedoch gelang es ihnen, etwas zusammenzubringen, das in der Mitte zusammentraf, ein Papier, das die formale Äquivalenz zwischen einem plausiblen Modell neuronaler Aktivität und einem logischen Kalkül demonstrierte.
Ein Teil von McCulloch und Pitts Inspiration für ihr Papier war Turings Maschine. Wie Tara Abraham es ausdrückt: "Turing war in der Lage, den komplizierten Prozess der Berechnung" mechanisch "zu definieren, mit der Vorstellung eines einfachen Algorithmus, der so erschöpfend, streng und eindeutig ist, dass der Ausführende kein" mathematisches Wissen "benötigt Aufgabe. "[Abraham, 2003, 18] Diese Identifizierung der Berechnung mit einem automatischen Verfahren lieferte die Inspiration für McCulloch und Pitts, eine Menge von Nerven als etwas zu modellieren, das auch" in Abwesenheit von mathematischem Wissen "berechnen konnte.
Was McCulloch und Pitts im Nachhinein erreicht haben, war in Ingenieurwissenschaften, Informatik und Mathematik weitaus einflussreicher als in der Biologie oder den Neurowissenschaften.
Kleene, Stephen C. (1956), "Representation of events in nerve nets and finite automata"
berühmten 1959 Papier von JY Lettvin, HR Maturana, WS McCulloch und WH Pitts, What the Frog's Eye Tells the Frog's Brain
Im Jahr 1968 veröffentlichte Ken Thompson eine kurze „Programming Techniques“ Papier für die CACM, in dem er beschrieben die “Regular Expression Search Algorithm”
Nach dem Lesen der Links, ich weiß immer noch nicht, ob der Name aus regulären Mengen oder regulären Sprachen kam. – Nosredna
@Nick Pierpoint: "Reguläre Ausdrücke sind" regelmäßig ", weil sie durch eine endliche Menge von Symbolen definiert sind - eine formale Sprache." Das ist falsch. Reguläre Ausdrücke definieren problemlos unendliche Sprachen. Beispiel: a * => {"", "a", "aa", ...} –
@volodyako - Ich sehe, dass sie eine unendliche Sprache definieren, aber sind sie nicht durch eine endliche Anzahl von Symbolen definiert - dir gewährt könnte eine unendliche Anzahl dieser Symbole zusammensetzen. Ist das was du falsch meinst? Ich nehme an, ich meinte eine "endliche Menge verschiedener Symbole". –