- Notation ist ein wichtiges Werkzeug, das das Denken unterstützt, und spielt sowohl in der Mathematik als auch in Programmiersprachen eine zentrale Rolle
- Die APL-Sprache wurde als Versuch entwickelt, die Vorteile mathematischer Notation mit der Ausführbarkeit und Universalität von Programmiersprachen zu verbinden
- Merkmale guter Notation sind Prägnanz, Klarheit, Suggestivität, Unterordnung von Details und die Möglichkeit formaler Beweise
- Verschiedene mathematische Strukturen (Polynome, Transformationen, Graphen usw.) lassen sich mit APL effizient ausdrücken und transformieren
- Einführung und Erlernen von Notation sollten natürlich im Kontext erfolgen; auch die Strukturiertheit und Allgemeingültigkeit der Notation sind wichtig
Notation als Werkzeug des Denkens
- Auch in wissenschaftlichen Bereichen wie Chemie und Botanik fördert eine systematische Nomenklatur den Fortschritt des Fachs
- George Boole betonte, dass Sprache selbst ein Mittel des Denkens ist
- Mathematische Notation ist ein typisches Beispiel für eine Sprache, die das Denken unterstützt, die Denklast reduziert und die Denkfähigkeit erweitert
- A.N. Whitehead und Charles Babbage betonten die Bedeutung mathematischer Notation
Das Potenzial von Programmiersprachen als Werkzeuge des Denkens
- Programmiersprachen haben die Stärken Allgemeingültigkeit und Klarheit
- Mit dem Computer lassen sich Ideen erproben und klare Denkexperimente durchführen
- Die meisten Programmiersprachen sind jedoch als Werkzeuge des Denkens schwächer als mathematische Notation
- APL wurde als Notation entworfen, die das Denken unterstützt und auf Klarheit und Präzision abzielt
Wichtige Merkmale guter Notation
- Leichte Darstellung von Problemen: Strukturen, die sich direkt aus einem Problem ableiten, sollten sich einfach ausdrücken lassen
- Suggestivität: Die ausgedrückte Form sollte auf ähnliche oder erweiterte Probleme hinweisen
- Unterordnung von Details: Sie sollte eine Struktur bieten, die komplexe Details vereinfacht und so das Denken unterstützt
- Prägnanz: Mit minimalen Symbolen und Regeln sollte ein breites Ausdrucksspektrum möglich sein
- Möglichkeit formaler Beweise: Die Notation sollte für formale Beweise und deduktives Schließen geeignet sein
Einführung in die grundlegenden Notationstechniken von APL
- Array-basierte Strukturen wie Vektoren und Matrizen werden auf natürliche Weise verwendet
- Funktionen und Operatoren werden automatisch elementweise auf Vektoren/Matrizen angewendet
- Mit Operatoren wie Reduktion(
/), Scan(\) und innerem Produkt(.) lassen sich Funktionskombinationen ausdrücken
- Mit Grundsymbolen wie
⍳, ⌽, ⍴, +, ×, * lassen sich reichhaltige Ausdrücke bilden
- Alle Funktionen folgen der Regel der Rechtsbindung, sodass sich natürliche Ausdrücke ohne Klammern schreiben lassen
Beispiele für Problemlösung und Förderung des Denkens
- Mathematische Folgen wie Dreieckszahlen oder Fakultäten lassen sich mit einfachen Ausdrücken darstellen
- Polynomdarstellung sowie Operationen wie Multiplikation und Differentiation lassen sich mit konsistenten Regeln knapp behandeln
- Auch die Graphentheorie (Bäume, transitive Hülle, Spannbäume) lässt sich mit Array-Operationen klar ausdrücken
- Das lässt sich auf verschiedene Bereiche wie Permutationen, Boolesche Algebra und Zahlensystemumwandlungen (Primfaktorzerlegung) erweitern
Formale Beweise und strukturiertes Denken
- Da alle Operationen und Ausdrücke in klar ausführbarer Form dargestellt werden, ist eine automatische Verifikation durch den Computer möglich
- Es werden verschiedene Beispiele formaler Beweise gezeigt, darunter mathematische Induktion, vollständige Suche und das Auflisten von Identitäten
- Formale Beweise für Zerlegungsidentitäten von Reduktion und Scan sowie für Assoziativität und Distributivität innerer Produkte werden gegeben
- Newtonsche symmetrische Funktionen sowie Formeln für Polynom-Multiplikation und Differentiation werden direkt bewiesen
Vergleich von APL mit traditioneller mathematischer Notation
- APL bietet eine klare Definition von Funktionen, konsistente Array-Operationen und ein reichhaltiges Symbolsystem
- Für alle Operationen gilt statt eines Prioritätsregelsystems die Regel der Ausführung von rechts nach links
- Es reduziert die Komplexität der Verwendung mathematischer Symbole und unterstützt formale Manipulation
- Die Syntax ist knapp und die Regeln konsistent, was sowohl für Einsteiger als auch für Fortgeschrittene vorteilhaft ist
Einführung und Lernen von Notation
- Es wird betont, benötigte Notation ohne separate „Sprachlektionen“ natürlich im Kontext einzuführen
- Neue Symbole werden in konkreten Problemsituationen intuitiv erlernt
- Wichtiger als die Schwierigkeit der Notation selbst ist es, die vielfältigen Möglichkeiten und Erweiterbarkeit zu erkennen, die sie andeutet
Erweiterbarkeit und Vorschläge für APL
- Vorschläge zur Erweiterung von Funktionen einschließlich der Verarbeitung komplexer Zahlen
- Bedarf an Standardisierung einer Funktion für eindeutige Elemente (unique elements) sowie einer Zusammenfassungsfunktion (summary)
- Durch allgemeinere Operatoren könnten zusätzliche Themen wie Vektoranalysis unterstützt werden
- Ziel ist eine höhere Klarheit des Sprachdesigns und bessere Schlussfolgerungsfähigkeit
Gleichgewicht zwischen Effizienz und Klarheit
- Empfohlen wird, zunächst eine klare und analysierbare Notation zu definieren und die Effizienz anschließend durch Optimierung zu erhöhen
- Die Klärung des Algorithmus hilft später auch bei Optimierung und Compiler-Optimierung
- In APL geschriebene Grundausdrücke können sowohl zur wissenschaftlichen Forschung als auch zu industriellen Anwendungen beitragen
1 Kommentare
Hacker-News-Kommentare
Notation bedeutet mehr, als einfach nur einen Ausdruck durch einen anderen zu ersetzen
Der Niedergang von APL lag am Aufkommen von Lotus 123 und MS Excel
Die Sapir-Whorf-Hypothese deutet darauf hin, dass Sprache das Denken einschränken kann
Es wird an einem Projekt entwickelt, das APL verwendet
Schade, dass eine Freeform-Notiz-App nicht fertiggestellt wurde
Dies ist die Vorlesung, in der der Ausdruck "Werkzeuge des Denkens" erstmals verwendet wurde
Als verwandtes Material wird Iversons "Notation as a Tool of Thought" erwähnt