• ベストアンサー

スクリプトとは?

スクリプトがよく分かりません。 下記ページには、「プログラムはプログラマの書いたソースコード(設計図)をもとにコンピュータの理解できる機械語に変換して実行されるが、そのプロセスを自動化して簡単に実行できるようにしたものをスクリプトという」とあるのですが、「機械語に変換」はコンパイルのことですよね? コンパイルという1ステップが省略される、ということなのでしょうか?ただ、コンピュータに実行させる以上、コンパイルはされるのですよね? そのへん、よく分かりません。よろしくお願いします。 http://e-words.jp/w/E382B9E382AFE383AAE38397E38388.html

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

ああ~~~。 いや、厳密には「スクリプト言語」なんてありませんよ。あるのは「プログラミング言語だけ」です。 元々、「スクリプト」って誰が言い出したのか……。一つは「流行り言葉」なんです。どーしても「プログラミング言語」と呼ぶと 「難しいんで、しゃちほこばって使わなければならない道具」 ってイメージがあるんで、スクリプト(記述)言語、って言い出しただけ、です。 一つはマーケット戦略ですよね。スクリプト言語、って言えば、まあ、英語文化圏では 「簡単そう」 と言うイメージが出来るんで流行りやすい、と。同時に「あまりマジメに使うことが出来ない劣った道具」と言うイメージも付くんですが。 まあ、「浸透させたい」って事があるんでしょうね。ユーザーが増えればデファクトスタンダードとして主導権も握れるでしょうし。 (まさにこれがNetScapeが「JavaScript」と名づけた理由でしょう) もう一つは。慣用的には昔はインタプリタ言語、に分類されたものがほぼスクリプト言語に当てはまりますが、技術的には色々とややこしいです。むしろ、「単純なインタプリタと呼べない」言語をスクリプトと呼ぶ傾向もありますね。 例えば、 >「機械語に変換」はコンパイルのことですよね? と書いてますが、「一気にまとめて機械語に変換」するのがコンパイル、「一行一行機械語に逐次変換」がコンパイル、だとされています。 ただ、これは結構古典的な言い方で、機械語じゃなくってバイトコードと呼ばれる「一段上のレイヤー」にコンパイルするものもあります。これを通称「バイトコンパイル」と言って、SUNのJavaで言うコンパイルはこれに近いです。 ところが、PerlやPython等のいわゆる「スクリプト言語」に分類されている言語なんかもこの「バイトコンパイル」はしてるんですよ。見た目1行1行づつ実行してるように見えますが、内部的には一旦バイトコンパイルして、新規同名ファイルとの差分比較をして裏でバイトコンパイルやってたり、とかなり複雑な事を行っています。 つまり、技術的には従来型の「コンパイル型」「インタプリタ型」と分類し辛い言語が増えてきた、と言うのも背景にはあるんでしょうね。そう言う「新勢力の言語」を敢えてスクリプト言語、と好んで呼ぶ言語設計者も多い模様です。

その他の回答 (3)

回答No.4

おっとしまった。 >「一行一行機械語に逐次変換」がコンパイル インタプリト、ですね。 タイポです。失礼致しました。

  • zwi
  • ベストアンサー率56% (730/1282)
回答No.2

インタプリタは機械語に翻訳すると言うからややこしいので、簡易なインタプリタは文字列を構文解析して命令ごとに用意されたサブルーチンを呼び出しているだけです。高度なインタプリタはもっと色々工夫してますけど。

回答No.1

コンパイルは機械語に変換するための方法の一つです。 これは、あるプログラムをまとめて機械語に変換して実行ファイルを作っておく作業です。 それに対して、スクリプト言語というのは実行する直前に機械語化して実行します。 インタプリタ方式とか呼ばれます。 コンパイルが本を翻訳すると考えるとインタプリタは同時通訳のようなものだと思っていただければいいと思います。

