• ベストアンサー

ランタイム関数とは何ですか?

プログラミングの勉強をしているわけではありませんが、そういう記述に出くわしてしまい、明確な定義が見つからなくて困っています。 ランタイムとは実行時のことだと思うのですが、実行時の関数とは一体何でしょうか?実行時でない関数なんてあるのでしょうか?普通の関数と何が違うのでしょうか? 教えてください。お願いします。

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

  • ベストアンサー
  • hpsk
  • ベストアンサー率40% (48/119)
回答No.5

> ランタイムとは実行時のことだと思うのですが、実行時の関数とは一体何でしょうか? 一般には実行時に「定義される」関数のことを指すことが多いと思います. この意味では,#1の方がおっしゃっているような,DLLで定義されている「実行時に結合されるライブラリに含まれている関数」も(狭い意味で)はランタイム関数に含まれます. また,PerlやRuby,Lisp等の動的言語ではプログラムの実行中に関数を定義する(しなおす)こともできますが,こういうのもランタイム関数です.私は,この意味での使われ方を耳にすることが多いです.(マクロメディアの文章内でもこの意味で使っていると思われます) もう少し平たくいえば,「関数を呼び出すときまで,実際どこで定義された関数が呼ばれるかわからない」関数とも言えます. C言語等のプログラムを普通にコンパイル・リンクすると,関数名と関数本体の対応はコンパイル時に決定されてしまいますが,そういうものと比較して使われていると思えばよいでしょう. ユーザが定義したか,言語の処理系が提供しているかは基本的に関係ないですよ(#2でおっしゃっているのは単に「ライブラリ関数」ですね).

loiter
質問者

お礼

ドンピシャストライクです。 この場合は作成された関数名に対し、サーバーあるいはwebアプリケーションが、与えられたデータを元に状況に応じて関数本体を定義付けるものというふうに解釈いたしました。 納得です。文句なし!

その他の回答 (4)

  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.4

マクロメディアがどういうつもりで runtime functionsという言葉を使っているのかは、マクロメディアに聞かないとわからないと思いますよ。 少なくとも、検索する限りでは、マクロメディアのWEBサイトでランタイム関数という言葉は、このコーディングガイドラインというページ1カ所にしか現れていません。 ということは、指が滑ってランタイム関数と打ってしまったただけで、この文章に技術的一貫性を求めても意味がないということかも。

loiter
質問者

お礼

私のような素人にはこういうガイドラインを作成するプロの人がうっかり指を滑らせるということなど思い付きもしませんでした。 マクロメディアへの問い合わせも検討してみます。 どうもありがとうございました。

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

#2の補足のガイドライン中のランタイム関数とは、 ユーザーが定義した関数のことです。

loiter
質問者

お礼

やはりそうでしたか。あやうくとんでもない複雑な解釈へとはまり込んでしまうところでした。

loiter
質問者

補足

つまり組み込み関数のように言語仕様にあらかじめ用意されているものではなく、ソースコードの中に独自の処理手順を書き込むので、ソースコードが読み込まれることによって初めて生成され、実行時の間だけ有効で、プログラムが終了すると跡形もなく消え去ってしまうということからランタイム関数というふうに表現されているのかもしれないと思いました。 まあそういう意味ではDLLやコンパイラの中の関数についても同じことが言えるかもしれませんが・・・。

  • a-saitoh
  • ベストアンサー率30% (524/1722)
回答No.2

もともと明確な定義があるわけでもなく、草の根てきに勝手に使われている用語のようなのですが、、。 「ランタイムライブラリ関数」の略。つまり、ランタイムライブラリに含まれる関数のことでしょう。 つまり、ユーザーが作った関数ではなく、コンパイラに付属してくる関数のことだと思えば、当たっていると思います。

loiter
質問者

補足

ご回答ありがとうございます。 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)
回答No.1

例えば、DLLのような実行に動的に結合されるライブラリに含まれる関数とかそういうことだと思います。

loiter
質問者

お礼

ありがとうございます。 サブ関数のようなものですね。

関連するQ&A