2009-04-05 4 views
6

私のプログラミング言語コースでは、名前で渡すか値渡しを使用する言語でコードスニペットを記述しようとしていますが、それらのいずれかをサポートしても大丈夫でしょう。しかし、私はどちらかをサポートする単一の言語を見つけることができませんでした。誰かが、結果をパスしたり、名前を渡す言語を知っていますか?好ましくは命令的言語。名前で渡し、値渡しの結果言語で

答えて

3

wikipedia article on evaluation strategyは、call-by-value-resultがfortranによってサポートされていることを示しています。呼び出し名前は、FORTRANの関数に変数を渡すと、あなたがそれを変更した場合、あなたはまた、呼び出し元のプログラムでそれを修正するALGOL 68

+0

ありがとう、私はこのルートを行くつもりだと思う。 – dancavallaro

+0

** Algol 60 **には、値による呼び出しと名前による呼び出しがあります。 ** Algol 68 **はコールバイバリューとコールバイリファレンスを持ち、プログラマーは手動でコールバイコ​​ピー復元方法を採用することができます。 Call-by-sharingは、参照による呼び出し(「手続き型」の形)のように見えますが、Algol68で実際に同じであるかどうかはわかりません。 Algol68の最初のバージョンには呼び出しが必要でしたが、Rev1では削除されました。 – NevilleDNZ

1

私はCマクロはパス名(ではなく、もちろんC言語)だと思います。私が恐れている価値のある成果の言語は分かりません(正直なところ、何を意味するのかを知るためにはウェブ検索をしなければなりませんでした)。

+0

私は何をしようとしているのか、Cマクロが「数え」ているのか分かりませんが、それは興味深い考えです。 – dancavallaro

1

によってサポートされています。

擬似コード:

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

出力あろう:

1 
2 
+1

私はいつもaddOne(1)を呼び出して定数1の値を変更できる(本当に)古いバージョンのFortranに感謝しました。 –

0

JavaおよびCの両方はパスごとの値言語です。

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

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

Java言語仕様にこれを伝えます: http://java.sun.com/docs/books/jls/second_edition/html/classes.doc.html#37472

+0

これは本当ですが、私の質問には答えません.. – dancavallaro

1

私はクリップエキスパートシステムの言語が名前で渡すことだと思います。

0

アルゴルはサポート渡しの名前を私はエイダは値渡し/結果をサポートしていますが、まだ試していないと言われたhere

いくつかの説明を見つけることができるよう。

関連する問題