スクリプトとアドリブアドリブができるインタプリタ

2016年09月21日

スクリプト言語

「アドリブ」について書くために、「スクリプト」という言葉を使ったが、プログラマーにとって「スクリプト」という言葉からは、「スクリプト言語」という言葉が最も連想しやすいものである。

自意識の高いプログラマーは、「スクリプト言語」というものをどこかで軽視しているふしがある。僕もそうだ。

つい先日、僕が仕事で作ったプログラムを、プログラマーではない人から、「あのスクリプト、ここでも応用できませんかね?」というようなことを言われ、内心ムッとした。
本人はまったく悪気がないのは分かっているのだが、しっかりとオブジェクト指向設計をして、排他処理(*1) もしっかりやって、メモリをできるだけ節約する設計にし、高速に処理するアルゴリズムをじっくり考えて作ったものを「スクリプト」と呼ばれると、なんだかゲンナリしてしまう。

自意識高い系のプログラマーが皆持っているであろうこの、「スクリプト言語」への変な感覚は何なんだろう?

*1 排他処理: 複数のプログラムが同じものを同時に変更しようとしておかしなことになるのを避ける処理。 

もしかすると僕が書いたプログラムを「スクリプト」と言ったそのプログラマーではないある人にとっては、ウィンドウが開くものは「プログラム」で、裏で走るものは「スクリプト」と思っているのかも知れない。

ここで「スクリプト言語」の定義を調べてみると、色々な考え方がある。
「比較的簡単な処理を行う言語」というのがだいたいのところのようだが、中にはインタプリタ言語と同義とするものもある。

インタプリタ言語とは、、、

プログラムには2種類ある。
良いプログラムと、悪いプログラムだ。

プログラムには2種類ある。
インタプリタ言語とコンパイル言語だ。

コンピューターがプログラム言語で書かれたプログラムを処理するとき、最終的には機械語で処理する必要がある。
つまり、人間にとって書きやすく、分かりやすい言語(高級言語)で書かれたプログラムは、そのままではコンピューターには処理できない。
高級言語を実行する際に、コンピューターが機械語に翻訳しながら処理するのがインタプリタ言語。
プログラムを走らせる前に機械語に翻訳してから実行するのがコンパイル言語。
当然のことながら、都度翻訳する手間がない分、コンパイル言語の方が速度は速い。
ただ、プログラムを書き換えた時には毎回機械語に翻訳する(これを"コンパイル"と呼ぶ)必要があるので、場合によっては面倒だ。

一般的には、簡単なプログラムはインタプリタ言語でやってしまうことが多い。
そこから、インタプリタ=スクリプトとなっているのかもしれない。

さて、結構な労力をかけて作ったプログラム(これはコンパイル言語で書いたものだった)を「スクリプト」と呼ばれて頭にくる理由について考えてみよう。
そもそも「スクリプト」とは「台本」のことである。コンピューターのプログラム的に言うなら、「手続きを書いた台本」。
僕が作ったプログラムは、動きとしてはひとつの手続きを行っているように見えるのかも知れないが、実際は単に手続きを書いたものではなく、他システムとの連携などを含めた"系"としてのもののはずであった。
言うなれば、「スクリプト」は一次元であるのに対し、僕が作ったプログラムはもう少し高い次元で表されるべきものであった。
それを「(一次元的な手続きを書いた)スクリプト」として扱われたことにムッとしたんだろう。僕はまだまだ未熟者だ。

そんな僕も、スクリプト言語でスクリプトを書くことはある。僕はそのときにできたものは「スクリプト」と呼ぶ。
別に差別しているわけではない。
「スクリプト」という言葉の定義があいまいなのが良くないのかも知れないが、ちゃんと使い分けてほしいものだ。

OLランキングで1位になりたい!賛同していただける方は下記をクリック!
にほんブログ村 OL日記ブログ ドジOLへ
myinnerasia at 08:09│Comments(0)コンピューター科学 

コメントする

名前
 
  絵文字
 
 
スクリプトとアドリブアドリブができるインタプリタ