Zunächst einmal sehe ich keinen großen Unterschied zwischen Logik und Mathematik; letztere ist nur die systematische Anwendung der ersteren auf bestimmte Konstrukte.
Außerdem bin ich nicht davon überzeugt, dass die theoretische Schönheit von Programmiersprachen, die auf Mathematik/Logik beruhen, wirklich viel wert ist, wenn es darum geht, Dinge zu erledigen, indem man effizienten, wartbaren Code schreibt.
Was Ihre konkreten Fragen betrifft.
Was sind die Vorteile der Modellierung? Programmiersprachen oder Sprach auf Mathematik? Was sind die Vorteile der Modellierung einer Sprache nach den Prinzipien der formalen Logik?
Korrektheitsbeweise werden viel einfacher - obwohl es fraglich ist, ob wir jemals an den Punkt kommen, an dem sie für reale Systeme praktisch werden.
Kann eine Allzwecksprache auf die entweder auf Logik oder Mathematik verzichten?
Das hängt davon ab, was Sie mit "Verzicht" meinen. Man kann eine Sprache ohne mathematische Operationen haben (auch wenn man dabei ziemlich esotherisch vorgehen muss; Turing-Maschinen sind die einzigen, die ich mir vorstellen kann, die nicht einmal Inkrement oder Dekrement haben), und man kann sicherlich eine Sprache haben, die sich nicht um Formalismen kümmert (Assembler, C). Aber ich glaube nicht, dass es möglich ist, eine Programmiersprache ohne Logik zu haben (auch wenn es sich um eine pervertierte Logik handeln mag, siehe. Malbolge )
Welche Sprachen zeigen die Vorteile der beiden Ansätze besonders deutlich?
Nun, wenn man das Lambda-Kalkül als eine Form der Logik betrachtet, dann hat Lisp seine Vorzüge ziemlich gut unter Beweis gestellt, indem es seit 1958 die Sprache ist, deren Ausdruckskraft andere Sprachen zu erreichen versuchen (aber nicht erreichen).
Dann gibt es noch Prolog, die einzige andere "seriöse" Sprache, die ich kenne, die versucht, sich explizit auf die formale Logik zu stützen. Und - quelle surprise - sie ist gut in logischen Dingen und wenig anderem.
Welche Hardware-Merkmale machen den einen Ansatz attraktiver als den anderen?
Keine. Das Scheitern von Lisp-Maschinen beweist IMO ziemlich schlüssig, dass Compiler und allgemeine Hardware leistungsfähiger sind als spezialisierte Hardware. Man könnte jedoch sagen, dass die einfache, brachiale Leistung der heutigen Systeme Sprachen, die Hardwarebeschränkungen völlig ignorieren, praktisch macht, wo dies früher nicht möglich war.
14 Stimmen
Logik ist Mathematik. Sie ist sogar eine Schlüsselkomponente der diskreten Mathematik. Und wenn Sie Informatiker oder Software-Ingenieur sind, sollten Sie zumindest einigermaßen mit der diskreten Mathematik vertraut sein.
0 Stimmen
Ich verstehe die Beziehung auf der grundlegendsten Ebene, aber ich bin wirklich neugierig auf den Ausdruck auf der Benutzerebene.
3 Stimmen
Ich sehe nicht den klaren Unterschied zwischen Logik und Mathematik, den Sie deutlich erkennen. Natürlich sind banale Dinge, bei denen es um numerische Berechnungen geht, eher mathematisch als logisch, aber bei fortgeschritteneren Themen, bei denen es sich um komplexe Abstraktionen handelt, scheint es eine willkürliche Entscheidung zu sein, sie in den Korb "Logik" oder "Mathematik" zu legen.
0 Stimmen
@harms Ich bin anderer Meinung, denn die Logik als Fachgebiet umfasst viel mehr als das, was für die Mathematik relevant ist. In der Tat wurde die Logik historisch gesehen weitgehend außerhalb der Mathematik entwickelt. Erst Mitte des 19. Jahrhunderts wurden die beiden Bereiche miteinander verknüpft, und die Verbindung wurde erst im frühen 20. Außerdem glaube ich, dass die Verbindung in den letzten Jahren schwächer geworden ist, und viele führende Logiker arbeiten in Informatikabteilungen statt in der Mathematik. Ich stimme allerdings zu, dass die Bedeutung der Mathematik im Wesentlichen auf die Bedeutung der mathematischen Logik zurückzuführen ist.