6

For my programming languages course, I'm trying to write some code snippets in languages that use pass by name or pass by value-result, preferably by default, but any language that even supports either of those would be fine. However, I haven't been able to find a single language that supports either of them. Does anyone know of a language that uses pass by value-result or pass by name? Preferably an imperative language.

4

6 に答える 6

3

評価戦略に関するウィキペディアの記事は、値による呼び出しの結果がFortranによってサポートされていることを示唆しています。名前による呼び出しは、algol68でサポートされています。

于 2009-04-05T01:14:36.417 に答える
1

Cマクロは名前による受け渡しだと思います(もちろんC言語自体ではありません)。私は恐れている値渡し結果の言語を知りません(正直なところ、それが何を意味するのかを知るためにWeb検索をしなければなりませんでした!)。

于 2009-04-05T00:57:42.637 に答える
1

変数をfortran関数に渡し、そこで変更する場合は、呼び出し元のプログラムでも変更します。

擬似コード:

int j = 1
print j
addOne(j)
print j

出力します:

1
2
于 2009-04-05T01:27:32.907 に答える
1

CLIPS エキスパート システム言語は名前で渡されると思います。

于 2009-04-05T02:18:48.167 に答える
0

ここでいくつかの説明を見つけることができるため、Algolは名前による受け渡しをサポートしています

Ada は値渡し/結果渡しをサポートしていると言われましたが、まだ試していません。

于 2010-04-07T10:34:37.827 に答える
0

Java と C はどちらも値渡し言語です。

C は明らかに値渡し言語です。

Java は常に「プリミティブは値で渡され、オブジェクトは参照で渡される」と言われてきました。しかし、Javaオブジェクトはいつでも参照なので、実際には参照値です。

Java 言語仕様はこれを示しています: http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#37472

于 2009-04-05T01:51:44.160 に答える