Übergeben Sie mit Namen und vorbei wert Ergebnis Sprachen
-
23-08-2019 - |
Frage
Für meine Programmiersprachen Natürlich, ich versuche, einig Code-Schnipsel in Sprachen zu schreiben, den Pass von Namen verwenden oder weitergeben von Wert-Ergebnis, vorzugsweise standardmäßig, aber jede Sprache, die auch unterstützt entweder von denen, wäre in Ordnung. Allerdings habe ich in der Lage, nicht eine einzige Sprache zu finden, die entweder von ihnen unterstützt. Kennt jemand eine Sprache, die von Wert-Ergebnis oder vorbei Namen übergeben verwendet? Vorzugsweise ist eine imperative Sprache.
Lösung
Die Wikipedia-Artikel über Auswertestrategie , die Call-by-Value-Ergebnis legt nahe, unterstützt wird von fortran. Call-by-Name wird unterstützt von Algol 68.
Andere Tipps
ich denke, C Makros wird Pass-by-Name ( nicht die Sprache C selbst natürlich). Ich weiß nicht von irgendwelchen Pass-by-Value-Ergebnis Sprachen ich Angst habe (um ehrlich zu sein hatte ich eine Web-Suche zu tun, um herauszufinden, was es bedeutet!).
Wenn Sie eine Variable auf eine Fortran-Funktion übergeben und Sie es dort ändern, Sie es auch im rufenden Programm ändern:
psuedocode:
int j = 1
print j
addOne(j)
print j
ausgeben würde:
1
2
Ich denke, CLIP Expertensystem Sprache Pass von Namen sein würde.
Sowohl Java und C-Pass-by-Wert Sprache.
C ist eindeutig ein Pass von Wert Sprache.
Java ist immer gesagt worden, „Primitive von Wert übergeben wird, Objekte als Referenz übergeben werden“. Aber da Java-Objekt ist eine Referenz zu jeder Zeit, so ist es eigentlich ein Referenzwert.
Java Language-Spezifikation sagt dies: http://java.sun.com/ docs / Bücher / JLS / second_edition / html / classes.doc.html # 37472
Algol-Pass-by-Namen unterstützt, wie Sie eine Erklärung finden können hier
Mir wurde gesagt, dass Ada Pass-by-Wert / Ergebnis unterstützt, aber noch nicht ausprobiert.