Frage

Es scheint, dass es eine starke Bewegung für die Konvergenz der Mathematik und Informatik Programmiersprachen, wird dies durch den Einfluss des Lambda-Kalkül auf moderne Sprachen vor allem belegt. Die meiste Zeit glaube ich nicht mit Mathematik, ich denke, mit Logik. Es scheint mir, dass viele von dem Phänomen, dass mathematisch modelliert werden kann, können logisch als auch modelliert werden.

Ich glaube nicht, dass wir jemals eine rein logische Sprache oder eine rein mathematische Sprache Gewinn Traktion für allgemeine Zwecke Programmierung sehen werden, aber ich möchte eine Bestandsaufnahme der Vorteile jedes Paradigma nehmen. Ich würde gerne wissen:

  • Was sind die Vorteile von Programmiersprachen Modellierung oder Sprachfeatures auf Mathematik?
  • Was sind die Vorteile der Modellierung einer Sprache auf den Prinzipien der formalen Logik?
  • Kann eine Allzweck-Sprache forgo jede Logik oder Mathematik?
  • Was sind einige Sprachen, dass wirklich die Vorteile von beiden Ansätzen zeigen?
  • Welche Hardware-Features machen einen Ansatz attraktiver als die anderen?
War es hilfreich?

Lösung

Zunächst einmal sehe ich nicht viel Unterschied zwischen Logik und Mathematik; Letzteres ist nur der ehemalige systematisch auf bestimmte Konstrukte angewendet wird.

Darüber hinaus Ich bin nicht überzeugt, dass die theoretische Schönheit Programmiersprachen geerdet in Mathematik / Logik wirklich wert ist viel, wenn es darum geht, Dinge zu bekommen, indem er effizient, wartbar Code.

Was Sie spezielle Fragen.

  

Was sind die Vorteile der Modellierung   Programmiersprachen oder Sprache   Funktionen auf Mathematik?   Was sind die Vorteile der auf den Prinzipien der formalen Logik Sprache modelliert?

Proofs Korrektheits viel einfacher geworden -. Obwohl es fraglich ist, ob wir jemals an den Punkt gelangen werde, wo sie für Systeme realen praktisch werden

  

Kann eine Allzweck-Sprache forgo   entweder Logik oder Mathematik?

Abhängig von was du meinst mit „forgo“. Sie können eine Sprache ohne mathematische Operationen haben (obwohl Sie ziemlich esoterische bekommen müssen; Turing-Maschinen der einzige ich daran denken kann, nicht einmal Zunahme oder -abnahme haben), und man kann sicherlich eine haben, dass Sorgen nichts über Formalismen ( Assembler, C). Aber ich glaube nicht, es ist möglich, eine Programmiersprache, ohne Logik zu haben (obwohl es eine perverse Logik sein kann, vgl Malbolge )

  

Was sind einige Sprachen, dass wirklich die Vorteile von beiden Ansätzen zeigen?

Nun, wenn Sie Lambda-Kalkül einer Form der Logik betrachten, dann wurde Lisp seine Vorteile vorführt ziemlich gut, seit 1958 ist die Sprache, deren Ausdruckskraft andere Sprache aspire (aber nicht schaffen) zu erreichen.

Dann gibt es Prolog, der einzige andere „schwere“ Sprache, die ich weiß, dass versucht explizit in der formalen Logik geerdet werden. Und - Überraschung quillt -. Es ist gut, auf dem logischen Sachen und kaum etwas anderes

  

Was Hardware-Features machen einen Ansatz attraktiver als die andere?

Keine. Das Scheitern der Lisp Machines IMO beweist ziemlich schlüssig, dass Compiler + Beschläge sind mächtiger als spezialisierte Hardware. könnte man jedoch sagen, dass die simpe rohe Kraft der heutigen Systemsprachen macht, dass Hardwarebeschränkungen vollständig ignoriert praktisch, wo sie vorher nicht waren.

Andere Tipps

da Informatik eine spezielle branche der Mathematik ist - es gibt keine Konvergenz der Mathematik und Programmiersprache. Eine Programmiersprache angewendet Mathematik. Es ist ein Werkzeug für Menschen mit profunden Kenntnissen auf Mathematik erstellt von anderen verwendet wird (die meiste Zeit mit weniger profunden Kenntnissen). Sie können es zu einem Lichtschalter vergleichen - Sie können es ohne studierte Physik verwenden, aber es ist immer noch angewandte Physik. Manchmal (vor allem, wenn Sie ein Problem haben) ist es notwendig, das „Wissen“ zu haben. Dann müssen Sie den speziellen Hintergrund.

Nun, um ehrlich zu sein viele dieser so genannten „modernen Programmiersprachen“ sind imlpementing Dinge einfach, die seit über 50 Jahren in verschiedenen Programmiersprachen gewesen sein.

  

Was sind die Vorteile der Modellierung Programmiersprachen oder Sprachfunktionen auf Mathematik?   Was sind die Vorteile der auf den Prinzipien der formalen Logik Sprache modelliert?

Es handelt sich um das gleiche: die formale Logik ist nur ein Zweig der Mathematik. Zwei große Vorteile der Verwendung formaler Mathematik sind die Optimierung und Sicherheit. Wenn ein Algorithmus hat keine Nebenwirkungen (d.h. referenziell transparent) und wird ausschließlich unter Verwendung von reiner Mathematik Compiler können restrukturiert der Algorithmus ausgedrückt nach den Regeln der Mathematik. Dies macht es einfacher für Compiler zu optimieren Code und parallele Architekturen zu nutzen. Ein weiterer wichtiger Vorteil ist die Fähigkeit, bestimmte Eigenschaften des Codes zu beweisen.

  

Kann eine Allzweck-Sprache forgo   entweder Logik oder Mathematik?

Nein. Wie würden Sie ohne Logik oder Mathematik Boolesche Operationen oder Rechnen. Sie meinen, kann hier etwas, dass ich nicht verstehe.

  

Was sind einige Sprachen, dass wirklich die Vorteile von beiden Ansätzen zeigen?

Haskell, ML, Ocaml, Miranda, Alice, Oz, Erlang, twelf, Coq, Prolog, alle zeigen strengere Anwendungen der Mathematik in der Programmierung.

  

Was Hardware-Features machen einen Ansatz attraktiver als die andere?

Ich glaube nicht, die Hardware Dinge viel in Bezug auf die Vorteile einer strengen mathematischen Ansätze zur Programmierung von Änderungen. Die Vorteile von referentiell transparenten Code sind meist auf der Ebene des Compilers.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top