質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

8回答

8675閲覧

スクリプト言語とそうじゃない言語の違い

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

3クリップ

投稿2015/09/10 15:15

ここ2つの違いが分かりません。

何をもってスクリプト言語と言っているのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答8

0

ご存知かとは思いますが、スクリプト言語スクリプトとは、元々英語で「台本・脚本」の意味です。

そして、恐らく最初のスクリプト言語はいわゆるシェル・スクリプトで、同じコマンドを何度も手入力する手間を軽減するために、それまで手入力していたコマンド列をそのままテキストファイルに記載しておくことで自動実行を可能にしたというものです。

ちょっとまとまった処理をスクリプト化すると、すぐに「繰り返し/条件分岐/関数化による再利用」などの機能が必要になるため、それがいわゆるプログラミング言語として発展して行きました。

スクリプト言語の一番の特徴は、何と言っても実行したいコマンドをテキストファイルに記載したらそのまま実行できるという手軽さです。
文字列処理やちょっとした集計処理などを、ちゃっちゃと手早く片付けたいという要請から、awk や perl 、さらにはオブジェクト指向を取り入れた Ruby や Python など、実に様々な言語が次々と生み出されて来ました。
今では、テキストファイルに記載して手軽に実行できる軽量言語全般をスクリプト言語と呼んでいるようです。(参考)


<2015/09/11 03:40 追記>

既に皆様がご回答くださっていますが、スクリプト言語というジャンルに何が含まれるか、という分類はとても曖昧です。

良く、インタープリタコンパイラアセンブラというのもある)で言えば、「インタープリタ言語=スクリプト言語でそれ以外が…」みたいな説明をされることもありますが、
0. インタープリタとコンパイラの分類自体も結構「曖昧」です。
0. スクリプト言語か否か、という切り分け方と、インタープリタ型かコンパイラ型か、という切り分け方は「次元」が異なります。

  1. インタープリタとコンパイラの分類については、こちら をご一読ください。

インタープリタ方式、コンパイラ方式、中間方式、どれもプログラムの実行方式です。ときどき、インタープリタ言語、コンパイラ言語、などという分類がありますが、インタープリタでするかコンパイラでするかは、厳密にはプログラミング言語の属性ではありません。

これは元々プログラム言語そのものではなく、その言語の実行方式の違いを示す言葉でしたが、技術の進歩とともに明確な区別が難しくなって来ました。

  1. 次元が異なるというのは、分類する際の 着眼点 というか、基準となる属性が異なるということです。

この例えが分かりやすいかどうか自信がないですが…

生き物分類の仕方にも色々なものがありますが、

動物 or 植物
体の特徴を元に分類する仕方で学術的なものですが、ミドリムシ という両方の性質を合わせ持つものも存在します。

愛玩動物 かどうか:
いわゆるペットという、人と動物の関わり方の違いによる分類の仕方ですが、そもそも愛玩動物という表現自体が曖昧ですし、何をペットとするかも人それぞれですし お国柄 にもよるものなので、『(その地域では)一般にペットとして飼われることが多い』というザックリとした分類でしかありません。

「愛玩動物」という表現は、確かに国語辞典に載っていますし、日常的に使用するかどうかは疑問ですが全くの「死語」という訳でもありませんけれども、動物の分類の仕方としては極めて曖昧(学術的な分類法としては使えない)ですし、言葉の意味を厳密に定義しようとしても意味のないことです。

ですから、結論としては、

  • 一般に「スクリプト言語」に含められるものにはどのような言語があるか(シェルスクリプト、Ruby、Perl、etc.)
  • それら言語にはどんな「共通する特徴」があるか

などを大まかに知っておけば良く、それを突き詰めようとしてもあまり意味がないということです。

投稿2015/09/10 15:41

編集2015/09/10 19:11
pi-chan

総合スコア5936

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

スクリプト言語は、書いたテキストがそのまま解釈される言語です。
JavaScript、PHP、シェルスクリプトなどは、書いたテキストを実行エンジンが読み込んで動作させます。
Java、C、VisualBasicなど、一度コンパイルをして、jarやexeなどの別ファイルに変換し、これを実行エンジンが解釈して動作するものは、スクリプト言語ではありません。

投稿2015/09/10 15:20

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

一般論で言えば、「主な実行環境として明示的なコンパイル処理をしない処理系が用意されている言語」=「スクリプト言語」でいいと思います。

つまり、大半がインタープリタの処理系の言語ということで、かつ実行時に暗黙的にコンパイルされる言語も含みます。例えば、近年のブラウザ(少なくともChrome, IE, Firefox)上ではJavaScriptはコンパイルされて実行されますが、それでも「スクリプト言語」と呼ばれます。

