• ベストアンサー

メインルーチンとサブルーチンについて。

すみません。メインルーチンは、どの言語でもどのプログラムでも必ずあるものなのでしょうか?ご教授頂けると幸いです。すみませんが。

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5088/13306)
回答No.18

> 例えば、excelの中には、マクロの保存や、名前をつけて保存などが、共通の処理を集めたプログラムという事でしょうか? そういった共通の処理はライブラリを利用している可能性が高いですね。

zasx1098
質問者

補足

それが、サブルーチンを集めた処理という事でしょうか?ご教授頂けると幸いです。すみません。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (17)

  • t_ohta
  • ベストアンサー率38% (5088/13306)
回答No.17

> ダイナミックリンクライブラリとは結局、例えばexcelなどの名前を付けて保存などの共通な処理を行うことでしょうか? 共通な処理を「行うこと」では無く、共通な処理(サブルーチン)を集めたプログラムです。 > ダイナミックリンクライブラリとは、アプリをインストールして、アプリを画面に表示させる処理などでしょうか? アプリで使う画面を表示させる機能もライブラリとして提供されていますね。

zasx1098
質問者

補足

例えば、excelの中には、マクロの保存や、名前をつけて保存などが、共通の処理を集めたプログラムという事でしょうか?ご教授頂けると幸いです。すみませんが。

全文を見る
すると、全ての回答が全文表示されます。
  • t_ohta
  • ベストアンサー率38% (5088/13306)
回答No.16

> で、それがコモンダイアログライブラリという事でしょうか? コモン(common:一般)ダイアログと言うくらいですから、一般的によく使われるダイアログ処理だけがいくつか集められたライブラリなので、コモンダイアログライブラリと名付けられています。 アプリケーションソフトから呼び出されてダイアログを表示し、ユーザーの選択に合わせた処理だけしてくれます。

zasx1098
質問者

お礼

ダイナミックリンクライブラリとは結局、例えばexcelなどの名前を付けて保存などの共通な処理を行うことでしょうか?ご教授頂けると幸いです。すみませんが。

zasx1098
質問者

補足

つまり、ダイナミックリンクライブラリとは、アプリをインストールして、アプリを画面に表示させる処理などでしょうか?ご教授頂けると幸いです。すみませんが。

全文を見る
すると、全ての回答が全文表示されます。
  • t_ohta
  • ベストアンサー率38% (5088/13306)
回答No.15

> 部分的な機能というのは、プログラムの一部が動くということでしょうか? 多くのアプリケーションで共通の処理と言う事です。

zasx1098
質問者

補足

で、それがコモンダイアログライブラリという事でしょうか?ご教授頂けると幸いです。すみませんが。

全文を見る
すると、全ての回答が全文表示されます。
  • t_ohta
  • ベストアンサー率38% (5088/13306)
回答No.14

> なぜ、ダイナミックリンクライブラリは、メインルーチンがないのでしょうか? 単独のアプリケーションとして動作するために作ったモノではなく、アプリケーションに対して部分的な機能を提供するためのモノだからです。

zasx1098
質問者

補足

部分的な機能というのは、プログラムの一部が動くということでしょうか?ご教授頂けると幸いです。すみませんが。

全文を見る
すると、全ての回答が全文表示されます。
  • t_ohta
  • ベストアンサー率38% (5088/13306)
回答No.13

> サブルーチンだけで構成されるダイナミックリンクライブラリとは結局何なのでしょうか?ご教授頂けると幸いです。すみませんが。例をあげていただけないでしょうか? ExcelやWord、ブラウザやメールソフト、Acrobat Reader等々でファイルを保存する時に表示されるダイアログはコモンダイアログライブラリという名前のダイナミックリンクライブラリを使って実現されています。 みんな同じダイアログなのは同じライブラリを利用しているからです。 ファイルを保存する機能を各アプリケーションの作成者がイチイチ作っていたら時間の無駄だから、OSに付属しているライブラリをアプリケーションから呼び出す(サブルーチンを呼ぶ)ことで作成の手間を省くことができています。 みんな求めている機能(結果)が同じだから共通で使えるライブラリとして用意しておいて使い回してるのです。

zasx1098
質問者

補足

なぜ、ダイナミックリンクライブラリは、メインルーチンがないのでしょうか?ご教授頂けると幸いです。すみませんが。

全文を見る
すると、全ての回答が全文表示されます。
  • t_ohta
  • ベストアンサー率38% (5088/13306)
回答No.12

> つまり、ダイナミックリンクライブラリとはBASIC言語やC言語などに組み込まれていると言うことでしょうか? 組み込まれているという表現は違いますね。 OSに付属しているモノもあれば、各言語に付属しているモノもありますし、SDK(Software Development Kit)として別途配布されているモノもあります。 > 後、ダイナミックリンクライブラリ単独では、存在できないということでしょうか? 単独で存在しますよ。 WindowsならCドライブのWindowsフォルダの中のSystem32フォルダとか開くと なんとか.dll と言うファイルが大量にあるはずです。 単独でアプリケーションとして実行できないだけです。

zasx1098
質問者

補足

サブルーチンだけで構成されるダイナミックリンクライブラリとは結局何なのでしょうか?ご教授頂けると幸いです。すみませんが。例をあげていただけないでしょうか?

全文を見る
すると、全ての回答が全文表示されます。
  • t_ohta
  • ベストアンサー率38% (5088/13306)
回答No.11

> コモンダイアログライブラリとは何でしょうか? Windowsの「名前を付けて保存」などで使われるダイアログの機能を一纏めにしたライブラリの名称です。 > 後、ソフトを作る度に同じ処理を皆が作っていたら効率が悪いのでとはどういう事でしょうか? プログラミングの世界では車輪の再発明は愚策とされています。(時と場合によるけど) 汎用的に使える処理は、その機能だけを抜き出して独立させておくことで使い回しができて開発効率が良くなります。 貴方の質問の本質であるサブルーチンと言うのは、何度も繰り返し行う処理をメインルーチンの中に何度も何度も書くのは効率が悪いから、サブルーチンとして独立させてメインルーチンから繰り返し呼び出すようにすることでプログラミングの効率を上げ、デバッグの効率を上げる事が出来ます。 更に、一つのプログラムの中だけではなく複数のプログラムで同じ処理が行われる場合は、ライブラリという形でサブルーチンだけを抜き出し集めたプログラムを作ることで、複数のプログラムの開発効率を上げる事が出来るのです。 > また、他のプログラムから利用できるようにしたモノとは、どういうことでしょうか? プログラムを作る際に全てフルスクラッチで作っていると効率が悪いので、便利な機能がまとめられたライブラリと言うモノを利用して作ります。 ライブラリは謂わばサブルーチンの集まりなので、それ自身では実行できないプログラムですから、他のプログラムの一部として組み込まれ利用されることで機能しますから、他のプログラムの一部として組み込んで利用できるように作られています。

zasx1098
質問者

補足

つまり、ダイナミックリンクライブラリとはBASIC言語やC言語などに組み込まれていると言うことでしょうか?後、ダイナミックリンクライブラリ単独では、存在できないということでしょうか? ご教授頂けると幸いです。すみませんが。

全文を見る
すると、全ての回答が全文表示されます。
  • t_ohta
  • ベストアンサー率38% (5088/13306)
回答No.10

> そのダイナミックリンクライブラリの例をご教授頂けると幸いです。 Windowsのアプリを使っていて、ファイルを保存する時に表示されるダイアログって大体どのソフトでも同じダイアログが表示されますよね。 あれはコモンダイアログライブラリという名前のダイナミックリンクライブラリを殆どのソフトが使っているから同じダイアログが表示されます。 ソフトを作る度に同じ処理を皆が作っていたら効率が悪いので、名前を付けてファイルを保存すると言う機能を一つのサブルーチンとしてまとめ、他のプログラムから利用できるようにしたモノがダイナミックリンクライブラリです。 コモンダイアログライブラリにはメインルーチンはありませんから、単独のソフトウェアとしては実行できません。

zasx1098
質問者

補足

コモンダイアログライブラリとは何でしょうか?後、ソフトを作る度に同じ処理を皆が作っていたら効率が悪いのでとはどういう事でしょうか?また、他のプログラムから利用できるようにしたモノとは、どういうことでしょうか?ご教授頂けると幸いです。すみません。

全文を見る
すると、全ての回答が全文表示されます。
  • t_ohta
  • ベストアンサー率38% (5088/13306)
回答No.9

> 部品ファイルとは何でしょうか? ダイナミックリンクライブラリのファイル

zasx1098
質問者

補足

そのダイナミックリンクライブラリの例をご教授頂けると幸いです。すみませんが。

