zurück

Erfand George Boole die Binärrechnung, oder haben wir deren Erfinder vergessen?

Boolesche Algebra?

Oder Leibniz' Algebra und Boolesche Logik?


von Gerd Heinz


Wenn wir auf dem PC zwei Dezimalzahlen addieren, dann werden diese im ersten Schritt in Binärzahlen konvertiert. Damit wird gerechnet. Dann wird das Ergebnis zurück in eine Dezimalzahl gewandelt und angezeigt.

Wir alle sollten diese Binärzahlen kennen, oft auch als Dualzahlen bezeichnet. Unsere digitale Welt besteht aus diesen Zahlen. Man denke an binary digit: abgekürzt Bit, oder an Byte (8 Bit), Kilobyte (103 Byte), Megabyte (106 Byte), Gigabyte (109 Byte) oder Terabyte (1012 Byte). Den Begriff der Binärzahlen führte offenbar Leibniz ein.

Jeder Computer und jedes Handy nutzt sie, jeder Taschenrechner und jede Excel-Tabelle rechnet intern damit, jedes Video und jeder Sound besteht aus binären Daten. Über USB- und durch das Ethernet flitzen sie, auf Festplatten oder DVDs werden sie gespeichert. In unserer digitalen Welt gibt es nicht viel anderes, auch wenn selbst Informatik-Ingenieure (wenn überhaupt) nur äußerst selten mit Binärwerten zu tun haben.

Es stehen pro Stelle nur die Werte 0 und 1 zur Verfügung. Dafür gibt es viele Stellen: Der erste Mikrocontroller, Intel i4004 hatte 1971 gerade einmal 4 Bit. In einem Schritt konnten damit zwei (Hexa- oder Dezimal-) Ziffern bearbeitet werden. Dann folgten 8 Bit, 16 Bit und 32 Bit Mikrocontroller. Heute haben wir meist 64 Bit Controller in unseren Smartphones oder PCs.

64 Bit sind 264 oder 18·1018. In einem 64 Bit Wert können wir jede natürliche Zahl bis zu ebendieser Größe speichern. Und der erste Mikrocontroller hatte deshalb vier Bit, weil sich damit genau eine Dezimalziffer (oder auch eine Hexadezimalziffer) darstellen ließ, 24 = 16. Das sind die Ziffern 0...9, a, b, c, d, e, f.

Die Rechenregeln, so meint man in der deutschsprachige Wikipedia, stammen vom englisch/irischen Mathematiker, Logiker und Philosoph Georg Boole (1815 bis 1864). Der allgemein in Programmiersprachen und Compilern verwendete Datentyp für binäre Zahldarstellungen ist - wen wundert es - der Typ "boolean".

Jeder, der schon einmal eine digitale Schaltung mit NAND, NOR, XOR, Halbaddern, Volladdern, Registern oder Flipflops aufgebaut hat, der kennt die sogenannte "Boolesche Algebra".

Nun wissen wir aus anderen Bereichen von Wissenschaft und Technik, daß nicht immer der Erfinder geehrt wird, sondern oft auch Plagiateure. Oder Personen, die sich um die Verbreitung einer Erkenntnis verdient machten. Oder Menschen, die ein Gespür für die Vermarktung von Wissen hatten.

Über ein Jahrhundert vor Georg Boole lebte Gottfried Wilhelm Leibniz (1646 bis 1716). Er formulierte die noch heute üblichen Schreibweisen der Infinitesimalrechnung und Differentialrechnung, trug zur Algebra (Leibnitz-Matrix) bei, baute die ersten Rechenmaschinen mit Staffelwalzen und erste Chiffriermaschinen. Und er korrespondierte in sechs Sprachen. Er galt als der letzte Universalgelehrte.

Da ich mein Leben lang immer wieder auch digitale Schaltungen entwickelt habe, erschrak ich um die Jahrtausendwende herum über eine Seite eines Vortrages, die Leibniz vor der französischen Akademie 1703 gehalten haben soll.

Ich entdeckte diese Seite damals wohl eher zufällig irgendwo im Internet. Leider ist sie bis 2023 weder in der englischsprachigen [2] , noch in der deutschsprachigen [1] Wikipedia zu finden. Dafür findet Google sie in zig anderssprachigen Wikipedien unter diesem Link [5].

