LINEスタンプ制作代行サービス・LINEスタンプの作り方!

お電話でのお問い合わせ:03-6869-8600

stampfactory大百科事典

動的プログラミング言語

動的プログラミング言語()は、通常他の言語ではコンパイル時に行うことを実行時に行う高水準言語のクラスを指す計算機科学における用語である。動的言語()とも。実行時に行うこととは例えば、コードの追加やオブジェクトや定義の拡張や型システムの変更によるプログラムの拡張である。これらの動作は他の言語でも手間はかかるがエミュレート可能である。しかし、動的言語はそれらのための直接的ツールを提供する。動的言語と動的型付けは同じ概念ではないし、全ての動的言語が必ずしも動的型付き言語というわけではないが、多くの動的言語は動的型付き言語である。動的言語の定義は、「コンパイル」と「実行時」の区別だけでなく、「コード」と「データ」の区別も関わってくるため、非常にあいまいである。仮想機械や実行時コンパイラなど、機械語に何らかの抽象化を施し、機械語を実行時に生成する言語処理系は多い。一般に、ある言語が動的であるとは、その言語の能力を明確に表しているというよりも、動的な機能の使い易さを指しているといえる。動的プログラミングの概念を密接な関連のある機構がいくつか存在する。それらは必ずしも動的言語として必須とは言えないが、動的言語と呼ばれるものに広く採用されているのも確かである。とは、で導入された用語であり、S式と呼ばれるデータ構造で表現される命令列を実行するプロセスを指している。今日では、 と言えばテキストなど機械語以外のデータで表されたプログラムを実行する何らかの機構やプロセスを指す。多くの言語では(とは異なり)プログラムテキストを読むこととそれを内部表現に変換すること、さらには内部表現から実際の動作に変換することを区別しないため、新たなプログラムテキストの評価はそういった言語の一般的性質である。それらの言語で、プログラムの実行プロセスが に他ならない場合、これをインタプリタ言語と呼ぶ。とピーター・ドレイトンは、実行時に実行コードをロード可能な任意の言語は(たとえ、そのコードがDLLの機械語コードだとしても)、一種の 機能を備えていると言えるとした。彼らは高階関数が動的プログラミングの本質であるとし、「 は高階関数の代用品にすぎない」とした。動的言語では、オブジェクトシステムや型システムを実行時に変更できるのが一般的である。これはすなわち、実行時定義に従って新たなオブジェクトを生成したり、既存の型やオブジェクトの合成に基づいて新たなオブジェクトを生成することを意味する。また、継承関係や型の木構造の変更も指していて、既存の型の振る舞いも(特にメソッド呼び出しの観点で)それによって変化する。関数型プログラミングの概念は多くの動的言語に備わっている。これも LISP を起源としている。関数型プログラミングの概念の中でも、動的言語でよく使われる機能としてクロージャがある。クロージャは関数の新たなインスタンスを生成し、生成時点のコンテキストへのアクセスを保証する。簡単な例として、テキストでの単語検索を行う関数の生成を挙げる。ここで、内部で生成される関数には名前がなく、定義されたときに渡された codice_1 というパラメータを記憶している新たな関数が返される。クロージャは関数型プログラミングの中核的ツールのひとつであり、動的言語の多くはこの程度の関数型プログラミングをサポートしている。動的言語における別の機能として継続がある。継続は、再呼び出し可能な実行状態を表している。例えば、構文解析器が中間結果と継続を返し、後で再呼び出しされると、入力の構文解析を再開する。継続はクロージャなどのスコープと複雑に関連している。このため、継続を提供している動的言語は多くはない。イントロスペクションは多くの動的言語で見られ、自分自身の構造・コード・型・データなどを解析するプログラムによく使われる。これは総称型やポリモーフィズムの値について型を決定するのと似たようなものである。プログラムのコードをデータとして完全に解析可能な場合もあり、例えば LISP ではプログラムをS式として解析可能である。動的プログラミング言語の中には、コードのイントロスペクションと eval 機能を組み合わせてマクロと呼ばれる機能を提供するものもある。C言語やC++におけるマクロは、プログラム内の文字列を置換するサブセット的かつ静的な機能でしかない。これに対し動的言語では、マクロはコンパイラ内部へのアクセスを提供し、実行時にも完全なアクセスを提供する。従って、コードの最適化にも関わり、言語の文法や構文を変化させる能力を持っている。アセンブリ言語、C言語、C++、初期の Java、FORTRAN などは動的プログラミング言語ではない。

出典:wikipedia

LINEスタンプ制作に興味がある場合は、
下記よりスタンプファクトリーのホームページをご覧ください。