- ベストアンサー
「ルーチン」という言葉の意味
私は、C言語を勉強中のものですが、 「ルーチン」という言葉は具体的にどういう意味なのですか、 お教えください。 C言語では、「関数」と同義語でしょうか。 「新ANSI C言語辞典」(平林雅英 著、 技術評論社)の「ルーチン」の説明: 定められた処理をするためのプログラムのひとかたまり
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
まず、関数と同義語ではありません。 ルーチンと言うのは主観で決まると言うのもあながち嘘ではありません。 メインルーチン、サブルーチン、~処理ルーチンなどまさに設計者の主観によります。 一つだけ言えるのは1命令でルーチンと言うことはまず無いと言うことです。 数命令以上が集まって所定の目的を果たすもの、ということで、極端な例としてはプログラム=ルーチンと言うこともあるということでしょう。 この考え方から行けば、関数の中に沢山のルーチンがあったり、ルーチンの中に関数が沢山あっても一向に不思議ではありません。 要は設計者が、どの部分をルーチン(ひとかたまりの仕事)と認識するかにかかっているわけですから。(~処理部と言う程度の意味なのですから)
その他の回答 (2)
- shogenji
- ベストアンサー率31% (31/98)
回答できるほど分かっているのではないのですが, 関数とは同義ではないです. 「定められた処理をするためのプログラムのひとかたまり」 関数の中にも,ルーチンがいくつもあったり, 関数が幾つか集まってルーチンになったりです.
補足
>関数の中にも,ルーチンがいくつもあったり, >関数が幾つか集まってルーチンになったりです. この部分はなるほどなあ、と思いました。 >関数とは同義ではないです. >「定められた処理をするためのプログラムのひとかたまり」 ただ、何を「ひとかたまり」と捕らえるのかは、人によって違う可能性があるように私は思ってしまいます。 「ルーチン」というのは、そういう、主観的な言葉なのでしょうか。(そうかもしれません。) 「プログラミング言語C」(カーニハン ・ リッチー 著)という本では「ルーチン」という言葉を次のように使っています。 ―――――――――――――引用――――――――――――― 静的なメモリは通常の宣言にstaticということばを付けて指定される。そこで次の二つのルーチンと二つの変数が、一つのファイルにコンパイルされると、 static char buf[BUFSIZE]; /* ungetch 用のバッファ */ static int bufp = 0; /* buf 中の次の空き位置 */ int getch(void) { ... } void ungetch(int c) { ... } 他のルーチンから buf と bufp へのアクセスは不可能となる。これらは、同じプログラムの他のファイル中の同じ名前とは衝突しない。 ―――――――――――――引用ここまで―――――――――
- bin-chan
- ベストアンサー率33% (1403/4213)
gooの国語辞書検索機能(三省堂 大辞林第2版)で検索したらありますよ。 確かに通常の仕事でも、決まりきった手続きにのっとった処理を「ルーチンワーク」といいますよ。 特別な判断を必要としない、と言うことでしょう。 (プログラムされているから) プログラムを演奏会などのプログラム(式次第)と解釈すれば 「きまりきった流れ」の意味がつかみやすいのでは?
補足
ありがとうございました。 参考URLによると、「コンピューターのプログラムの部分をなし、ある機能をもった一連の命令群。」ですね。 意味はわかりました。 で、具体的には、for文とかif文とかswitch~case文とか、でしょうか。 ご回答にある「きまりきった流れ」というのは、私には、「プログラム」と同義語に感じられてしまいます。
お礼
>ルーチンと言うのは主観で決まると言うのもあながち嘘ではありません。 ということは、プログラミングの本にこの言葉が出てきたら、具体的に何をさすかはその文脈で判断する必要がありそうですね。