- ベストアンサー
ランタイム関数とは何ですか?
プログラミングの勉強をしているわけではありませんが、そういう記述に出くわしてしまい、明確な定義が見つからなくて困っています。 ランタイムとは実行時のことだと思うのですが、実行時の関数とは一体何でしょうか?実行時でない関数なんてあるのでしょうか?普通の関数と何が違うのでしょうか? 教えてください。お願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
> ランタイムとは実行時のことだと思うのですが、実行時の関数とは一体何でしょうか? 一般には実行時に「定義される」関数のことを指すことが多いと思います. この意味では,#1の方がおっしゃっているような,DLLで定義されている「実行時に結合されるライブラリに含まれている関数」も(狭い意味で)はランタイム関数に含まれます. また,PerlやRuby,Lisp等の動的言語ではプログラムの実行中に関数を定義する(しなおす)こともできますが,こういうのもランタイム関数です.私は,この意味での使われ方を耳にすることが多いです.(マクロメディアの文章内でもこの意味で使っていると思われます) もう少し平たくいえば,「関数を呼び出すときまで,実際どこで定義された関数が呼ばれるかわからない」関数とも言えます. C言語等のプログラムを普通にコンパイル・リンクすると,関数名と関数本体の対応はコンパイル時に決定されてしまいますが,そういうものと比較して使われていると思えばよいでしょう. ユーザが定義したか,言語の処理系が提供しているかは基本的に関係ないですよ(#2でおっしゃっているのは単に「ライブラリ関数」ですね).
その他の回答 (4)
- a-saitoh
- ベストアンサー率30% (524/1722)
マクロメディアがどういうつもりで runtime functionsという言葉を使っているのかは、マクロメディアに聞かないとわからないと思いますよ。 少なくとも、検索する限りでは、マクロメディアのWEBサイトでランタイム関数という言葉は、このコーディングガイドラインというページ1カ所にしか現れていません。 ということは、指が滑ってランタイム関数と打ってしまったただけで、この文章に技術的一貫性を求めても意味がないということかも。
お礼
私のような素人にはこういうガイドラインを作成するプロの人がうっかり指を滑らせるということなど思い付きもしませんでした。 マクロメディアへの問い合わせも検討してみます。 どうもありがとうございました。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
#2の補足のガイドライン中のランタイム関数とは、 ユーザーが定義した関数のことです。
お礼
やはりそうでしたか。あやうくとんでもない複雑な解釈へとはまり込んでしまうところでした。
補足
つまり組み込み関数のように言語仕様にあらかじめ用意されているものではなく、ソースコードの中に独自の処理手順を書き込むので、ソースコードが読み込まれることによって初めて生成され、実行時の間だけ有効で、プログラムが終了すると跡形もなく消え去ってしまうということからランタイム関数というふうに表現されているのかもしれないと思いました。 まあそういう意味ではDLLやコンパイラの中の関数についても同じことが言えるかもしれませんが・・・。
- a-saitoh
- ベストアンサー率30% (524/1722)
もともと明確な定義があるわけでもなく、草の根てきに勝手に使われている用語のようなのですが、、。 「ランタイムライブラリ関数」の略。つまり、ランタイムライブラリに含まれる関数のことでしょう。 つまり、ユーザーが作った関数ではなく、コンパイラに付属してくる関数のことだと思えば、当たっていると思います。
補足
ご回答ありがとうございます。 No.1の方とおおむね同じ趣旨のご回答と認識しております。 しかし問題の記述と照らし合わせるとどうもしっくり来ないところがあります。以下はその問題のページです。Macromedia(今はAdobeに買収された)のDreamweaverのマニュアルです。 http://livedocs.macromedia.com/dreamweaver/8_jp/using/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=40_usi10.htm この中でランタイム関数はあたかもユーザーが作成したものであるかのように記述されていますが、これは単に、コンパイラに付属してくるような一般的な関数に対して、ユーザーが独自に名前をつけたものと解釈していいのでしょうか?プログラミングのことは無知ゆえ、非常に混乱した、お粗末な疑問であるとは思いますが・・・。
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
例えば、DLLのような実行に動的に結合されるライブラリに含まれる関数とかそういうことだと思います。
お礼
ありがとうございます。 サブ関数のようなものですね。
お礼
ドンピシャストライクです。 この場合は作成された関数名に対し、サーバーあるいはwebアプリケーションが、与えられたデータを元に状況に応じて関数本体を定義付けるものというふうに解釈いたしました。 納得です。文句なし!