気の向くままに辿るIT/ICT/IoT
SCRIPTスクリプト

SCRIPT/スクリプト

ホーム前へ次へ
Script / スクリプトとは?

script/スクリプト

スクリプトとは

 scriptとは英語で台本、脚本を意味し、コンピュータの世界では転じて

「あらかじめ登録された一連の作業手順を書き記したファイル」

といった意味として使われています。

 コンピュータの世界では、記述された命令とデータから成る内容を逐一実行していくインタプリタという処理系を利用したインタプリタ言語や作成したプログラムをコンパイルし、コンピュータが理解できる機械語に変換することによって実行可能形式とするタイプ、異なるプラットフォーム上への移植性を高める為、各プラットフォームにVirtual Machine(VM/仮想機械)を仲介させ、言語自体は中間コードと呼ばれるプラットフォームに依存せず、VMが解釈可能なコードにコンパイルし、実行する際にVMが機械語にコンパイルするといったタイプもあります。

 スクリプトまたはスクリプト言語は、この中でも基本的にインタプリタ方式が多く

「あらかじめ登録された一連の作業手順を逐一解釈して実行するプログラムをファイルに記述した明示的に改めてコンパイルする必要のない手軽なプログラミング言語」

を指す事が多くなっています。

 例えば、Perl、Python、Ruby、awksedなどもスクリプトですし、UNIX/Linuxのコマンドライン入力機構の基本となるのはsh/bash/csh/tcsh/ksh/zsh...といったシェルですが、これらシェルもファイルに記述して実行することができ、このようにファイルに記述されたシェルプログラムもスクリプトであり、シェルスクリプトと呼ばれます。

 また、CGI/Common Gateway InterfaceとしてシェルやPerl、Python、Ruby、PHP等で書いたものはCGIスクリプトと呼ばれる事もあります。

 様々なscriptがありますが、scriptとしてファイルに記述するにあたって共通する代表的な点は、下記のように1行めに実行ファイルのパスを記述する点です。

#!/usr/bin/sh

 これは、ほぼ全てのUNIX/Linuxで使えると思われるBourne Shell(実行ファイル名:sh)の例で「ルート=>usr=>binとディレクトリを辿っていくとshという実行ファイルがあるよ」ということを示していてその先頭には[#]と[!]を続けて記述することになっていますが、これにより実行されたときに何で書かれたものとして処理をすればよいかがわかるようになっています。

 !は日本では感嘆符、エクスクラメーションマークなどと呼ばれることが多いですが、英語では、どうやら「ごう音・砲声・ズドン」といった大きな音という意味の"bang"を表す表記に用いられることがあるようでIT用語としては、このシャープと感嘆符から成る#!という組み合わせに至っては、sharp bang/sha-bang/hashbang/pound-bang/hash-exclam/hash-pling...etc.と様々な表現があり、中でもsharp bangの短縮系sha-bangとshellという単語のsheの部分が掛け言葉になっているのか転じてshebang/she-bang(シェバン・シェバング)と呼ばれることも多いようです。

 また、この場合のルートは英語ではネットワークの経路管理を行うrouter/ルータのrouteのことではなく、平方根のルート√同様の"root"、日本語では「根(ね/こん)」のことであり、UNIX/Linuxではファイルシステムにおけるルート及びディレクトリの区切りを1つのスラッシュで表現することになっています。

 scriptの概念はUNIX上で生まれたと言っても過言ではなくUNIXといえば基本は文字ベースの操作インタフェース(CUI/character User Interface)であることもあり、Windowsや(UNIX認定されたものではない他の)MacOSと異なり、コマンドライン上からスクリプトファイルを実行するという目的だけでなく、時には入出力としてリダイレクトしたり、引数を渡すということも当たり前に行われますし、更にスクリプトの多くは、ファイルに記述するだけでなく、ワンライナーと呼ばれるコマンドライン上で一行で簡潔に完結したコマンドとして書くこともできます。

ブラウザ用のスクリプト

 下記の簡易言語もスクリプトという名称が使われていますが、これらは本来のスクリプトとは別物で、Windows/Macにおけるブラウザ用という特定用途の為に開発されたものです。

 javascriptは、その有用性からIEにも採用されますが、Netscape社(後にブラウザを引き継いだMozilla)とMicrosoft社(Jscript)の独自拡張により結果的に一貫性が損なわれたことによって本来のjavascriptの存在の有用性も失われることとなることから、その後、欧州の機関に端を発するEcma Internationalによって『ECMAScript』として世界的に標準化が図られています。

 当初インタプリタ方式として普及したjavascriptは、高速化の観点からJIT(Just-In-Time/Just In Time)コンパイラを用いたコンパイル方式(後で改めてコンパイルするのではなく実行時に都度コンパイルする方式)も一部採用されています。

 更にはAjaxとして改めて活用されています。

ホーム前へ次へ