Über die erste-,zweite - und Dritte-Klasse Wert

Erste-Klasse Wert kann

  1. als argument übergeben
  2. nach der Rückkehr von einem Unterprogramm
  3. zugeordnet, in einer Variablen.

Zweiter Klasse Wert nur können werden als argument übergeben.

Dritten Klasse Wert selbst kann nicht als ein argument übergeben.

Warum sollten diese Dinge, die definiert, wie das? So wie ich das verstehe, "kann als argument übergeben" bedeutet, es kann geschoben werden in der runtime-stack;"zugeordnet werden können, in eine variable" bedeutet, es kann verschoben werden in einen anderen Speicherort des Speichers; "zurückgegeben werden kann aus einem Unterprogramm" hat fast die gleiche Bedeutung "zugeordnet werden können, in eine variable", da der zurückgegebene Wert immer in eine bekannte Adresse, also der ersten Klasse Wert ist völlig "beweglichen" oder "dynamisch",die zweite Klasse Wert ist die Hälfte der "beweglichen" , und die Dritte Klasse Wert ist nur "statische", wie Etiketten in C/C++, die nur behoben werden kann durch die goto-Anweisung, und Sie können nicht nichts tun mit, dass die Adresse mit "goto" .Hat Mein Verständnis keinen Sinn? oder was haben diese drei Arten von Werten konkret?

  • Können Sie uns den link oder Verweis zu diesen Definitionen?
  • en.wikipedia.org/wiki/First-class_object oder Programmierung Sprache Pragmatik, Zweite Ausgabe 3.5.2 Erste - und Zweite-Klasse-Subroutinen
  • Nicht bekommen aufgehängt auf die Implementierungsdetails beim Versuch, befassen sich mit Allgemeinen Definitionen wie diese. Zum Beispiel, Argumente sind nicht unbedingt auf den stack gelegt.
  • Diese Dinge sind definiert in Christopher Strachey 1961 definition der Sprache ALGOL.
InformationsquelleAutor WuFa | 2010-04-05
Schreibe einen Kommentar