スクリプト言語とは、プログラミング言語の一分類である。反対語はコンパイラ言語。
スクリプト言語とは、事前にコンパイルを必要とせず、実行時にソースコード(スクリプト)をインタプリタが解釈して実行するタイプのプログラミング言語である。
上記定義について冷静に考えると、処理系の問題であって言語仕様とは関係がない。つまりスクリプト言語と呼ばれている言語でも、コンパイラを開発して実行前にコンパイルするようにすればコンパイラ言語になってしまう。
だが、現実には一つのプログラミング言語の処理系にインタプリタとコンパイラ両方が存在することがまれであり、言語開発者が提供した処理系がリファレンス実装にしてデファクトスタンダードである場合が大半である。従って、スタンダードな処理系(たいていは言語開発者が提供している処理系)がインタプリタを用いるようになっているプログラミング言語をスクリプト言語と呼ぶということでだいたいあってると思われる。
通常:
スクリプト言語:
スクリプト言語は、上記のように"コンパイル"という手順を省いて書いたプログラムを直接実行できるようにした言語である。2の手順が必要な言語をコンパイル言語という。
手番だけで言うと、コンパイルをする人(コンパイラさんといいます)が一緒に実行までやれば、そのプログラムはコンパイル言語という理屈も通るんだけど、そういったことは滅多にないから”プログラムをそのまま実行できれば”スクリプト言語って認識でいいよ”!きっと
※ここから概要外
手番が少ないなんて、便利だね!スクリプト言語!
でも、不便な点もあって、手番が減っている=手番で細かく制御したいことを誰かにやられるってことなので、メモリ制御や実行速度など、精密な処理を制御したい場合はスクリプト言語では限界があるよ!
もっと好きに作りたい場合は、C言語みたいな根本的な言語にもレッツトライ!
※便宜上、プログラム、スクリプトといった実行に必要なテキストをすべて"プログラム"と表現
定義は言語仕様に関係しないと述べたが、言語仕様については以下のような傾向がある。
コンパイルというとソースコードをを機械語に変換することを指していたが、中間言語やJavascriptに変換することもコンパイルと呼ぶことが増えている。
TypescriptなどJavascriptに変換されてから実行されるプログラミング言語では、コンパイラを必要とするにも関わらず、分類はスクリプト言語になる。
最終的に実行するのが(その言語自身のインタプリタでなくても)スクリプトのインタプリタであればスクリプト言語ということになるだろうか。
スクリプト言語にできてコンパイラ言語にできない芸当が一つだけあって、スクリプト言語では、プログラムが自ら生成したスクリプトをプログラム自身の一部として呼び出して実行することが(言語仕様上禁止されていなければ)原理的には可能である。
コンパイラ言語でも生成したコードをコンパイルして実行することができるかもしれないが、メジャーな言語で実際にそのような機能を備えた言語はない。
もっとも、プログラミング言語にはリフレクションなどそういったことの代わりをする機能が備えられていることも多く、実際にこのようが技法が使われることはほとんどない。
一方で、スクリプト言語には逃れられない宿命がある。たとえば商用のクライアントアプリケーションを開発しようと思っても、ユーザーの環境にあるインタプリタがソースコートを読み込んで実行するという制度上、ソースコードをユーザーから隠すことはできないのだ。
コンパイラを開発すれば(リバースエンジニアリングを完全に防ぐことはできないが)、ある程度解決するかもしれないが、もちろんコンパイラを開発するなど労力を考えれば現実的でないのは明らかで、そもそもコンパイラを開発したらコンパイラ言語になってしまう。実際にはアプリケーションを自社のサーバー側に移すなどの対策をするのが現実的な対応になる。
以下にスクリプト言語とされる(ことの多い)プログラミング言語の一部を示す。
掲示板
4 ななしのよっしん
2018/02/17(土) 21:49:53 ID: RhseZ07DuM
書きやすく捨てやすい言語だよ
自動化して楽をするという本来の目的にあった道具
5 ななしのよっしん
2022/06/22(水) 18:30:08 ID: NttUtn4kGu
誰も無視すると思いますが、
最近はどのウェブサイトに入っても、
「cookieを全て受け入れますか?」の
ようないわゆるジャムみたいな
スクリプトしかありません。
端的に申しますと、スクリプトは
邪魔なのでスムースな処理のために
あまり入れて欲しくないのが
私の本音です。誰も無視すると思いますが。
6 ななしのよっしん
2022/06/22(水) 18:42:34 ID: 13FnvkFuwN
どこを縦読み?
急上昇ワード改
最終更新:2025/02/12(水) 11:00
最終更新:2025/02/12(水) 10:00
ウォッチリストに追加しました!
すでにウォッチリストに
入っています。
追加に失敗しました。
ほめた!
ほめるを取消しました。
ほめるに失敗しました。
ほめるの取消しに失敗しました。