• ベストアンサー

cobol サブルーチンのlink

cobol言語プログラミングでの質問です。 サブルーチンで 【ダイナミックLINK】と【スターティックLINK】というのがあるようですが、どのような違いがあるのでしょうか?今、私の認識は以下の通りなのですが正しいでしょうか??→例えば、ダイナミックはサブルーチンを修正し、コンパイル完了するとメインをコンパイルしなくてもサブルーチンの修正が反映される。スターテックはサブルーチンを修正し、コンパイル完了してもメインをコンパイル完了するまではサブルーチンの修正が反映されない。どうでしょうか????

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

ちょっと惜しいです。 スタティックリンクは、メインルーチンとサブルーチンが一体化されてリンクされて1つのモジュールになっています。サブルーチンを修正&コンパイルしたら、メインルーチンと再リンクが必要です。 ダイナミックリンクは、メインルーチンとサブルーチンが別々にリンクされそれぞれ独立したモジュールになっています。サブルーチンを修正&コンパイルしたら、サブルーチンの再リンクが必要ですが、メインルーチンを再リンクする必要はありません。 多くのメインルーチンで使われているサブルーチンを修正した場合、スタティックリンクだと多くのメインルーチンの再リンクが必要ですが、ダイナミックリンクだと不要です。

hoholo
質問者

お礼

早々の回答ありがとうございます!! 補足の解説頂きありがとうございます。 これで今度自分が質問されたら教えてあげるることが出来ます!! さっそく仕事に役立てます!!

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

ダイナミックリンクは、実行時にリンクされるもので、 例えば、DLLによる関数呼び出しの様なイメージです。 スタティックリンクは、コンパイル時にリンクされます。 コンパイルして1つのプログラムとして動作するので 質問文のイメージでだいたい合っていると思います。

