Die Bedeutung der Wörter ist nicht festgelegt, aber ich kann Ihnen meine Interpretation geben.
Ein Kalkül ist etwas, mit dem wir im Sinne des Jonglierens von Gleichungen rechnen (denken Sie an die Manipulation von Taylor-Reihen oder die Berechnung von Integralen in der Analyse). Ein Kalkül sagt uns, welche Manipulationsregeln es gibt, nicht aber welche, die wir in einer bestimmten Situation anwenden sollten.
Eine Programmiersprache sagt uns, wie man berechnet. Es sagt uns genau, wie wir die Regeln anwenden sollen. In der Regel lässt der Computer die Regeln verwenden, da diese viel schneller sind. Die Regeln können nicht deterministisch sein, und es kann sehr gute Gründe dafür geben, dass sie nicht deterministisch sind. Es liegt möglicherweise in der Natur des Kalküls, dass es nicht deterministisch ist (denken Sie an gleichzeitige Kommunikationsprozesse), oder die Festlegung einer bestimmten Strategie kann sich nachteilig auf die Implementierungstechniken und die Optimierung auswirken.
Zum Beispiel ist der Kalkül eine Gleichungstheorie . Es gibt Ausdrücke und Gleichungen, die uns sagen, wann Ausdrücke gleich sind. Die Gleichungen sagen uns nicht , wie wir sie anwenden sollen, obwohl Menschen normalerweise versteckte Pläne haben und sie die Gleichungen präsentieren, damit sie später nützliche Bewertungsstrategien daraus ableiten können. Aber im Wesentlichen ist λ- Kalkül ein Bündel von Gleichungen. Es ist keine Programmiersprache.λλ
Im Gegensatz dazu ist Standard ML eine Programmiersprache. Es wird in Bezug auf die operationale Semantik, dh die Berechnungsregeln, angegeben. Es gibt abgeleitete Gleichheitsbegriffe (Kontextgleichheit, Beobachtungsgleichheit usw.), die wir als eine Art Kalkül auffassen können.
Natürlich gibt es oft nützliche Zusammenhänge zwischen einem Kalkül und seiner Manifestation als Programmiersprache. Konfluente Normalisierung ist nur eine Möglichkeit, vom Kalkül in die Programmiersprache überzugehen (obwohl einige Menschen es leider zu einer Art Religion gemacht haben). Das Zusammenspiel von Kalkülen und Programmiersprachen ist wichtig: Die Programmiersprachen können tatsächlich verwendet werden, aber die Kalküle erklären, worum es in den Programmen geht.
Um die Leute zu ärgern, möchte ich auch festhalten, dass die Behauptung, dass es keinen Unterschied zwischen einem Kalkül und seiner operativen Manifestation gibt, manchmal zu verzerrten Ansichten über die Programmierung und Minireligionen innerhalb der Programmierergemeinschaft führt. Sie können versuchen zu erraten, welche Sprache ich im Sinn habe. (Es ist eine sehr coole Sprache!)