Auf die Frage „Möchtest du Tee oder Kaffee?“ antwortest du „beides“. Der Gastgeber stutzt, der Logiker lächelt.
Ist „beides“ nach der Logik eine richtige Antwort? Und ist die Aussage „Wenn 2 > 4, dann liegt Prag in Brasilien“ wahr?
Antwort aufdecken
Ja und ja. In der Alltagssprache ist „oder“ oft ausschließend; in der Logik und im Code (||) ist es einschließend: Es gilt auch dann, wenn beide Teile gelten. Und in der Rede erwartet „wenn“ einen Zusammenhang von Ursache und Wirkung; in der Logik nicht: Die Voraussetzung 2 > 4 ist falsch, und eine Implikation mit falscher Voraussetzung ist wahr.
II
IdeeDrei Stellen, an denen ein Programmierer das wissen muss.
„Oder“: in der Rede oft ausschließend („Tee oder Kaffee?“), in der Logik und im Code einschließend.
„Wenn“: In der Rede erwarten wir einen Zusammenhang von Ursache und Wirkung, in der Logik nicht.
Vorrang: Die Sprache drückt ihn mit Betonung und Kommas aus, eine formale Sprache mit Klammern und Regeln. Deshalb bindet AND stärker als OR, und deshalb lohnt es sich, in Bedingungen Klammern zu setzen.
Die Logik beruhte immer auf der Frage, was ein Satz aussagt. Deshalb brachten sie in ihrer ganzen Geschichte Menschen voran, die sich mit der Sprache beschäftigten. Logik und Sprachwissenschaft entstanden zusammen, trennten sich und trafen sich im Computer wieder. Diese Seite ist ein Exkurs zum Kapitel Logik.
III
FormelZwei Arten von „oder“.
ODER UND ENTWEDER–ODER
oder auch beides: p ∨ q
entweder, oder: (p ∨ q) ∧ ¬(p ∧ q)
Die Logik hört keine Betonung.
I
STATION I · 3. JAHRHUNDERT V. CHR. · ATHEN, DIE STOA
Die Stoiker: Grammatiker, die die Aussage erfanden
die stoischen Grammatiker
I
FrageGrammatik oder Logik?
Wer entscheidet, dass „Regnet es?“ keine Aussage ist – der Grammatiker oder der Logiker?
Zum Nachdenken
Bei den Stoikern beide zugleich. Eine Aussage von einer Frage oder einem Befehl zu unterscheiden, ist ursprünglich die Aufgabe eines Grammatikers: Wer wissen will, wovon man sagen kann „es gilt“, muss zuerst die Arten von Sätzen sortieren.
II
MenschDieselben Menschen, zwei Wissenschaften.
Die Stoiker waren zugleich Grammatiker. Dieselben Menschen, die die Aussage und die Junktoren erfanden (Chrysipp und seine Schule, siehe das Kapitel Logik), arbeiteten auch die Lehre von den grammatischen Fällen und den Wortarten aus.
Eine Spur davon tragen wir im Deutschen bis heute mit uns. Das griechische ptōsis bedeutet „Fall“; die Römer übersetzten es als casus, und das Deutsche wiederum als Fall. Wenn du in der Schule vom ersten oder zweiten Fall sprichst, benutzt du ein stoisches Wort.
Die grammatischen Schriften der Stoiker sind nicht vollständig erhalten; ihre Lehre kennen wir vor allem von späteren Autoren, zum Beispiel von Diogenes Laertios (Leben und Meinungen berühmter Philosophen, Buch VII).
III
IdeeVon allen Arten von Sätzen nahm die Logik nur eine.
Frage, Befehl, Wunsch, Anrede, Aussage: Die Grammatik unterscheidet viele Arten von Sätzen. Die Logik wählte nur diejenigen, bei denen es sinnvoll ist zu fragen „gilt das?“, und nannte sie Aussagen.
FÜR NEUGIERIGE: SÄTZE SORTIEREN
Welche dieser Sätze sind Aussagen?
Prag ist die Hauptstadt Tschechiens.
Schließ das Fenster!
Wie spät ist es?
x > 3.
Diese Aussage ist falsch.
Lösung
Nur der erste Satz ist eine Aussage. Ein Befehl und eine Frage haben keinen Wahrheitswert. „x > 3“ ist eine Aussageform: Zur Aussage wird sie erst, wenn wir für x eine Zahl einsetzen – wie eine Bedingung im Code, die erst dann einen Wert hat, wenn die Variable einen hat. Und der letzte Satz ist das Lügner-Paradox: ein Aussagesatz und trotzdem keine Aussage.
IV
FormelEine Aussage ist, was einen Wahrheitswert hat.
AUSSAGE
„Es regnet.“↦ 0 oder 1
„Regnet es?“· „Möge es regnen!“↦ kein Wert
Die Grammatik sortierte die Arten von Sätzen, die Logik nahm sich eine davon.
II
STATION II · 13.–14. JAHRHUNDERT · PARIS, OXFORD
Das Mittelalter: Worauf zeigt ein Wort?
mittelalterliche Logiker und die Modisten
I
FrageDasselbe Wort, eine andere Bedeutung?
Im Satz „Ein Mensch läuft“ und im Satz „Der Mensch ist eine Art“ kommt dasselbe Wort vor. Zeigt es in beiden auf dasselbe?
Antwort aufdecken
Nein. Im ersten Satz zeigt „Mensch“ auf irgendeinen bestimmten laufenden Menschen. Im zweiten zeigt es auf den Begriff des Menschen: Kein einzelner Mensch ist eine Art. Würden wir das nicht unterscheiden, könnten wir aus „Sokrates ist ein Mensch“ und „Der Mensch ist eine Art“ den Unsinn „Sokrates ist eine Art“ herleiten.
II
MenschLogiker und Modisten an den mittelalterlichen Universitäten.
An den Universitäten von Paris und Oxford wurde im 13. und 14. Jahrhundert die Logik als Grundlage allen Studiums gelehrt. Mittelalterliche Logiker (zum Beispiel Petrus Hispanus im 13. Jahrhundert oder Wilhelm von Ockham im 14.) untersuchten, worauf genau sich ein Wort in einem bestimmten Satz bezieht. Sie nannten das suppositio, „Stehen für“: Ein Wort im Satz steht für bestimmte Dinge, und für welche, hängt vom Satz ab.
Neben ihnen wirkten die Modisten, Grammatiker, die nach allgemeinen „Weisen“ (modi) des Ausdrucks suchten, die allen Sprachen gemeinsam sind. Das bekannteste modistische Werk, die Grammatica speculativa des Thomas von Erfurt (Anfang des 14. Jahrhunderts), ist einer der ersten Versuche einer universalen Grammatik.
III
IdeeDrei Weisen, wie ein Wort für etwas stehen kann.
Personal (suppositio personalis): „Ein Mensch läuft.“ Das Wort steht für Einzelne.
Einfach (suppositio simplex): „Der Mensch ist eine Art.“ Das Wort steht für einen Begriff.
Material (suppositio materialis): „Mensch ist ein Substantiv.“ Das Wort steht für sich selbst.
Das ist ein Vorläufer der heutigen Unterscheidung von Variable und Wert. Ein Programmierer tut jeden Tag dasselbe:
// personal: ein konkreter Wert
mensch.laufen()
// einfach: ein Typ, ein Begriff
class Mensch { }
// material: das Wort selbst, eine Zeichenkette
"Mensch".length // 6
FÜR NEUGIERIGE: WAS MEINST DU?
Wie steht das Wort „Prag“ in diesen Sätzen für etwas: (a) Prag liegt an der Moldau. (b) Prag hat vier Buchstaben. (c) Prag ist ein Eigenname.
Lösung
(a) personal, es geht um die Stadt; (b) und (c) material, es geht um das Wort. In geschriebenen Texten lösen wir das heute mit Anführungszeichen: „Prag“ hat vier Buchstaben. Anführungszeichen sind genau das, was eine Zeichenkette von einer Variablen unterscheidet.
IV
FormelDasselbe Wort, eine andere Schreibweise.
SUPPOSITIO IN HEUTIGER SCHREIBWEISE
Ein Mensch läuft: ∃x (Mensch(x) ∧ läuft(x))
Der Mensch ist eine Art: Art(Mensch)
Es kommt nicht auf das Wort an, sondern darauf, wofür es im Satz steht.
III
STATION III · 1879 · JENA
Gottlob Frege: eine Begriffsschrift statt der Rede
I
FrageNiemand oder jemand?
„Alle Studenten können Python nicht.“ Heißt das, dass es niemand kann, oder dass es jemand nicht kann?
Zum Nachdenken
Der Satz lässt sich auf beide Arten lesen, und die Sprache selbst entscheidet nicht. Genau diese Art von Mehrdeutigkeit wollte Frege aus seiner Logik vertreiben.
II
MenschDer Mathematiker, der der Sprache misstraute.
Gottlob Frege (1848–1925), Professor für Mathematik in Jena, misstraute der Sprache. Er hielt die natürliche Sprache für ungenau und mehrdeutig und schuf deshalb eine künstliche Begriffsschrift – die erste formale Sprache mit den Quantoren „für alle“ und „es gibt“. Aus ihr geht die heutige Prädikatenlogik hervor.
BEGRIFFSSCHRIFT1879Gottlob Frege: Begriffsschrift. Weniger als hundert Seiten, die erste formale Sprache mit Quantoren.
Die Symbole ∀ und ∃ stammen nicht von Frege. Frege schrieb zweidimensional, mit Strichen und Haken; das umgedrehte E (∃) führte Giuseppe Peano ein, und das umgedrehte A (∀) setzte sich erst im 20. Jahrhundert durch.
III
IdeeQuantoren.
„Jeder“ und „einige“ sind keine Namen von Dingen, sondern Anweisungen, alle Dinge durchzugehen: ∀x „für jedes x gilt…“, ∃x „es gibt ein x, für das…“. Mit ihnen verschwindet die Mehrdeutigkeit aus der Frage:
niemand kann es: ∀x (S(x) ⇒ ¬P(x)) jemand kann es nicht: ¬∀x (S(x) ⇒ P(x))
FÜR NEUGIERIGE: WAS MEINST DU?
Es bedeute S(x) „x ist Student“ und P(x) „x kann Python“. Welche Formel bedeutet „Jeder Student kann Python“: ∀x(S(x) ∧ P(x)) oder ∀x(S(x) ⇒ P(x))? Und wie lautet ihre Verneinung?
Lösung
Die zweite; die erste behauptet, dass jeder auf der Welt Student ist. Die Verneinung: ∃x(S(x) ∧ ¬P(x)), das heißt, irgendein Student kann Python nicht. Die Regel: ∀ gehört zur Implikation, ∃ zur Konjunktion.
Im Code begegnest du Quantoren als every() und some():
Rudolf Carnap: die Sprache der Wissenschaft bereinigen
I
FrageWohlgeformt, aber worüber?
Der Satz „Das Nichts selbst nichtet“ ist grammatisch in Ordnung: Subjekt, Verb. Aber sagt er überhaupt etwas aus?
II
MenschDer Wiener Kreis und ein Professor in Prag.
Der Wiener Kreis, eine Gruppe von Philosophen, Mathematikern und Physikern im Wien der 1920er- und 1930er-Jahre, wollte die Sprache der Wissenschaft „bereinigen“: nur Sätze behalten, die entweder logisch wahr oder durch Erfahrung überprüfbar sind. Eines seiner führenden Mitglieder war Rudolf Carnap (1891–1970), der von 1931 bis 1935 an der Deutschen Universität in Prag lehrte.
1932 schrieb er den Aufsatz Überwindung der Metaphysik durch logische Analyse der Sprache. Berühmt ist er durch seinen Angriff auf Martin Heideggers Satz „Das Nichts selbst nichtet“ (aus der Vorlesung Was ist Metaphysik?, 1929): Nach Carnap sieht der Satz grammatisch richtig aus, verletzt aber die logische Syntax, weil er aus „nichts“ ein Substantiv macht.
LOGISCHE SYNTAX1934Rudolf Carnap: Logische Syntax der Sprache. Sprache als Kalkül: ein Alphabet, Regeln für die Bildung von Sätzen, Schlussregeln.
III
IdeeSprache als Kalkül.
Carnaps Logische Syntax der Sprache behandelte die Sprache als Kalkül: ein Alphabet (welche Zeichen wir schreiben dürfen), Formregeln (welche Zeichenketten wohlgeformt sind) und Schlussregeln (was woraus folgt). Genau so ist eine Programmiersprache aufgebaut: Zeichen, Grammatik, Auswertungsregeln.
Carnaps Analyse von Heideggers Satz lässt sich an einem gewöhnlichen Gespräch zeigen. „Was ist draußen?“ – „Nichts.“ Logisch bedeutet das, dass draußen nichts ist, kein x: ¬∃x draußen(x). Hier ist „nichts“ nicht der Name eines Dings, sondern die Verneinung eines Quantors. Wer es zum Subjekt macht, nichtet(Nichts), behandelt es wie ein Ding, und der Satz verliert seinen Sinn, obwohl die Grammatik stimmt.
Programmierer kennen das: Code, der durch den Parser kommt, aber an der Typprüfung scheitert. Syntaktisch korrekt und trotzdem Unsinn.
FÜR NEUGIERIGE: PROBIER ES AUS!
Schreibe den Satz „Niemand ist gekommen“ in der Logik auf. Warum darfst du aus ihm und aus dem Satz „Niemand ist mein Freund“ nicht schließen, dass „mein Freund nicht gekommen ist“?
Lösung
¬∃x gekommen(x). „Niemand“ ist nicht der Name einer Person, also kann man es nicht als x einsetzen. Der Schluss würde aus „niemand“ eine Person machen – derselbe Fehler, den Carnap im Satz über das Nichts fand.
IV
FormelNichts ist kein Name.
LOGISCHE SYNTAX
Draußen ist nichts: ¬∃x draußen(x)
Das Nichts nichtet: nichtet(Nichts) ✗
Grammatisch richtig heißt noch nicht logisch sinnvoll.
V
STATION V · 1956–1957 · MIT
Noam Chomsky: Grammatik als Maschine
I
FrageEndlich viele Regeln, unendlich viele Sätze.
Wie viele Regeln genügen, um alle richtigen deutschen Sätze zu erzeugen und keinen falschen?
II
MenschDer Linguist, dessen Grammatiken die Informatiker übernahmen.
Noam Chomsky (geboren 1928) kehrte die Richtung um. Frege und Carnap wollten die Sprache ersetzen oder bereinigen; Chomsky tat 1956–57 das Gegenteil und beschrieb mit formalen Grammatiken die natürliche Sprache, wobei er die Grammatiken nach ihrer Mächtigkeit ordnete (die Chomsky-Hierarchie). Die Informatiker übernahmen sie sofort: Reguläre Ausdrücke, die Grammatiken von Programmiersprachen und die Parser in Compilern bauen direkt darauf auf.
SYNTACTIC STRUCTURES1957Noam Chomsky: Syntactic Structures. Formale Grammatiken für die natürliche Sprache; die Grundlage der Compilertheorie.
Im selben Buch steht der berühmte Satz „Colorless green ideas sleep furiously“ (Farblose grüne Ideen schlafen wütend). Er ist grammatisch richtig und ergibt trotzdem keinen Sinn: dieselbe Grenze zwischen Form und Bedeutung, die Carnap sah.
III
IdeeEine Grammatik ist ein Programm, das Sätze erzeugt.
Eine formale Grammatik ist eine Menge von Ersetzungsregeln. Die Regel S → ( S )S | ε sagt: Ersetze das Symbol S entweder durch ein Klammerpaar mit einem weiteren S darin und dahinter oder durch nichts. Eine einzige Regel, und aus ihr gehen alle richtig geklammerten Ausdrücke hervor.
Typ
Grammatiken
Wo du ihnen begegnest
3
regulär
reguläre Ausdrücke, lexikalische Analyse
2
kontextfrei
die Syntax von Programmiersprachen, Parser, BNF-Notation
1
kontextsensitiv
die Sprache anbncn; die Prüfung, ob eine Variable deklariert wurde
0
uneingeschränkt
alles, was eine Turingmaschine berechnen kann
Ausgeglichene Klammern
tippe ein paar Klammern
Warum kann das ein regulärer Ausdruck nicht? Eine reguläre Grammatik merkt sich nur endlich viele Zustände, also kann sie keine beliebig tiefe Verschachtelung zählen. Deshalb lassen sich weder HTML noch Code zuverlässig mit regulären Ausdrücken parsen, und deshalb brauchen Compiler eine kontextfreie Grammatik.
Eine Grammatik ist ein Programm, das Sätze erzeugt.
VI
STATION VI · 1970 · LOS ANGELES
Richard Montague: Deutsch als formale Sprache
I
FrageDie Rede in Logik übersetzen.
Lässt sich jeder deutsche Satz so in Logik übersetzen, dass ein Computer erkennt, was aus ihm folgt?
II
MenschDer Logiker, der die Sprache beim Wort nahm.
Richard Montague (1930–1971), Logiker an der University of California in Los Angeles, vertrat in Aufsätzen von 1970 (English as a Formal Language, Universal Grammar) die Ansicht, dass es zwischen natürlichen und formalen Sprachen keinen wichtigen theoretischen Unterschied gibt. Das Englische lässt sich genauso präzise beschreiben wie die Sprache der Logik. Damit begründete er die formale Semantik, auf die sich die maschinelle Sprachverarbeitung heute stützt.
Wo Frege die Sprache verließ und Carnap sie bereinigen wollte, behauptete Montague, dass keine Bereinigung nötig sei: Es genüge, die Regeln zu finden, nach denen sich die Bedeutung eines Satzes aus den Bedeutungen seiner Teile zusammensetzt.
III
IdeeDie Bedeutung des Ganzen setzt sich aus den Bedeutungen der Teile zusammen.
Dieses Prinzip heißt Kompositionalität (oft wird es Frege zugeschrieben). Einen Satz in Logik zu übersetzen ist dann eine Frage des Zusammensetzens: Jedes Wort erhält sein Symbol, und die Struktur des Satzes bestimmt, wie man sie verbindet. Und gerade bei der Struktur passieren Fehler: Probier es aus.
Übersetz mich
klicke auf die Wörter
IV
FormelAuf die Klammern kommt es an.
KOMPOSITIONALITÄT
(p ∧ q) ⇒ r
≠ p ∧ (q ⇒ r)
Die Bedeutung des Ganzen setzt sich aus den Bedeutungen der Teile zusammen – und aus der Art, wie sie verbunden sind.
Was wir gesehen haben
Die Logik beruhte immer auf der Frage, was ein Satz aussagt. Deshalb brachten sie Menschen voran, die sich mit der Sprache beschäftigten.
IDie Stoiker: Dieselben Menschen erfanden die Aussage und die grammatischen Fälle.
IIDas Mittelalter: worauf sich ein Wort im Satz bezieht; ein Vorläufer der Unterscheidung von Variable und Wert.
IIIFrege: eine künstliche Begriffsschrift statt der mehrdeutigen Rede; Quantoren.
IVCarnap: Sprache als Kalkül; ein grammatisch richtiger Satz muss keinen Sinn ergeben.
VChomsky: formale Grammatiken und ihre Hierarchie; die Grundlage der Compiler.
VIMontague: natürliche Sprache als formale; maschinelle Sprachverarbeitung.
SPRACHE UND LOGIK
„Jeder Student kann Python.“
∀x (S(x) ⇒ P(x))
Logik und Sprachwissenschaft entstanden zusammen, trennten sich und trafen sich im Computer wieder.