• ベストアンサー

「ルーチン」という言葉の意味

shogenjiの回答

  • shogenji
  • ベストアンサー率31% (31/98)
回答No.2

回答できるほど分かっているのではないのですが, 関数とは同義ではないです. 「定められた処理をするためのプログラムのひとかたまり」 関数の中にも,ルーチンがいくつもあったり, 関数が幾つか集まってルーチンになったりです.

noname#1176
質問者

補足

>関数の中にも,ルーチンがいくつもあったり, >関数が幾つか集まってルーチンになったりです. この部分はなるほどなあ、と思いました。 >関数とは同義ではないです. >「定められた処理をするためのプログラムのひとかたまり」 ただ、何を「ひとかたまり」と捕らえるのかは、人によって違う可能性があるように私は思ってしまいます。 「ルーチン」というのは、そういう、主観的な言葉なのでしょうか。(そうかもしれません。) 「プログラミング言語C」(カーニハン ・ リッチー 著)という本では「ルーチン」という言葉を次のように使っています。 ―――――――――――――引用―――――――――――――  静的なメモリは通常の宣言にstaticということばを付けて指定される。そこで次の二つのルーチンと二つの変数が、一つのファイルにコンパイルされると、  static char buf[BUFSIZE]; /* ungetch 用のバッファ */  static int bufp = 0; /* buf 中の次の空き位置 */  int getch(void) { ... }  void ungetch(int c) { ... } 他のルーチンから buf と bufp へのアクセスは不可能となる。これらは、同じプログラムの他のファイル中の同じ名前とは衝突しない。 ―――――――――――――引用ここまで―――――――――

関連するQ&A

  • Macでは初めてのプログラミング

    Macでは初めてのプログラミング 最近、Windows 7からMac OS X 10.6.4にメインのマシンを変えました。 Windowsでは、主にDelphiを使っていましたが、初心者の域を出ませんでした。 時計や、スケージュール管理、文字拡大ソフト、ビンゴ抽選ソフトなど。 Macを触っていて是非ともMacでプログラミングしたいと思います。 Xcordをインストールしました。ある人がCでコンソールアプリケーションをたくさん作った方がいい、と何かで知りました。そこで、工業高校で買った「はじめてのC」(改訂第3版[ANSI C対応)椋田實・著(技術評論社・平成5年)が参考になるのでは? と思いました。 この本でまずXcord上でコンソールアプリを学習したいと思いますが、如何でしょうか? 一番、大事にしたいのは「基礎を固めたい」、という事、「作りたいソフトを作れるようになりたい」という事です。 皆様はどのように思われますか? また、他の言語でも「これはどうか」という言語があれば教えて頂きたいです。 よろしくお願い致します。

    • ベストアンサー
    • Mac
  • C言語の上級者を目指したい。

     就職活動でソフト会社へ面接に行きました。 金融関係のプログラムをつくっている会社です。 そのとき社長さんから聞いた話です。 「学校を出たばかりの人にプログラムを書かせると100万口座の処理に3日もかかってしまうが、プロが書いたものは10分で処理できる。」 ポインタをしっかり勉強しておいて欲しいとの話でした。  結局、その会社は断りましたが自信をなくしてしまいました。 残りの1年はCをどのように勉強していけば良いでしょうか。 アドバイスをお願いします。  いまの私のレベルは基本情報処理技術者試験をC言語で合格しています。 勉強した本は下記の通りです。 (1) やさしいC ソフトバンク (2) 明解C言語入門 ソフトバンク (3) らくらく突破C言語 技術評論社 (4) 合格サポートC言語 一橋出版 (5) ポインタの極意 ソフトバンク (6) C言語によるアルゴリズムとデータ構造 ソフトバンク   ただし、(1)~(4)はサンプルコードを入力し演習問題も自力で解いてますが  (5)、(6)は一通り読んだだけです。

  • サービスルーチンの実行の流れ

    (c)ある処理を実行中に割込が発生してから、対応するサービスルーチンを実行し、元の処理に復帰するまでの一般的な処理の流れを説明せよ。 (1)プログラムの実行 (2)割り込み要求 (3)状態の退避 プロセッサは入出力装置の応答を待たずに実行中のプログラムをいったん停止して、他のプログラムを実行する。 (4)割り込み処理 元のプログラムに入出力動作が指定されると、OSに処理を依頼する。OSは入出力動作を起動し、他のプログラムに制御を渡す。 (5)状態の復元 入出力装置からの動作完了割り込みがあったとき状態を復元 (6)プログラムの再開 OSは入出力処理を実行後、元のプログラムの実行を再開する。 と6段階のフローにして考えてみました。合っていますでしょうか?

  • H8マイコン アセンブラ言語の乱数ルーチンについて

    H8マイコンでアセンブラ言語を使用しております。 アセンブラ言語で、ランダムに分岐するようにしたいのですが、乱数ルーチンをどのように作ればよいかわかりません。 下記は現在のメインプログラムです。ポート4の4の状態を調べ、真ならHYOJIに分岐するようにし、真でないならSTARTに戻るという風にしています。 START: MOV.B @P4DR,R0L MOV.B R0L,@SW_D MOV.B @SW_D,R0H BTST #4,R0H BEQ HYOJI JMP @START 5行目のBEQから乱数ルーチンにひとまず飛んで、そこからさらにランダムに選ばれた分岐に飛ぶというようにしたいです。 乱数ルーチンは現在時刻などから値を取得し、それからランダムな値を作ったりするのでしょうか? どなたかご協力お願いいたします。 ちなみに、下記は自分が参考にしている本です。 H8マイコン入門 堀桂太郎著 東京電機大学出版局発行

  • C言語について。

    ここでいうC言語のモジュールとは、関数の事でしょうか?教えていただけると嬉しいです。以下の文章です。 C言語のプログラムは、通常いくつかの関数によって構成されています。この関数とは、1つの処理単位を表すものでモジュールともいいます。

  • 情報処理技術者試験は本当にC89?

    情報処理技術者試験でのC言語の規格はC89とされています。 しかし、 int *p; p=(int *)malloc(sizeof(int)); のように,mallocの返り値をキャストしている問題文が過去にあります。一方、Wikipediaのmallocで調べてもC89のようなANSI規格ではキャストすべきでないとあり、あるサイトには「このキャストはC++との互換性のため」とも書かれています。初心者が受験する際に混乱します。 情報処理技術者試験でのC言語の規格は本当にC89なのでしょうか。「C++のことを気にしないとC言語が勉強できない」と誤解を与えるのでは。

  • どなたか知りませんでしょうか

    本を探しているのですが 技術評論社出版の ”C言語 文字列操作 ファイル入出力 完全制覇” という本を探しています 都内でもし売っている書店・古本屋がありましたら 教えていただけませんでしょうか お願い致します

  • 空白や改行の意味

    JavaScriptは全くの素人で、自分が使いたい効果を持つものを、本から引用して使っています。時々、文字は打ち間違ってないのに、機能しない、改行をせずに1行にしたらちゃんと機能した、という事があります。空白、改行には結構重い意味があるのでしょうか。あと、素人にお勧めの、JavaScriptの参考書があれば教えて下さい。技術評論社のリファレンス、例文活用辞典は持っています。 すぐ、補足やお礼できませんが、よろしくお願いします。

  • アトメルマイコンのSPI通信ISRルーチン書き方

    現在、ATxmega128A1Uのマイコンのプログラムを作成しています。プログラム内でSPI通信のSPIFポートでデータの送受信を行わせている箇所があります。 https://github.com/KenjiMaehara/raspberryPiTCPClient/blob/master/testSpi161101/M1601A_20161205/MainUnit/event.c 現在、SPIFポートでのデータ受信は無限ループ内で、 if(SPIF.STATUS & 0x80) このコードでデータ受信の有無を確認して、受信バッファの配列変数に確保するようなやり方を在しています。 しかし、このコードだと受信とデータの送信のタイミングなどを考慮した書き方をしないとけなくて、プログラムが複雑になってしまうような気がしていて、もう少しスッキリさせたいと思い、ATMELのC言語で受信時の割り込み時にSPIFの割り込み時にその割り込みの割り込みルーチンのISR関数に飛ぶようにして、そこで受信データを配列変数に入れていくようにすれば、コードがスッキリするんじゃないかと思っています。 そこで、ISRを描きたいのですが、ISR(SPIFの受信ベクタ名)このSPIFの受信ベクタ名をご教示いただきますよう、宜しくお願い致します。 以前、ATmega88PマイコンでUARTの受信をISRのルーチンで同様のことをやった際のコードを見返してみたら、 ISR(USART_RX_vect) このようなベクタ名を書いていたのですが、この”USART_RX_vect”この文字列がどこのプログラムとリンクしているのか、プロジェクト全体で検索をかけてみても見つかりませんでした。 このベクタ名はどこで確認すれば良いかも教えて頂けると幸いです。

  • fortranで、C言語のsizeof関数に相当するものが分からない

    データ型のバイト数を調べる際、C言語ではsizeof関数が用いられますが、Fortranではどうすればよいでしょうか? 一つの関数でなくとも、そのような機能をもつルーチンでも構いません。