インタープリター
プログラミング言語において、プログラムコードに直接、働きかけて即、実行結果を得られる翻訳言語ツールをインタープリターと言います。インタープリターではBASICという言語が一世を風靡した時代があり、ビル・ゲイツ氏はBASICをパソコンへの移植にトップを切って成功し大富豪への道を開きました。
インタープリターとスクリプトとの違いやインタープリターと対比するコンパイラについての論評は他の記事に譲ります。
JavaScriptについて
Webアプリケーションの開発言語には、Java,JavaScript,C#,C++,PHP,Python,Rubyなどがあります。開発言語の利用率において、ソフトウェア開発プロジェクトのための共有ウェブサービスであるGitHub(ギットハブ)の発表では、JavaScriptが第一位を占めています。
BASICは先頭のBがBeginnerであったためか、初心者にも理解しやすいなどと喧伝されましたが、当初のBASICはブロック構造という考えがなく、GOTO文を多用し拡張性を考慮していないなどの不満が高まり、次第に利用率が低下しました。
対して、JavaScriptは多くの言語の優れたところを取り入れ、ここ数年、Webアプリケーションの開発としてクローズアップされています。
長年、多くの言語に親しんできましたが、JavaScriptによるプログラミングは少ないプログラムコードで制御や処理を実現できるという特長があります。
かなり昔のアセンブリ言語によるプログラムに比べると1/10おろか1/100のコンパクトサイズになっています。オブジェクト指向言語の処理系が多くの機能をライブラリに内包しているので、黎明期の言語に比べてプログラミングのしやすさが格段に向上しています。
JavaScriptによるプログラミングの準備
プログラミングを始めるに当たり、JavaScriptを選ぶのも一つの方法です。準備のための経費はゼロといってもよいでしょう。用意するものを以下に示します。
①テキストエディタを用意する。パソコンについているメモ帳で十分だが、大作のアプリ開発に備えフリーソフトGreenPadなどが推奨される。
②「設定」の「コンテンツの設定」からJavaScriptを有効にする。
Google Chrome以外では、JavaScriptを有効/無効にする方法 が参考になる。
③HTML5の仕様に則ったJavaScriptコードファイルを作成し、ファイル拡張子をhtmlにして保存する。
例えばSample.htmlを作成する。下に挙げたコード2例を含め、ブログや解説書に掲載されている動作確認済みのサンプルコードをコピー&ペーストする。
④エクスプローラーなどのファイル管理ツールで保存したファイルにカーソルを当て、JavaScriptプログラムを実行する。JavaScriptを有効にした場合、拡張子がhtmlであればJavaScriptが実行される。
⑤首尾よく実行になったら、少しずつ機能を強化するなど高級化を図る。
本格化への移行
サンプルコードを走らせるまでは容易に進むことができます。機能の高いアプリケーションを作成するには、多くの先達が発表している既存のプログラムコードに接することにつきます。
そのコードを入手して動作させましょう。その際、ファイルの保存文字コードに気を配ることが必要です。文字コードはShift_JISかUTF-8コードが多いです。シフトJISはアンダースコア(_)でUTFはハイフン(-)を使うことを知らなければなりません。
大作を開発するには機能の高いテキストエディタやプログラミング解説書の一読も欲しいところです。
サンプルコード
以下に等差数列の総和をJavaScriptで求めるコードです。等差数列の総和はn*(n+1)/2で求めることができますが、0~9までを10回加算して算出しています。求めた結果を合計値と計算値として表示します。
<html> <script type="text/javascript" charset="Shift_JIS"> var t = 0; // 合計値 for(i=0; i<=9; ++i){ t += i; document.write("I = "+i+" T = "+t+"<BR>"); } var w = 9 * 10 / 2; // t = n * (n + 1) / 2; document.write("合計値 = "+t+" 計算値 = "+w); </script> </html>
考察
10項の等差数列の総和は10回の繰り返し加算でも算出時間はかかりませんが、項数が100万にもなるとそれなりの時間がかかるので、n*(n+1)/2による算出が優れています。
単純な加算が重要な役割をする例を次項で示します。n回繰り返しによる算出方法は次のような場合に必須です。
規則性のあるデータの集まりを配列といいます。たとえば、10個の箱に入っているボールの合計を求めるには、10回の加算をします。前回のサンプルコードを改良し、配列の扱いをコードに反映させます。
10個の箱に入っているボールの数に規則性がないのならば、地道に加算することになります。
サンプルコード2
規則性のないところに、アルゴリズムは成立しません。愚直に配列要素の値を加えていきます。10個の箱のボール数を加算し、合計総数を表示するJavaScriptコードを示します。
<html> <script type="text/javascript"> var t = 0; // 合計値 var box=[3, 4, 1, 2, 1, 2, 4, 1, 3, 2]; for(i=0; i<=9; ++i){ t += box[i]; document.write("box["+i+"] = "+box[i]+" T = "+t+"<BR>"); } document.write("合計値 = "+t); </script> </html>
サンプル実行結果
おわりに
JavaScriptは言語仕様の制定などにおいて、全世界の技術者が協力して作っており、BASICの立ち上がり時とは趣を異にしています。デバッグの環境も整備されています。
JavaScriptなどのスクリプト(インタープリター)言語は、ソースコードが丸見えになるという問題点を残しているものの、アプリケーションの開発には極めて効率の良い言語であるといえるでしょう。