スクリプト言語
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/12/28 17:28 UTC 版)
スクリプト言語の種類
ジョブ制御言語とシェル
スクリプト言語の一種は、ジョブ制御の自動化から生み出されたもので、システムプログラムの起動と制御を行う。そういう意味ではシェルの祖先としてIBMの Job Control Language(JCL、ジョブ制御言語)があるとも言える。この種の言語の処理系(インタプリタ)の多くは、UNIXのシェルやMS-DOSのCOMMAND.COM
といったコマンドラインインタプリタと呼ばれるものである。他にも英語のようなコマンドでスクリプトを書ける AppleScript などもある。macOS では、CocoaとAppleScript或いはJavaScript[1]を使ってアプリケーション全体を構築することもできる。
GUIスクリプト
GUIの出現により、コンピュータの制御のための特殊なスクリプト言語も生み出された。それは、ウィンドウ、メニュー、ボタンなどのシステムが生成したものとやり取りする言語であり、人間の手が行うことをシミュレーションする。これらの言語はユーザーが行うことを自動化し標準化するもので、一般にマクロ言語などと呼ばれる。
原理的にはGUIベースのコンピュータ上で動作する任意のアプリケーションを制御できるが、一般に特定のアプリケーションやオペレーティングシステムに対応してマクロ言語が存在する。しかし、中には画面上のピクセル配置からグラフィカルなオブジェクトを認識して操作する言語もあり、その場合はOSやアプリケーションに依存することなく操作可能である。
アプリケーション専用言語
大規模なアプリケーションプログラムの多くは、固有のスクリプト言語を備えており、そのアプリケーションのユーザーが必要に応じてそれを使う。同様に、コンピュータゲームシステムの多くに固有のスクリプト言語があり、NPCの振る舞いや環境のプログラミングに使われている。このような言語は1つのアプリケーションのためだけに設計されている。表面上は特定の汎用言語に似ているものもあるが(例えばQuakeにはC言語に良く似たQuakeCがある)、汎用言語にはない特有の機能を有していることが多い。Emacs Lisp は機能を完備したLISP言語の方言だが、Emacsの機能の拡張や変更に便利な特殊機能を数多く備えている。アプリケーション専用のスクリプト言語は、特定アプリケーションに特化したドメイン固有言語と見ることもできる。
Webブラウザ
Webブラウザは、ウェブページを表示するためのアプリケーションである。その操作を制御するための専用言語が開発されてきた。例えば、JavaScript、マイクロソフトのVBScript(Internet Explorer でのみ動作)、MozillaプロジェクトのXUL(Firefoxでのみ動作)、XMLコンテンツを新たな形式に変換して表示するためのXSLTなどがある。ユーザーの印象を良くして反応を引き出すためにXMLとJavaScriptの組合せを利用した技法が広く採用されるようになり、Ajaxという名前まで付けられるようになっている。
Webサーバ
HTTPリンクにおけるサーバ側では、アプリケーションサーバやCMSなどの動的コンテンツサーバでも、様々なスクリプティング技法を活用している。この領域でよく使われるのは、PHP、JSP、ASP などだが、他にも Ruby on Rails などが一部で人気を得ている。
テキスト処理言語
テキスト処理は古くからあるスクリプト言語の用途の1つである。UNIXのツールであるAWK、sed、grep 向けに書かれたスクリプトは、テキスト形式の設定ファイルやログファイルに関する処理を自動化するのに使われてきた。この分野では正規表現が重要である。テキスト処理用スクリプト言語では、正規表現を使って処理対象の構造を形式的に表現する。
Perlはもともと、テキスト処理ツールの限界を超えることを目的として開発されたが、現在ではより汎用的な言語に成長している。
汎用動的言語
Perlなどの言語はスクリプト言語として生まれたが、より広い用途に使えるプログラミング言語に成長していった。Perlとよく似た言語で、実行中に解釈され、メモリ管理機能があり、動的な言語は、それぞれ相互に似ていることから「スクリプト言語」と呼ばれることもある。しかし、実際にはアプリケーション本体の記述に使われることが多い言語もある。一般に、それらの言語の作者が自ら「スクリプト言語」と呼ぶことはない。
拡張/埋め込み型言語
アプリケーション専用のスクリプト言語の代替として、アプリケーションプログラムに埋め込める言語は、これまでいくつも設計されてきた。(C言語などを主に使う)アプリケーションプログラマが、そのアプリケーションを制御させるためにスクリプト言語用「フック」をプログラムに作りこむ。そのような言語はアプリケーション専用の拡張言語と同じ用途に使用されるが、別のアプリケーションとスクリプトについてのスキルを共有できるという利点がある。JavaScriptはウェブブラウザ内のスクリプト言語として生まれ、今もその用途が大半だが、ECMAScriptとして標準化されたことで、汎用の埋め込み用言語としても広まった。特にMozillaが実装したSpiderMonkeyは Yahoo! Widget Engine などいくつかの環境に埋め込まれている。ECMAScriptの実装(処理系)を埋め込んでいる他の例としては、アドビの製品であるAdobe Flash(ActionScript)やAdobe Acrobat(PDFファイルのスクリプティング用)がある。
Tclは拡張言語として生まれたが、Python、Perl、Ruby などと同じように汎用言語として使われることが多い。
複雑で用途が限定されたアプリケーションでは、通常のユーザインタフェースで提供可能な機能とは別に埋め込み型プログラミング言語を備え、ユーザーにさらなる制御手段を提供している。例えば、3DオーサリングツールMayaはMELというスクリプト言語を内蔵している。また、Blenderはその用途にPythonを採用している。
機能を頻繁に追加する場合や、色々試しては実行してみるような場合(例えば、ゲームエンジン)も、埋め込み型言語を利用している。開発中のプロトタイピングに威力を発揮し、プログラムの中核部を知らなくてもアプリケーションの機能をいじることができる。この用途のスクリプト言語としては、LuaやPythonが有名だが、他にもAngelScriptやSquirrelなどがある。
その他のスクリプト言語
- CFML
- Enterprise Generation Language
- Euphoria
- Falcon
- Ferite
- Fiona
- Groovy
- HSP
- HyperTalk
- LotusScript
- REXX
- Lingo
- Scheme
- SuperTalk
- Ichigojam script
- ^ “JavaScript for Automation Release Note” (HTML). Apple Inc.. 2014年9月4日閲覧。
- 1 スクリプト言語とは
- 2 スクリプト言語の概要
- 3 スクリプト言語の種類
- 4 脚注
固有名詞の分類
- スクリプト言語のページへのリンク