しかしそれは言語を用意した団体や人が、同時に処理系も用意してそれが中心に使われるからに過ぎません。

実際には言語と処理系は別です。PHPをコンパイルしてEXEを作る事も出来ますし、C用のインタープリタも存在します。ですので本質的には、処理系で言語を分類しようとするのは無意味でしょう。

そもそも明確な定義のある言葉ではないので、そこに明確な定義を求めても明確な答えが出てくるはずも無く無意味だと思います。それはこの件に限らず世の中の多くの分類に言えることです。

投稿2015/09/11 15:33

編集2015/09/14 03:24
miu_ras

総合スコア902

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

厳密なことを調べた事はないのですが、要するに「アプリケーション上で、その動作をカスタマイズする為に利用する言語」のことだと思います。

たとえばシェル・スクリプトが分かりやすいですが、これはコマンド・シェルというアプリケーション上で動くスクリプト言語です。

言語的な実装の違いがどうこうではなくて、以下の違いに焦点を当てています。
・アプリケーションそのものを開発する為に利用する
・開発済みのアプリケーションで動作を定義する為に利用する

混乱するのは、Webアプリケーションのようにそれ自体がアプリケーション上で動作しているものを考えた場合でしょう。
Webアプリケーションはれっきとしたアプリケーションですが、それ自体は概ねスクリプト言語で書かれています。これはそもそもWebアプリケーションが、Webサーバ上のアプリケーション機能を前提に動作することに由来します。
視点を変えると「アプリケーションそのものを開発する為に利用する」に該当しますが、成り立ちを考えれば「開発済みのアプリケーションで動作を定義する為に利用する」方に該当します。

投稿2015/09/11 00:11

編集2015/09/11 00:29
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

公的規格とかで決まっているわけじゃない一般用語ですので人により意味はいろいろです。
一般には、「ソースプログラムファイルから実行ファイルを生成しないで実行する言語」でしょうか。
実際には、
1.コンパイルしてメモリ上に実行ファイルイメージを作って実行する
2.ソースプログラムを実行しやすい形式にメモリ上で変換してそれを解釈しながら実行する
3.ソースプログラムを直接解釈しながら実行する
などいろいろです。当然1が速く、3は遅いです。メジャーな物は1か2でしょうね。

1はファイルに書かないだけでコンパイラ言語と同じです。毎回コンパイルする時間がかかるだけ。
(インクルードするライブラリを何時読むかという違いもありますが)

動的型と静的型というのもありますが、これはスクリプト言語かどうかと直交概念ですね。

投稿2015/09/10 23:13

otn

総合スコア84555

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

私も過去、同じことを思い、Wikipediaなどを調べましたが、厳密な定義は存在しないと書いてあるところがほとんどでした。

基本的には、アプリケーション開発のための簡易的なプログラミング言語を指すらしく、
そこから転じて、インタプリタで動的型付けの言語がそう呼ばれることが多いそうです。

現在では、後者の意味合いで用いられる場合が多いとか。
なにせ厳密な定義が存在しない前者では、どれがスクリプト言語か、人の認識によって変わってしまう恐れがありますし。過去に、某掲示板サイトで、「◯◯(プログラミング言語)はスクリプトだろ」「いや、ちがうだろ」という議論を見たことがあります。

投稿2015/09/10 15:39

編集2015/09/10 15:47
shiolier

総合スコア1156

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ビルドしない言語を、スクリプト言語と言います。
なので大規模であっても、PHPはスクリプト言語。
会話の使い方の中で、実行するまで文法誤りがわからないって意味が含まれるケースも有ります。
また、ビルドしないから、実装直後に速攻で実行確認できるって意味も含まれる場合があります。

投稿2015/09/10 21:42

TetsujiMiwa

総合スコア1124

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

wikiにありますよ。

スクリプト言語

さほど明確な区分けはないですが、「俗に言う」スクリプト言語とは…

限定的な機能しかないが、簡単な記述で動かせる工夫のされた言語
かな。

例えばWindowsであれば、Visual C++はスクリプト言語ではなく、VBAはスクリプト言語である。
webサーバならCやJava(これは議論の余地あり)とJavaScriptの差。

というような理解でよいのではないでしょうか。

インタプリタならスクリプト言語、コンパイルならプログラム言語というのはちょっと違うような。

投稿2015/09/10 15:25

編集2015/09/10 15:28
Jake

総合スコア289

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問