スクリプト言語

スクリプト言語またはスクリプト言語とは、スクリプトをサポートするプログラミング言語のことです。スクリプトとは、通常、人が一度に一つずつ行うことができる手順を行う短いコンピュータプログラムのことです。これにより、仕事を自動化し、より簡単で信頼性の高いものにすることができます。スクリプト言語は、多くの場合、他の言語よりもシンプルで学習しやすい言語ですが、それでも多くのことを行うことができます。

スクリプトは、Web ブラウザや Microsoft Excel のように、別のプログラムの内部で実行されることがあります。また、コマンドラインインターフェイスから実行され、オペレーティングシステム (OS) への呼び出しを行うシェルである場合もあります。シェルは対話的なものとみなされ、ユーザーは何を入力するかを選択でき、シェルはコマンドに応答します。これらは、メインフレームやサーバー上のジョブを制御するために使用することができます。

スクリプト言語は特定の用途に縛られていなければならないという人もいます。また、より広い定義を用いて、コンパイルではなく解釈される汎用プログラミング言語を含める人もいます。汎用とは、さまざまなことにさまざまな方法で使用できることを意味します。いくつかの汎用言語(Javaなど)には、スクリプト化できるバリエーションがあります(Javascript)。何がスクリプト言語であり、何がスクリプト言語ではないのかについての特定のルールはありません。

例としては、以下のようなものがあります。

スクリプト言語の一般的な例。

  • UnixやUnixOSの制御言語としてのBashやCシェル
  • 他のアプリケーションの内部で動作するスクリプトを拡張言語と呼びます。Webブラウザでは、ECMAScript(JavaScript)やXULなど、いくつかの種類のスクリプトを許可しています。例えば、GoogleのホームページではJavaScriptが使われています。Microsoft OfficeではVisual Basic for Applicationsが使われています。Luaは拡張言語として意図的に作られた言語で、多くのアプリケーションで利用できます。
  • スクリプト拡張機能を持つゲームには、仮想世界「Second Life」や鉄道シミュレーター「Trainz Railroad」などがあります。Wesnothのような他のゲームでは、実際にプレイされている様々なゲームは、他のユーザーによって書かれたスクリプトです。
  • テキスト処理言語 sed と AWK
  • 汎用:PerlTclPythonは、様々なことに使える高レベルのプログラミング言語(マシンコードというよりは人間の言語に近い)です。これらの言語の中には、最初に特定の用途のために作られたものがあり、その後、汎用言語に変更されたものもあります。

特徴

ほとんどのスクリプト言語は、学習しやすいように作られています。多くの場合、ソースコード付きの短いファイルであったり、コマンドラインインターフェイスで一度に一つのコマンドを入力したりすることができますが、これには読み取り-評価-印刷ループ(REPL、言語シェル)があります。これは通常、単純なコマンドのセットを意味します。関数やメインはないかもしれませんが、最初から最後まで実行されます。何かがうまくいかない場合、プログラマーは素早く変更を加えて再度実行することができます。このため、スクリプト言語は、アイデアがうまくいくかどうかを確認するための迅速なプロトタイプを作るのに適しています。

例えば、ほとんどの人はJavaをスクリプト言語とは呼ばないでしょう。その理由は、その長い構文と、どのクラスがどのファイルに存在するかというルールがあるからです。Javaはソースコードを含むファイルを必要とし、ホストアプリケーションやアプリケーションランチャーによって使用されなければならない定義のみを含むことができます。(JavaはJavaScriptと同じではありません)。

しかし、Pythonは選択を可能にしています - 関数をファイルに入れたり、関数を使わずに実行したり、命令型プログラミングのスタイルを使ったり、対話的に使うこともできます(一度に一行ずつタイプして実行する)。

print ("Hello World")

この1行のPythonコードは「Hello World」と表示されます。