関連するQ&A

  • ダイナミックリンクとスタティックリンクについて

    現在、コボル言語を使用してプログラム開発を行っております。 コンパイルしたロードモジュールがダイナミックリンクかスタティックリンクかとの質問をされているのですが、そもそもダイナミックリンクとスタティックリンクとはどういうことですか?教えてください。 よろしくお願いします。

  • C・JAVA・COBOL どれを学べばよいですか?

    プログラミングの勉強を始めようと思います。 夜間等のスクールに通って勉強していきたいのですが、調べたらC・JAVA・COBOLと3つプログラミング言語コースがありました。 どれを学ぶのが将来的に使える?有意義なのでしょうか? 3つの違いや・それぞれを学ぶことによってどのようなことができるようになるか分かりません。 また、2つ3つを学ぶ必要があるのでしょうか? よろしくお願いします。

  • VisualBasicで外サブってできるんですか?

    プログラミングについてですが VBのプログラミングの方法として外部サブルーチンは作れるのでしょうか? 例えば、ある値をメインのプログラムから別のプログラムに投げ 処理した結果をメインのプログラムに投げ返すといった処理が出来ないのでしょうか? COBOLでいう外部サブルーチンのような考えです。(以前COBOLをやっていたので・・・) こういったプログラミング方法がVBでもできるのでしょうか?

  • gfortranによるサブルーチンの実行

    初めて投稿させていただきます。 MacOS X 10.5上でgfortranを使用しているのですが、サブルーチンが実行できなくて困っています。メインプログラム(main.f90)とサブルーチン(fast.f90)を同一フォルダ内に置き、ターミナル上でコマンド $ gfortran main.f90 によってコンパイルを実行したところ、 Undefined symbols: "_fast_", referenced from: _MAIN__ in ccz2x6RV.o _MAIN__ in ccz2x6RV.o ld: symbol(s) not found というメッセージが出てコンパイルが失敗してしまいます。サブルーチンが認識されていないということは分かるのですが、それ以上のことはさっぱり分かりません。ご助力願います。 なお、プログラムの内容は高速フーリエ変換です。また、サブルーチンを用いないプログラムに関しては既に正常に動作することを確認しています。

  • MinGWでのリンク

    Widows上で、MinGwを使用してC言語でプログラミングをしようとしています。 test.c aaa.c の二つをコンパイルして、あとでldでリンクをしようとしています。 コンパイルは gcc -c test.c aaa.c で問題なくコンパイルができたのですが、リンクをしようとして ld -o test.exe aaa.o test.o -lc とすると、 ld: cannot find -lc と表示されて、リンクがうまくいきません。通常の(?)gccではこれでできると思うのですが(経験があるわけではなく、単にググっただけですが。。。)どこが間違っているのでしょうか。 OS:WinXP SP2 gcc version 3.4.2 (mingw-special) よろしくお願いいたします。

  • PL/Iについて教えてください

    簡単にいうとCOBOLとPL/Iの違いってなんですか? IBMが開発したものだとものでCOBOLやfortranのいいとこどりをしたような言語という認識があるのです。 人によっと認識がまちまちでcobolのソースだったとう人もいれば全く別ものという人もあり。 実際どうなの?というのが質問です。 初心者ですが、よろしくお願いします。

  • プログラミング言語の違いを教えてください!

    こんにちわ。 ただ今就職活動中の者です。 大学ではC++の基礎を勉強しましたが色々あるプログラミング言語の違いがよく理解できていません。 プログラミング言語はCOBOL、JAVA、C言語、visual basic、perlなど、本当に様々な言語がありますが、それらの言語について詳しく教えていただけませんでしょうか? (それぞれはどういった分野のシステムの開発に向いていて、どのような弱点があるなど)お手数ですが、よろしくお願いします!

  • CとFortranのコードを併用する方法

    昔からあったと思いますが、最近CとFortranを併用することを考えています。片方の言語で関数とかサブルーチンを作っておいてコンパイルしてオブジェクトをだけを作成し、もう片方の言語でそれを呼び出してコンパイル時にリンクして使用するという風に考えています。コンパイラの組み合わせが何でもいいとは思えないのですが、どのようにするものでしょうか。あるいはコンパイラ以外のツールが必要だとか。コンパイラは両言語ともGNU, intelなど提供元をそろえる必要があるとか、そういうことになるのでしょうか。よろしくお願いします。

  • 【C++】静的リンクと動的リンクの違い

    静的リンクと動的リンクの違いについて教えてください。 ググって、wikiにて確認したところ、 動的リンクは、実行時にプログラムの結合を行う。 静的リンクは、コンパイル直後の実行ファイル生成時に、ライブラリ等を全てリンクし、必要なコードが全て揃った実行ファイルを生成する。 というのはわかりました。 それを踏まえて、  (1)-(1)libファイルで静的リンクさせるケース   メソッドやプロパティのインデックスというかインタフェース仕様のみ書かれている。   そして、そのインデックスを元にコンパイルチェックを行っている。  (1)-(2)objファイルで静的リンクさせるケース   objには、.cppと、.h に書かれている処理のうち、そのソース本体(そのクラス自身のモノとして持っている処理)のプロパティやメソッドのことが機械語で書かれている。   プロパティやメソッドが書かれているため、当然インタフェース仕様もわかる。 であろうと捉えていますが、この認識で大雑把には合っていますでしょうか? また、DLLを使う場合、動的リンクとは呼ばれているものの、 「DLLでは、objに加え、必要なリンクの情報まで持っている」と思われるので、 結局、リンカによるリンク実行時に、インタフェースで不整合が起きていないかはチェックされているという認識なのですが、合っていますでしょうか?  (だとすると、なぜ、ある意味、DLLを使っていても静的リンクなのかなと感じ、動的リンクと呼ぶことに不自然さを感じます) 宜しくお願いいたします。 .

  • スクリプトタイプ/サーバーサイドとクライアントサイド

     こんにちは。現在プログラミングについて調べているのですが、以下について確認したいので教えてください。 *スクリプトタイプのプログラミング言語とは何か(ユーザーがわざわざコンパイルする必要がない、ということでいいのでしょうか?) *サーバーサイドプログラミングとクライアントサイドプログラミングの違い、また両者の代表的な言語  よろしくお願いいたします。

専門家に質問してみよう