Mich verblüffte die Genialität der Notation, die mir als Praktiker so geläufig war, als wären mir diese Zeilen gerade gestern von einem Kollegen überreicht worden. Und mich verblüffte die einzigartige Eleganz und Kompaktheit der Darstellung. Wofür wir als Studenten ein Semester lang Vorlesungen hatten, das drückt er auf einer Seite aus (Memoires de l'Academie Royale, 1703, Seite 86):

Beim Versuch, die Beispiele nachzurechnen, fiel mir auf, daß ich es seit dem Aufkommen der Taschenrechner gegen Ende der 1970er Jahre verlernt hatte, schriftlich zu multiplizieren und zu dividieren: Vielleicht versuchen auch Sie einmal, ihre Kenntnisse aufzufrischen und die Beispiele nachzurechnen?

Wir wollen versuchen, Leibniz' Rechnungen nachzuvollziehen.

Bei der Addition scheint es keinerlei Interpretationsspielraum zu geben, 0+0=0; 1+0=1; 0+1=1; 1+1=0 ü=1; den Übertrag ü addiert er in gewohnter Weise auf die nächste Stelle, er merkt sich den Übertrag mit einem kleinen Punkt.

Bei der Subtraktion sind Interpretationen möglich. Von allen modernen Computern wissen wir, daß sie das Zweierkomplement nutzen, um eine Subtraktion auf eine Addition zurückzuführen. Dabei wird die zu subtrahierende Ziffer negiert, dann wird eins addiert. Alle beteiligten Zahlen nutzen dabei die erste Ziffer (MSB) nicht, sie stellt das Vorzeichen dar.
Diese großartige Idee hatte Leibniz offenbar noch nicht, sie wurde erst von Konrad Zuse mit seiner Zuse-Z3 Rechenmaschine am 12. Mai 1941 der Öffentlichkeit vorgestellt.
Betrachtet man die Rechnung von Leibniz, so subtrahiert er nach folgender Regel: 1-0=1; 1-1=0; 0-0=0; 0-1=1 ü=-1; er rechnet mit einem negativen Übertrag. Mit Zuses Zweierkomplement geht das einfacher. Aus der Subtraktion entsteht dabei eine Addition ohne negativen Übertrag.

Multiplikation: Die Schreibweise ist nicht ganz die, die meiner Generation beigebracht wurde, dennoch liegen die Dinge klar auf der Hand, er multipliziert Stelle für Stelle und addiert die um die Stelle verschobenen Teile wie gewohnt. Wie bei der Addition notiert er den Übertrag mit einem Punkt.

Die Division ist nur mit Übung nachvollziehbar. Entweder hatte Leibniz einen speziellen Stil, oder es haben sich auch hier Druckfehler eingeschlichen. Deshalb hier die Division, die man für die Aufgabe 15/3 = 5 erwartet hätte:

	1111 / 11 = 101
	11			denn 1 · 11 = 11
	---
	 01
	  0			denn 0 · 11 = 00
	  --
	  11
	  11			denn 1 · 11 = 11
	  ---
	  000

Mit verkürzter Notation der Zwischensummen ZS:

	11
	 00		(00 entfällt)
	  11
	----
	1111		(ZS)

Weil die Null-Produkte nicht beachtet werden müssen, könnte man in Leibnizscher Kurzform auch gleich schreiben:

	1111 / 11 = 101
	1111		(ZS)
	----
	   0

Vergleicht man die Rechnung mit dem Original, so wäre wahrscheinlich, daß Leibniz die Zwischensummen direkt in der zweiten Reihe antrug. Allerdings ist seine 11 in der letzten Zeile unklar. Es kann sich nur um die 3 handeln, die in der ersten Zeile fehlt. Möglicherweise hat hier der Schriftsetzer nicht aufgepaßt.

Als Hard- und Softwareentwickler war mir nach dem Studium dieser Seite klar, daß Leibniz schon damals erste, binär arbeitende Rechner hätte bauen können, hätte er die dazu nötigen Schaltkreise gehabt.

George Booles Darstellungen erscheinen mir dagegen vergleichsweise umständlich theoretisch überzogen. Das verrät ein Blick in sein 150 Jahre später (1848) erschienenes Hauptwerk "The Calculus of Logic" [3], siehe auch [12]. In der Tat ist in seinem Hauptwerk keinerlei Bezug auf Leibniz zu finden.

Es ist zwar ein toller Titel, aber die Leibnizschen Erkenntnisse zur binären Zahldarstellung und zur binären Arithmetik fehlen leider vollständig. Leibniz wird nicht einmal erwähnt. Stellt sich die Frage, ob Boole schon die Leibnizschen Binärzahlen in der Form der "Table des Nombres" kannte.

Und noch schlimmer: Boole erwähnt noch nicht einmal die Möglichkeit, mit Binärzahlen zu rechnen: Zu addieren, zu substrahieren, zu multiplizieren und zu dividieren! Sein Werk gilt ausschließlich der logischen Verknüpfung von Variablen.

Warum ist das zu erwähnen? Noch heute ist Philosophen, die sich mit Logik befassen, offenbar nicht klar, daß Logikbausteine als TTL-Gatter oder als Logikgatter in integrierten Schaltkreisen die Grundlage der Mikroelektronik, das Fundament der Informatik, Rechentechnik, Kommunikationstechnik und Automatisierungstechnik - kurz die Grundlage unserer Industrie und unseres Wohlstands - bilden.

Auch ist meist nicht klar, daß ausnahmslos alle unsere Computertechnik - vom PC bis zum Handy - mit Logikgattern funktioniert, aus denen die Addierwerke und Multiplizierer von Leibniz/Zuse aufgebaut sind.

Noch immer wird philosophische Logik auf sehr merkwürdige Weise von Leibnizscher Algebra mit Binärzahlen separiert. Man unterscheidet zwischen mathematischer Logik und anderen Arten.

Für den Studenten ist oft überhaupt nicht erkennbar, daß Boolsche Logik und Leibnizsche Algebra das einzig widerspruchsfreie Fundament sind, auf dem sich tausende Schnörkel bildeten.

So ist es an der Zeit, anzuerkennen, daß es Techniker waren, die die vielen nebulösen Logiken auf den Punkt brachten: Auf eine widerspruchsfreie, technische Basis, die machbar ist, die funktioniert.

Um z.B. die logischen Grundfunktionen AND, OR und XOR zu verstehen, hat man sich nur ein paar Eselsbrücken zu merken. AND: eine Null an einem Eingang siegt; OR: eine Eins an einem Eingang siegt; XOR: alle Null oder alle Eins siegen. Siegen heißt, der Ausgang geht auf Eins. Schlußendlich wird noch eine Negation NEG gebraucht: aus 1 wird 0 und aus 0 wird 1.

Sicher muß man auch eine Logikschaltung minimieren können. Aber dafür ist die wiederum hundert Jahre später erfundene Karnough-Tafel [10] besser geeignet.

In der englischen Wikipedia wird Gottfried Wilhelm Leibniz als der "Erfinder der Computer-Wissenschaft" bezeichnet. Zu recht, wie wir hier ganz klar erkennen können. Und die nach Boole benannte "Boolsche Algebra" war Leibniz vielleicht zu trivial, um damit die Kollegen Akademiker zu langweilen? Es wäre zu vermuten.

Um zu verstehen, wie Computer heute addieren, schaue man sich einen Volladder an. Dieser besitzt einen zusätzlichen Eingang für den hereinkommenden Übertrag cin und einen zusätzlichen Ausgang für den hinausgehenden Übertrag cout. Die Leitungen x und y sind die Summanden, s ist die Summe der jeweils zu berechnenden Stelle.

Übersetzen wir Algebra volkstümlich mit "Rechnen", dann ist der Begriff "Boolesche Algebra" eher irreführend. Es gibt nur "Leibnizsche Algebra mit Binärzahlen", Zuses "Zweierkomplement" und "Boolesche Logik".

Es stellte sich die Frage: Wer binär Addieren, Subtrahieren, Multiplizieren und Dividieren kann, der würde vielleicht auch die Grundregeln für die Realisierung eines Volladders mit AND, OR, XOR und NEG (Negation) entwickelt haben können?

Um dafür Hinweise zu finden, suchte ich nach dem Original der Leibnizschen Schrift. Es ist im Jahrgang 1703 der französischen Akademie der Wissenschaften zu Paris zu finden. Der Band wurde allerdings erst im Jahr 1705 abgedruckt [7], siehe das Titelblatt. Leibniz Binärsystem finden wir gut versteckt ab Seite 255, statt wie erwartet von S.85 bis S.89. Aber dank der Hilfe von Dr. Sven Erdner von der Gottfried- Wilhelm- Leibniz- Gesellschaft [8] war es möglich, den Beitrag von Leibniz zu entdecken.

So konnte das Leibniz-Original (PDF) aus dem Französischen [6] übersetzt werden; hier ist meine Übersetzung ins Deutsche [9]. Vielen Dank an den Helfer Rolf Tammer sowie an Googles Übersetzer [13].

Ich bitte um Verständnis, daß ich versuchte, die Übersetzung sehr eng am Original vorzunehmen. Mir kam es nicht auf sprachliche Eleganz, sondern mehr auf inhaltliche Richtigkeit an.

Leider beschäftigte sich Leibniz im Detail nicht ausführlicher mit Fragen der Logik auf binären Zahlen und der Durchführung der Grundrechenarten Rechenoperationen (plus, minus, mal, durch) mit Binärzahlen.

Er geht stattdessen auf die "vermutlich 4000 Jahre alten Linien von Fohy" ein, die von ihm als Binärsystem entschlüsselt werden konnten [11]. Sie sind heutzutage im Internet als Ching-Hexagram zu finden und haben trotz der Leibnizschen Entdeckung des dahinter stehenden Binärsystems nichts von ihrer astrologischen, mystischen und rein spekulativen Bedeutung verloren.

Bedauerlich, daß ausgerechnet die Binär-Arithmetik unter Leibniz Namen unbekannt ist.

PS
Das Original enthält [6] Seite 86 einen Druckfehler, den ich korrigiert habe: In der zweiten Rechentabelle rechts oben auf Seite 86 muß es heißen 1101 = 13 statt 0101 = 13. Eine andere Kopie dieser Seite, die in der Wikipedia als *.png verwendet wird [5], hat noch einen zweiten Druckfehler in ebendieser Tabelle, dort fehlt auch noch eine vier, statt 8+1 = 13 muß es heißen 8+4+1 = 13. Wenn Sie Lehrer sind, dann sollten Sie besser die korrigierte Seite ohne Druckfehler benutzen.

Quellen

[1] Deutsche Wikipedia: Gottfried Wilhelm Leibniz (Link)

[2] Englische Wikipedia: Gottfried Wilhelm Leibniz (Link)

[3] George Boole: "The Calculus of Logic" 1848 (PDF) - Quelle verloren

[4] Deutsche Wikipedia: George Boole (Link)

[5] Leibniz Binärsystem, Auszug aus [6] Seite 86 in den verschiedensprachigen Wikipedien (aber mit zwei Druckfehlern) (PNG)

[6] Gottfried Wilhelm Leibniz: "Explication de l'aritmètique binaire" - französisches Original (PDF) - Auszug aus [7] ab Seite 255 mit nur einem Druckfehler 0101 = 13 statt 1101 = 13.

[7] Google-Books: Geschichte der königlichen Akademie der Wissenschaften zu Paris, 1703. 662 Seiten, 30 MB (Link) (abgedruckt 1705). Dort ab Seite 255.

[8] Gottfried-Wilhelm-Leibniz-Gesellschaft Hannover (Link)

[9] Heinz, G.: - Übersetzung der "Erläuterung zur binären Aritmetik" (Explication de l'aritmètique binaire) von Gottfried Wilhelm Leibniz (HTML), (PDF)

[10] Wikipedia: Karnough-Tafel

[11] G.W.Leibniz: "Linien von Fohy" oder später auch Ching-Hexagramm genannt, Leibnizsches Original (JPG)

[12] George Boole: "The Mathematical Analysis of Logic". Cambridge: Macmillan, Barclay & Macmillan; London: G. Bell, 1847. (PDF)

[13] Aus dem Altfranzösischen übersetzt mit https://translate.google.com mit sehr vielen manuellen Korrekturen



Created 2023/02/23. Edited 2024/01/24
Source: http://www.gheinz.de/news/leibniz.htm
Mail to info@gheinz.de
Visitors since Dez.6, 2021: