Hinzugefügt
Ich habe gerade zwei verwandte Fragen gefunden
/programming//a/2582804/156458
In Programmiersprachen aus der Programmiersprache Pragmatik von Michael Scott
Im Allgemeinen wird ein Wert in einer Programmiersprache als erstklassig bezeichnet , wenn er als Parameter übergeben, von einem Unterprogramm zurückgegeben oder einer Variablen zugewiesen werden kann. Einfache Typen wie Ganzzahlen und Zeichen sind in den meisten Programmiersprachen erstklassige Werte. Im Gegensatz dazu kann ein Wert der zweiten Klasse als Parameter übergeben, aber nicht von einem Unterprogramm zurückgegeben oder einer Variablen zugewiesen werden, und ein Wert der dritten Klasse kann nicht einmal als Parameter übergeben werden.
Bezeichnungen sind in den meisten Programmiersprachen Werte der dritten Klasse, in Algol jedoch Werte der zweiten Klasse. Unterprogramme zeigen die meisten Variationen an. Sie sind erstklassige Werte in allen funktionalen Programmiersprachen und den meisten Skriptsprachen. Sie sind auch erstklassige Werte in C # und mit einigen Einschränkungen in mehreren anderen imperativen Sprachen, einschließlich Fortran, Modula-2 und -3, Ada 95, C und C ++. 11 Sie sind Werte zweiter Klasse in den meisten anderen imperativen Sprachen und Werte dritter Klasse in Ada 83.
Was ist die mathematische Grundlage für Werte der ersten, zweiten und dritten Klasse in Programmiersprachen?
Die Terminologie erinnert mich an die Logik erster / zweiter Ordnung, aber hängen sie zusammen?
Es scheint mir, dass der Unterschied zwischen ihnen darin besteht, in welchem speziellen Fall ein Wert verwendet werden kann
- als Parameter übergeben,
- von einem Unterprogramm zurückgegeben oder
- in eine Variable zugewiesen.
Warum sind die spezifischen Fälle wichtig, während andere Fälle nicht erwähnt werden?
Vielen Dank.