プログラム言語はどれも手順をコンピュータに伝えるための言葉ですが、得意な場面が違うので、作りたいものに合わせて選びます。
プログラム言語の種類と選び方
試験に出る7つの言語を、生まれた目的と主な使い道で整理します。
言語にはそれぞれ得意な場面があり、作りたいものに合わせて選びます。
7つのプログラム言語
C … OS を作るために生まれた言語。ハードウェアに近い細かな制御ができ、実行が速いので、OS や家電・機械に組み込むソフトウェア(組込みシステム)で使われる
C++ … C を土台に、データとそれを扱う手続をひとまとまりの部品にする考え方(オブジェクト指向)を加えた言語。C の速さを保ったまま大きなソフトウェアを作れる
Java … オブジェクト指向の言語。プログラムは Java 仮想マシン(JVM)の上で動く。JVM が OS ごとに用意されているので、Windows でも Linux でも、OS ごとに作り直さずに同じプログラムを動かせる。企業の業務システムで広く使われる
Fortran … 数式を書きやすい、古くからある言語。天気予報のシミュレーションなどの科学技術計算で使われてきた
Python … 文法が簡潔で読みやすい言語。AI(機械学習)やデータ分析に使える部品(ライブラリ)が豊富にそろっている
JavaScript … Web ページに組み込んで、Web ブラウザの上で動かす言語。ページに動きを付ける(次の節)
R … 統計解析とグラフの作成のための言語。平均や相関を求め、分析の結果を図にする機能が最初からそろっている
言語には、書いたプログラム(ソースコード)を動かす方式の違いもあります。 コンパイラ方式は、実行する前にプログラム全体をコンピュータが直接実行できる機械語に翻訳(コンパイル)しておく方式で、C・C++・Fortran が主にこの方式です。 インタプリタ方式は、実行しながら1行ずつ解釈して動かす方式で、Python・R・JavaScript が主にこの方式です。前もってコンパイルしておく手間がないので、書いてすぐに試せます。
どの言語が上ということはなく、作るものの場面に合う言語を選びます。
JavaScript ── ブラウザで動く言語
JavaScript は、Web ページの中身を書く HTML と一緒に Web サーバからブラウザへ届き、Web ブラウザの上で動きます。 ボタンを押したら表示が切り替わる、入力欄の誤りを送信する前にその場で知らせる、といったページの動きを作るのが主な役目です。
JavaScript はページと一緒にブラウザへ届き、ブラウザの上で動いてページに動きを付けます。
JavaScript を動かす仕組みは、ブラウザに最初から組み込まれています。ブラウザは届いたプログラムをその場で解釈して実行するので、書いたらすぐにブラウザで動きを確かめられます。 ブラウザのほかに、Web サーバの側で JavaScript を動かす実行環境もあります。
名前が似ていますが、JavaScript と Java は別々に作られた別の言語です。文法も、動く場所も違います(Java は Java 仮想マシンの上、JavaScript は主にブラウザの上)。
ある通販サイトで、注文画面の郵便番号の欄に数字以外が入力されたら、送信ボタンを押す前に、画面の上でその場で注意を表示したいと考えています。 この動きをページに組み込むのに使う言語として、最も適切なのはどれですか。
× 数式を書きやすく、科学技術計算で使われてきた言語です。Web ページに組み込んでブラウザで動かすものではありません。
× 統計解析とグラフの作成のための言語です。ブラウザの画面に動きを付ける役目ではありません。
○ 正解 JavaScriptです。
ページと一緒にブラウザへ届き、ブラウザの上で動くので、サーバへ送る前に、入力の誤りを画面の上で知らせることができます。
× OS や組込みシステムのように、ハードウェアに近い制御が要る場面で使う言語です。Web ページに組み込んで動かすものではありません。
コーディング標準とプログラムの構造
チームでプログラムを書くと、人によって書き方がばらばらになります。そこで、書き方の決まりを先に決めておきます。これがコーディング標準です。 目的は、だれが書いても読みやすく、直しやすいプログラムにすることです。ほかの人が書いた部分でもすぐに読めるので、まちがいを見つけやすくなり、あとから機能を直すとき(保守)の手間も減ります。
コーディング標準で決めること
字下げ(インデンテーション) … if や繰返しの中の行を、行頭から何文字ずらすか。ずらす幅をそろえると、どこからどこまでが中身か一目で分かる
ネストの深さ … if の中に if を入れるような入れ子(ネスト)を、何段まで許すか。深くなるほど条件を追いきれなくなるので、上限を決める
命名規則 … 変数や関数の名前の付け方。何を表すか分かる名前にする、単語の区切り方をそろえる、など
次の2つは、同じ処理です。左は字下げがなく、名前も意味が読めません。右は字下げと名前をそろえたものです。
字下げも命名もばらばら: if (a が 1000 以上) a ← a × 0.9 endif コーディング標準どおり: if (price が 1000 以上) price ← price × 0.9 endif
コーディング標準は、プログラムの動きを変えるものではありません。速くしたり機能を増やしたりする決まりではなく、人が読んで直しやすくするための決まりです。
プログラムの組み立て方にも型があります。大きな処理を、意味のあるまとまりごとの部品(モジュール)に分けることをモジュール分割といいます。 全体の流れを書いた部分をメインルーチン、メインルーチンから呼び出されて、ひとまとまりの処理をする部分をサブルーチンといいます。
全体の流れはメインルーチンに書き、ひとまとまりの処理はサブルーチンに分けます。
分けておくと、部品ごとに作ってテストでき、同じ処理を何度も呼び出して使い回せます。直すときも、関係する部品だけを見れば済みます。
ライブラリ・API・WebAPI
よく使う処理をあらかじめ部品として作り、ほかのプログラムから呼び出して使えるようにまとめたものをライブラリといいます。 並べ替えや日付の計算、グラフの描画などを自分で一から書かずに、外部のライブラリを呼び出せば、短い時間で、確かめられた部品を使ってプログラムを作れます。 Python が AI やデータ分析で選ばれるのも、そのためのライブラリが豊富だからです。
API(Application Programming Interface)は、あるソフトウェアやサービスの機能を、別のプログラムから呼び出して使うための窓口(呼び出し方の決まり)です。 その呼び出しを、インターネットを通じて Web の仕組み(HTTP)で行うものをWebAPI といいます。 地図、天気、翻訳などのサービスの多くが WebAPI を公開しています。
WebAPI で取り寄せたほかのサービスの地図や天気を、自分のページの中で混ぜて見せる。これがマッシュアップです。
上の図の飲食店のページは、自社で用意したのは店の紹介だけで、地図と天気はそれぞれのサービスから WebAPI で取り寄せています。 このように、ほかの会社がインターネット上で提供している機能や情報を取り寄せ、自分のページの中で混ぜ合わせて、元のどれとも違う新しいページやサービスに仕立てることをマッシュアップ(mash up=混ぜ合わせる)といいます。 WebAPI で呼び出した他社の機能を組み合わせて、新しいものを作るところが要点です。 企業どうしが API を公開し合って新しいサービスを生み出す仕組み(API エコノミー)は、イノベーション戦略で扱います。
プログラムをほとんど書かずにアプリを作る方法もあります。ノーコードは、プログラムを書かずに、画面の上で部品を並べたり設定を選んだりするだけでアプリや業務の仕組みを作る方法です。 ローコードは、大部分を画面の操作で作り、足りないところだけ少しプログラムを書く方法です。 どちらも、プログラムの専門家でない業務の担当者が、自分の仕事に合う仕組みを素早く作れるようにします。
海外向けの通販サイトで、商品の説明文を、閲覧している人の国の言葉に翻訳して表示したいと考えています。 翻訳の機能を一から作らずに実現する方法として、最も適切なのはどれですか。
× 読みやすく直しやすいプログラムにするための決まりです。翻訳の機能そのものは、自分で書かなければならないままです。
○ 正解 翻訳サービスが公開している WebAPI に説明文を送り、返ってきた訳文をページに表示するです。
他社がすでに作って公開している機能を、インターネットを通じて呼び出して使います。自社の商品ページと他社の翻訳の機能を組み合わせて新しいページにしているので、マッシュアップの例でもあります。
× プログラムの組み立て方の工夫で、翻訳する処理は結局自分で作ることになります。
× 言語を変えても、翻訳の機能を自分で作ることに変わりはありません。Fortran は科学技術計算で使われてきた言語で、Web ページの表示に使うものでもありません。
まとめ
この回で持ち帰ること
1. 言語は目的で選ぶ。C=OS・組込み、C++=C+オブジェクト指向、Java=JVM の上で OS を選ばず動く、Fortran=科学技術計算、Python=AI・データ分析、JavaScript=ブラウザで動く、R=統計解析
2. JavaScript はページと一緒にブラウザへ届き、ブラウザがその場で解釈・実行してページに動きを付ける。Java とは別々に作られた別の言語
3. コーディング標準(字下げ・ネストの深さ・命名規則)は、だれが書いても読みやすく直しやすくするための決まり
4. モジュール分割=全体の流れのメインルーチンと、ひとまとまりの処理のサブルーチンに分ける
5. ライブラリ=呼び出して使う部品の集まり。API=機能を呼び出す窓口、WebAPI=それをインターネット経由で。他社が提供する機能や情報を WebAPI で取り寄せて混ぜ合わせ、新しいページやサービスにするのがマッシュアップ
6. ノーコード=プログラムを書かずに作る、ローコード=少しだけ書いて作る
この節で解ける公開問題
令和4〜8年度の公開問題のうち、この節の知識で解ける問題は次の2問です。
プログラム言語
WebAPI
同じ分野の過去問を続けて解く(アルゴリズムとプログラミング 17問) →
教科書の一覧(現行の試験の順)教科書の一覧(新しい試験の順)過去問
Udemy の ITパスポート講座を、受講者数・★評価・口コミで比べたページです(広告を含みます)。
出典:IPA「ITパスポート試験 シラバス Ver6.5」、ECMA International「ECMA-262 ECMAScript Language Specification」、 The R Project for Statistical Computing。練習問題は当サイトが説明のために作ったものです。