スクリプト言語は通常、ソースコードやバイトコードから解釈されます。しかし、コンピュータが理解できるように、何かがスクリプトを実行(解釈)しなければなりません。これがアプリケーション、つまりOS内の何かです。それがコンパイルされた言語で書かれ、マシンコードの形で配布されることが多い(人間には意味のない実行ファイルとして)。

スクリプト言語は、プログラムを使用する人、つまりエンドユーザーの開発者が使用するように設計されている場合があります。また、プログラマーが自分たちで使用するために作成する場合もあります。スクリプト言語は多くの場合、情報の隠蔽の一形態である抽象化を使用しています。これは、ユーザーが変数の型、データの保存、メモリ管理の詳細を知る必要がないことを意味します。

スクリプトは実行する人によって作られたり、変更されたりすることが多いですが、中には共有されたり、他の人に売られたりするものもあります。例えば、ゲームの大部分がスクリプト言語で書かれている場合。スクリプトは、他の人が使う前にコンパイルされることもあります。一度コンパイルされると、それはより速く実行され、それを実行するために別のアプリケーションを必要としません。そして、エンドユーザーがコードを変更するのを防ぐことができます。

歴史

初期のメインフレームコンピュータ(1950年代)は、対話型ではなく、バッチファイルに格納されたスクリプトを使用していました。IBMのジョブ・コントロール・ランゲージ(JCL)は、バッチ処理を制御するために使用されるスクリプト言語の一般的な例です。

最初の対話型シェルは、1960年代に最初のタイムシェアリングシステムのリモート操作を助けるために作られました。これらは、コンピュータプログラム内でコンピュータプログラムを実行することができるシェルスクリプト、シェルを使用していました。彼のTRAC言語のCalvin Mooersは、一般的にコマンド置換を発明したことでクレジットを与えられています。これは、コマンドがスクリプト(自己修正コード)を変更することができます。Multicsはこれらをアクティブ関数と呼んでいます。Louis Pouzinは1964年頃にCTSS用のRUNCOMと呼ばれる初期のコマンドスクリプト用プロセッサを書きました。MITのStuart Madnickは1966年にIBMのCP/CMS用のスクリプト言語を書きました。彼はもともとこのプロセッサをCOMMANDと呼び、後にEXECと名付けました。MulticsにはCTSS RUNCOMの分派が含まれており、RUNCOMとも呼ばれていました。EXECは最終的にEXEC 2とREXXに置き換えられた。

TclやLuaのような言語は、最初からどんなアプリケーションにも適用できる汎用スクリプト言語として作られていました。Visual Basic for Applications (VBA)のような他の言語は、多くのことを行うことができますが、特定のアプリケーションでのみ動作する必要がありました。アプリケーションごとに新しい言語を作るのではなく、汎用スクリプト言語を使うことは、通常、アプリケーションを書く人とスクリプトを書くユーザの両方にとってより簡単になります。

スクリプト言語の種類

のり付け言語

異なるアプリケーションを接続するためにスクリプトが使われることがあります。これをグルーコードと呼び、この目的のためだけに作られた言語がグルー言語です。パイプラインやシェルスクリプトはグルー言語の一般的な例です。しかし、多くのロジックがスクリプトファイルに書かれている場合は、「グルー」ではなく、単なる別のソフトウェアアプリケーションと考えた方が良いでしょう。

のり付き言語は、特に文章を書いたり、メンテナンスをするのに便利です。

  • コマンドシェル用のカスタムコマンド。
  • コンパイルされた言語で実装されている方が良いプログラムよりも、より小さなプログラムを作成することができます。
  • スプレッドシート、データベース、コンパイラなどのようなアプリケーションを実行する前や後に自動化された処理を行う"ラッパー"プログラム。
  • スクリプトは頻繁に変更される可能性があります。

のり言葉の例。

  • アップルスクリプト
  • アッキー
  • 日米同盟
  • ルア
  • m4
  • パール
  • Unix シェルスクリプト (ksh, csh, bash, sh など)
  • ブイビースクリプト
  • ワークフロー言語
  • ウィンドウズパワーシェル
  • エックスゼット