関連するQ&A

  • スクリプトとは?

    スクリプトの意味に関して疑問に思った点があります。 http://e-words.jp/w/E382B9E382AFE383AAE38397E38388.html 上記サイトにて >プログラムはコンピュータの理解できる機械語に変換して実行されるが ここまでは理解できるのですが >そのプロセスを自動化して簡単に実行できるようにしたものをスクリプトという。 コンピュータが理解できるのは機械語だけであると認識しておりましたので、この「自動化」の意味が理解できません。 機械語に変換せず、どのようにコンピュータに理解させているのでしょうか。 プログラマとしての経験が浅いのでなるべくわかりやすく説明していただけると助かります。

  • スクリプト

    webアプリ作成において、スクリプト言語が使う理由とは何でしょうか??機械語変換がなく、比較的簡単に作成出来るってくらいしか分からないので詳しく教えてもらえませんか?よろしくお願いします。

  • 群れのネットワーク

    『クラスタリング』による情報処理の際には、 野生生物達の群れが『無心』で獲物を刈る時の音頭取りと同じ様に、 『フラグ』とか『キャラクター』とかによる同期が取られているのでしょうか? http://e-words.jp/w/E382AFE383A9E382B9E382BFE383AAE383B3E382B0.html http://www.usj.co.jp/MHR/event/index.html

  • Perlスクリプトについて

    よく配布されている掲示板CGI等のPerlスクリプトの場合は、コンパイル(コンピュータ上で実行可能な形式に変換)とかできないのでしょうか?やっぱりC言語を勉強するしかないのかな?意味不明な質問でしたら申し訳ありません・・・。 今現在かなりスペックが低い自宅サーバ(Windowsサーバ)を利用していまして、少しでもサーバへの負荷を減らせることができればと試行錯誤しています。

    • ベストアンサー
    • Perl
  • ノンリニア編集はなぜオーサリングと言わないのか

    動画編集でオーサリングというとほぼDVD編集を指します。 ノンリニア編集をオーサリングというのは聞いたことがありません。 3年ぐらい前まではそれが両者の区分だと思っていたのですが、 こんな感じで奧が深いことを知りました。 http://e-words.jp/w/E382AAE383BCE382B5E383AAE383B3E382B0.html それでずっと考えているのですが、ビデオ編集も複数のマルチメディア要素を編集しています。 はっきりと言えば、ビデオ編集ソフトもDVDオーサリングソフトも全く同じ素材を使えるのです。 なぜ、ノンリニア編集はオーサリングとよばれないのでしょう。

  • ブログの「トラックバック機能」を使ったことありますか?

    ブログの「トラックバック機能」を使ったことありますか? 1.ある 2.ない 3.ブログをやったことがない 4.その他 私はブログをやっているのですが、トラックバック機能を使ったことがありません。皆さんはどうなのだろうと思い、質問しました。 トラックバックとは http://e-words.jp/w/E38388E383A9E38383E382AFE38390E38383E382AF.html 注.トラックバックのやり方を聞く質問ではありません。

  • シェルスクリプト

    よく回りの人が「シェルを叩く」と表現しているのですが 「シェルスクリプト」の中にJavaScriptは含まれているのでしょうか? とてもかけ離れてるイメージなのですが。 以下引用 複数の処理(コマンド)をまとめて行なうことのできるスクリプトである。スクリプトとは、機械語への変換作業を省略した簡易プログラムのことで、代表的なものにはPerlやVBScript、JavaScriptなどがある。また、シェルとは与えられた指示をOSの中核部分に伝えるソフトウェアのことである。

  • 不良セクタはOSを再インストールした場合、再度チェック行うほうが良いのでしょうか?

    http://e-words.jp/w/E4B88DE889AFE382BBE382AFE382BF.html 上記のサイトによると、不良セクタはOSによって場所を記録され、検出以降はアクセスされなくなる。となっているのですが、その記録はOSに記録されるんでしょうか?それともHDDに記録されるんでしょうか? 前者の場合はOSの再インストールを行った場合、最近チェックを行ったHDDであっても再度チェックを行ったほうが良いのでしょうか? 詳しい方が見たら可笑しな質問かもしれませんが宜しくお願いします。

  • 適切なシェルスクリプトの実行方法について

    シェルスクリプト内でi18nの再読み込みをするために . /etc/sysconfig/i18n と記述するとシェルスクリプト終了後にi18nの内容が反映されていません。 シェルスクリプト自体は ./shell1.sh という形で実行しています。 質問1:このようになるのは「./shell1.sh」と実行したスクリプトは 新たに作成された子プロセスによって実行される為、スクリプトが終了し 親プロセスに戻っても親自身は再読み込みを行なっていないから、という認識で間違いないでしょうか。 質問2:この現象の回避策として「source shell1.sh」とsourceコマンドで シェルスクリプトを実行する方法を試してみました。 実際に上手くいったのですが、「set -e」を使っているとエラー時に ログアウトしてしまうなどの弊害もありました。 他に適切な回避策に問題はないでしょうか。 ご存知のかた、お手数ですがご解答のほど宜しくお願い致します。

  • コーディング支援

    C,C++に限らず MicrosoftのVisualstudioのインテリセンスのような コーディング支援機能を搭載したソフトウェアを探しています。 知っているところではEclipseやStyleNoteなどがあります。 国内産でも海外産でもかまいません。 HTML,PHP,C,C++などなどなんでもOKです。 お願いします。 ※インテリセンスとは http://e-words.jp/w/E382A4E383B3E38386E383AAE382BBE383B3E382B9.html