okkyの日記: 動的言語
日記 by
okky
あれ??と思って Wikipedia を引いてみた。
http://ja.wikipedia.org/wiki/%E5%8B%95%E7%9A%84%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E
…ますます意味がわからなくなった…
えーっとなんだって? 本来コンパイル時に行うことを、実行時に行う ???
コードのパースとかを実行時に行うってのは動的言語なのか?? え?そんなの Lisp とか BASIC だってそうじゃないのか??
それよりも前の段階を実行時にやるのか?? …あ、わかった。
実行時に、コードを書くんだ
…
えーっとギャグだと思った方。半分正解で半分間違いです。動的言語の最大の特徴は、「コードをその場で組み立てて、実行する機能」だったりします。それだけじゃないですが、これは必須。
もっとも簡単な例は eval。Lispはもちろん、bash でさえおなじみのあれです。
プログラマ自身は「プログラムを組み立てるプログラム」を組みます。で、適宜組み立てたコードを eval で「まるで最初からそういう風に組んでいたコードであったかのように」実行します。で、結果を受け取って、処理を先に進めます。
…
この一見単純そうなことを実装するために、どれほど大騒ぎが起こるのか想像できる人はこれが大変面倒くさいことであることが判るでしょう。
判らない人は「ふーん」でいいです。言語インターフェース的には「面倒なことをふーんで済ませるようにする」のが目的なわけですから。
動的言語 More ログイン