プログラマブル電卓のようなデバイスも、独自のグルー言語を持っている場合があります。例えば、Texas Instruments TI-92 は、工場出荷時のデフォルトではコマンドスクリプト言語でプログラムできます。TI-NSpire 電卓は Lua 言語を理解します。その他にも、何らかの Basic 言語や Lisp などの言語を理解するものもあります。

ジョブ制御言語とシェル

このグループは、IBMのJCLから始まって、システムプログラムの起動と動作制御に関係するジョブ制御の自動化から来ています。これらの言語のインタプリタの多くは、UnixシェルやMS-DOSのCOMMAND.COMようなコマンドラインインタプリタとしても機能します。AppleScriptのような他の言語は、スクリプトを構築するために英語のようなコマンドを使用することを提供しています。

GUIスクリプティング

グラフィカル・ユーザー・インターフェースを構築する際には、それをテストする方法が必要になります。特殊なスクリプト言語は、人間のユーザーと同じようにグラフィックウィンドウ、メニュー、ボタンなどを制御するために作られました。多くの場合、これらの言語を使用して、人間が行う動作(マウスを動かしたり、クリックしたり、キーボードで入力したりする動作)を正確にコピーすることができます。コピーされて記憶されるこのアクションまたはアクションのセットは、マクロと呼ばれています。

アプリケーション固有の言語

多くの大規模なアプリケーションには、そのアプリケーションのためだけに構築されたスクリプト言語が含まれています。アプリケーションはゲームであったり、ビジネスプログラムであったりします。このタイプの言語は、単一のアプリケーションのために作られています。これらの言語は汎用言語のように見えますが(例えば、CをモデルにしたQuakeCなど)、それらを区別するためのカスタム機能を持っています。

拡張/埋め込み可能な言語

アプリケーションを制御するという意味では、アプリケーション専用のスクリプト言語のようなものですが、この言語は多くのアプリケーションで使用することができます。

JavaScriptはWebブラウザ内でスクリプトを記述するための言語としてスタートしましたが、現在では汎用的なエンベッダブル言語となっています。Adobe製品などでも使用されています。

いくつかの言語は、時間の経過とともに、あるタイプから別のタイプへと移行していきます。

質問と回答

Q: スクリプト言語とは何ですか?


A: スクリプト言語とは、スクリプトをサポートするプログラミング言語のことです。

Q: スクリプトとは何ですか?


A: スクリプトは通常、人が一度に行うことができる手順を実行する短いコンピュータプログラムです。

Q:スクリプトはなぜ便利なのですか?


A:作業を自動化することで、より簡単に、より確実に行うことができます。

Q:スクリプト言語は習得が難しいのですか?


A:スクリプト言語は、多くの場合、他の言語よりもシンプルで、習得が容易ですが、それでも多くのことを行うことができます。

Q: スクリプトはどこで実行できるのですか?


A: スクリプトは、ウェブブラウザやMicrosoft Excelのように、他のプログラムの内部で実行することができます。

Q: スクリプト言語におけるシェルとは何ですか、またどのように使われるのですか?


A: コマンドラインインターフェイスから実行され、オペレーティングシステム(OS)に呼び出しを行うシェルである場合もあります。シェルは対話型とされ、ユーザーは何を入力するか選択でき、シェルはそのコマンドに応答します。これらは、メインフレームやサーバー上のジョブを制御するために使用することができます。

Q:汎用言語はスクリプト言語と言えるのでしょうか?


A:スクリプト言語は特定の用途に縛られなければならないと言う人もいます。また、より広い定義で、コンパイルではなく解釈される汎用のプログラミング言語も含まれます。汎用というのは、いろいろなものにいろいろな方法で使えるということです。一部の汎用言語(Javaなど)には、スクリプト化できるバリエーションがあります。何がスクリプト言語であり、何がスクリプト言語でないかという具体的な決まりはありません。

AlegsaOnline.com - 2020 / 2023 - License CC3