手続き「呼び出し」ってどういう意味?

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2021/05/20(木) 15:40:57.78ID:kdHhkFdS
上手く伝わる自信がないんだけど、
呼び出しって言葉にはどういう意味があるの?
例えば、手続き実行とは言わずになんで呼び出しなの?
メソッドは実行?

実行時にメモリ空間上に常駐させるから呼び出し?
なんか概念の話ではなく、言語仕様の話なの?
Javaだとメソッド呼び出しじゃあないよね?

ずっと疑問なんだ。
助けて。
2021/05/20(木) 15:41:45.71ID:46+G9eEq
callやろ
3デフォルトの名無しさん
垢版 |
2021/05/20(木) 15:48:00.57ID:92Zuh7PO
>>2
すみません、ちょっと自分には意味がわからないので、もう少し教えて欲しいです。
そしたらメソッド呼び出しってよく聞きますけど、
並行オブジェクトにおいては、適切ではないということですか?
4デフォルトの名無しさん
垢版 |
2021/05/20(木) 15:56:35.03ID:92Zuh7PO
すみません、自分の疑問は、
メソッド呼び出しという言葉は適切なのか?です!
2021/05/20(木) 15:59:47.22ID:/JYGZP1E
適切
専門用語なんだから国語辞典的な意味に引っ張られるな
2021/05/20(木) 16:13:31.49ID:SZkXAUOU
他の場所にあるプログラムを実行する様子が、処理を呼び出しているように見えるから...とか?
2021/05/20(木) 17:29:06.19ID:XA+o92qv
メッセージでええやん
8デフォルトの名無しさん
垢版 |
2021/05/20(木) 17:42:34.74ID:92Zuh7PO
callは、別プログラムに制御を移して実行するんですよね?

手続き指向で考えてもこれは矛盾がないので、手続き呼び出しという言葉に違和感はないです。

ただ、オブジェクト指向で言えば、待ち状態になるだけで制御は独立した別物ではないんですか?(もちろん、言語仕様とは別で)

メッセージによるメソッド実行ならいいんですけど、メソッド呼び出しじゃなくね?って言うのが疑問です。
9デフォルトの名無しさん
垢版 |
2021/05/20(木) 17:50:02.74ID:92Zuh7PO
callは、プログラムの話をしてるのに、概念の話とごっちゃにしてしまってますね...

プログラミング言語の話をしている時に、メソッド呼び出しは良いけど、概念の話をしている時にメソッド呼び出しは間違ってると思うんですがどうでしょうか!?
というのが自分の疑問って整理できました!
2021/05/20(木) 17:58:05.90ID:/JYGZP1E
プログラムの話と概念の話をどう分けてるんだ
元から概念の話しかしてないだろ
2021/05/20(木) 18:08:15.32ID:46+G9eEq
英語の話だよ。callは日本語でなんと言う?
12デフォルトの名無しさん
垢版 |
2021/05/20(木) 18:12:56.06ID:92Zuh7PO
???メモリ空間とかどう動くかは概念の話じゃないですよね?なんでそんな怖い口調でいうん...
2021/05/20(木) 18:20:57.01ID:IqiuDW4q
callとinvokeの違い
2021/05/20(木) 18:27:53.40ID:yxa1m0L9
function call
procedure call
method call
みんな同じ

function execution
procedure execution
method execution
これも使うけどニュアンスが微妙に違う
callはcaller/calleeの関係性を含んでる
2021/05/20(木) 19:21:24.45ID:905fVrUH
アセンブラを知らないとサブルーチンコールがどういう仕組みなのか分からないのかも知れないね
そもそもサブルーチンが何なのかの話もあるかも知れないが
サブルーチンとはいわゆる一つの関数の事なのだが
当然だがそれらの関数の処理は実際には今現在処理しているアドレスとは別の場所(アドレス)に並んでいる
そのサブルーチンを呼ぶ際に普通にジャンプするとサブルーチンを終了したときに元の場所に戻れない
なのでサブルーチンを呼んだ後にその次のアドレスに戻れるようにその情報(復帰するアドレス)をスタックに格納する
(アセンブラではjsrやcallみたいな命令になっている。実態は復帰アドレスをスタックにpushしてサブルーチンにジャンプする命令)
サブルーチン側では処理が終わればそのスタックに格納されているアドレスを取り出しジャンプする
(アセンブラではretやrtsみたいな命令だったりする。実態はスタックからpullしてそのアドレスにジャンプする命令)
だから、クラスのメソッドや単なる関数は実態はサブルーチンを利用することになるが
日本語だとサブルーチンを呼ぶみたいな言い方されているので呼び出しで特に問題は無いと思う

サブルーチンに飛ぶという風に言っても意味としては通用するが
サブルーチンというものが処理が終われば戻ってくるものなので
呼び出しの方がニュアンスとしては的確な気がする

単なる条件、無条件ジャンプ(Cだとif elseやgoto等)は呼び出しとは言わないしね
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況