全文を見る
すると、全ての回答が全文表示されます。
  • t_ohta
  • ベストアンサー率38% (5088/13306)
回答No.8

> アプリケーションから呼び出されるライブラリとは何でしょうか? ダイナミックリンクライブラリ

zasx1098
質問者

補足

少し調べてみたのですが、以下のリンクの https://wa3.i-3-i.info/word11024.html の部品ファイルとは何でしょうか?ご教授頂けると幸いです。すみませんが。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • メインルーチンについて。

    メインルーチンとは何でしょうか?メインルーチン単体で使う事はあるのでしょうか?ご教授下さい。すみませんが。サブルーチンがない場合は、どうなるのでしょうか?ご教授下さい。すみませんが。

  • ルーチンについて。

    例えば、ABCBCDというプログラムがあって、BCをサブルーチン化して、Eとおいて、AEEDとした時、AとDは、ただのルーチンというのでしょうか?それとも、メインルーチンと言ってもいいのでしょうか?教えていただけると幸いです。すみません。

  • ルーチンとライブラリについて。

    例えば、ABCBCDというプログラムがあって、BCをEというサブルーチンにしておいて、Aは、abcbcdというプログラムになっているので、Aは、メインルーチンといってもいいのでしょうか?Dも同様でしょうか?教えていただけると幸いです。すみません。

  • メインルーチンの変数をモジュールに渡す

    Perlの勉強をし始めの者なんで、恥ずかしい質問ですけど・・・ モジュールの使い方です。 以下のプログラムではTest_module.pmで定義した変数$testをメインルーチンでprintしています。 ***** メインルーチン *****  #perl /usr/bin/perl  use Test_module;  our $test=10;  print $Test_module::test; ***** Test_module.pm *****  package Test_module;  our $test=10;  1; これはちゃんと動いています。 ところが逆にメインルーチンで定義した変数$testをTest_module.pmに渡そうとすると、うまくいきません。 以下のプログラムをどう直せばいいのでしょうか。 ***** メインルーチン *****  #perl /usr/bin/perl  use Test_module;  our $test=10;  &Test_module::print_test(); ***** Test_module.pm *****  package Test_module;  sub print_test {  print $Main::test;  }  1;

    • ベストアンサー
    • Perl
  • メインルーチンとサブルーチンについて。

    これについてご教授下さい。例を示していただきたいです。後、以下のURL、はなぜ、メンルーチンしか使っていないのでしょうか?ご教授下さい。 Link: http://codepad.org/Oxfd5gz9

  • メインルーチンとサブルーチンについて。

    これについてご教授下さい。例を示していただきたいです。後、以下のURL、はなぜ、メンルーチンしか使っていないのでしょうか?ご教授下さい。 Link: http://codepad.org/Oxfd5gz9 で、#include<stdio.h> void sub_1(int i){ printf("%d\n",++i); } int main(void){ int i = 1; printf("%d\n",i); sub_1(i); printf("%d\n",i+2); return 0; これは、どう言う意味になるのでしょうか?ご教授下さい。すみませんが。 このURLからです。 https://sp.okwave.jp/qa/q9852335.html

  • ルーチンとライブラリについて。

    プログラムがあって、ABCBCDが、あってこのプログラム全体を、メインルーチン、BCをEとしてまとめたものを、サブルーチンで、AやDをルーチンとなっていますが、 状況によって(別プログラム)で 考えた時には、AやDがサブルーチンとなるプログラムは、どんなものでしょうか?教えていただけると助かります。すみません。意味不明でしたら、聞き返してください。教えていただけると助かります。

  • ルーチンについて。

    例えば、ABCBCDというプログラムがあって、BCをEというサブルーチンにしておいて、Aは、abcbcdというプログラムになっているので、Aは、ルーチンといってもいいのでしょうか?Dも同様でしょうか?教えていただけると幸いです。すみません。

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

    私は、C言語を勉強中のものですが、 「ルーチン」という言葉は具体的にどういう意味なのですか、 お教えください。 C言語では、「関数」と同義語でしょうか。 「新ANSI C言語辞典」(平林雅英 著、 技術評論社)の「ルーチン」の説明: 定められた処理をするためのプログラムのひとかたまり

  • ルーチンとプログラムについて。

    ルーチンとは、コード(Aプログラム、BプログラムCプログラム等)の集まりで、ライブラリは入れ物という解釈であっていますでしょうか?教えていただけると助かります。すみません。