プログラミングと擬似言語
プログラミング言語は、コンピュータに処理の手順を指示するための言語です。HTMLやXMLのようなマークアップ言語は、プログラムの手順ではなくデータの構造を表すための言語で、役割が異なります。
プログラミング言語の役割と代表的な種類、マークアップ言語との違いを理解し、IPAが定める擬似言語の基本的な記述形式(変数・代入・条件分岐・繰り返し)を読み解けるようになります。
擬似言語の問題は、ITパスポート試験のテクノロジ系で最も配点の大きい分野の一つです。プログラミング経験がなくても、記法のルールさえ覚えれば処理の流れを追えるようになります。落ち着いて一行ずつ処理をたどる練習を積んでおきましょう。
プログラミング言語の役割と種類
コンピュータに処理を実行させるためには、人間が理解できる言葉ではなく、コンピュータが理解できる命令の形で指示を与える必要があります。この指示を記述するための人工的な言語がプログラミング言語です。
プログラミング言語には多くの種類があり、それぞれ得意な用途があります。例えばWebサイトの表示に使われるJavaScript、データ分析や人工知能の分野で広く使われるPython、大規模な業務システムの開発に使われるJava、統計処理に使われるRなどが代表的です。このほかCやC++、Fortranといった言語も、シラバスの用語例に挙がっています。これらの言語で書かれたプログラム(ソースコード)は、そのままではコンピュータが直接実行できないため、コンパイラやインタプリタと呼ばれるソフトウェアによって、コンピュータが理解できる機械語に変換されてから実行されます。
コンパイラは、ソースコード全体を一度にまとめて機械語に変換してから実行する方式で、実行速度が速いという特徴があります。インタプリタは、ソースコードを1行ずつ読み取りながら、その都度機械語に変換して実行する方式で、変換と実行を同時に進めるため、修正しながらすぐに動作を確認しやすいという特徴があります。
プログラムを書くときは、誰が読んでも分かりやすいように書き方のルールをそろえておくと、後から見直したり他の人が手直ししたりしやすくなります。このルールをコーディング標準と呼び、字下げ(インデンテーション)の幅や、変数名の付け方(命名規則)、処理をどこまで細かく分けるか(ネストの深さ、モジュール分割)などを定めます。また、よく使う処理を自分で一から書かずに済むように、あらかじめ用意された部品を呼び出すこともあります。この部品の集まりをライブラリ、外部のプログラムから機能を呼び出すための窓口をAPI(Application Programming Interface)、それをインターネット経由で使えるようにしたものをWebAPIと呼びます。近年は、プログラムのコードをほとんど書かずにアプリを作れるローコード・ノーコードという開発の仕方も広がっています。
マークアップ言語とデータの表現
プログラミング言語が「処理の手順」を書くための言語であるのに対して、「データそのものの形」を書くための言語もあります。その代表がマークアップ言語です。
マークアップ言語は、文章やデータにタグと呼ばれる目印を付けて、その部分が何を表しているかを示す言語です。代表的なものがHTML(Hyper Text Markup Language)で、Webページの見出しや段落、画像の配置などを指定するために使われます。例えば <h1>見出し</h1> と書けば、「見出し」という文字列が大見出しであることをブラウザに伝えられます。
もう一つの代表がXML(Extensible Markup Language)です。HTMLがWebページの見た目を表すために使われるのに対して、XMLはアプリケーション間でデータをやり取りするために、データの意味や構造を自由な形で表現できるように作られています。両者はどちらもタグを使う点は共通していますが、HTMLは決められたタグの意味に沿ってページを表示するための言語であり、XMLはタグの名前を自分で決めて、データの構造を表すための言語であるという点が違います。なお、HTMLやXMLのもとになった、タグを使ってデータを記述する考え方の起源としてSGMLという言語がシラバスに挙げられています。
マークアップ言語とは別に、プログラム間でデータをやり取りするために広く使われているのがJSON(JavaScript Object Notation)です。JSONはタグではなく、{"名前": "山田", "年齢": 30} のように、項目名と値を組にした形でデータを表現します。JavaScriptから扱いやすい書き方として生まれましたが、現在では特定の言語に限らず、Webサービス同士がデータをやり取りする際の標準的な形式として広く使われています。
マークアップ言語とプログラミング言語は、どちらも「決まったルールで書く」という点は共通していますが、プログラミング言語が処理の手順(順次・選択・繰り返し)を表すのに対し、マークアップ言語やJSONはデータそのものの形を表すという点で役割が違います。試験では、HTML・XML・JSONという名前と、それぞれが何のための言語かを結びつけて覚えておくと得点につながります。
擬似言語の基本(変数・条件分岐・繰り返し)
IPAが定める擬似言語は、実際のプログラミング言語ではなく、アルゴリズムの流れを誰にでも読み取れる形で表現するための共通の記法です。特定の言語の知識がなくても、決まったルールさえ覚えれば処理の流れを追うことができます。
処理の中で使う値を入れておく箱のことを変数と呼び、擬似言語では 整数型: x のように、変数の型(整数型、実数型、文字列型、論理型など)と名前を宣言してから使います。変数に値を入れる操作を代入と呼び、x ← 5 のように矢印(←)を使って表現します。これは「変数xに5を代入する」という意味です。
条件によって処理を分岐させるには、if文を使います。次の例を1行ずつ見てみましょう。
if (点数 ≧ 60) ← 点数が60以上かどうかを判断する
『合格』と表示する ← 条件が真(はい)のときに実行する処理
else ← 条件が偽(いいえ)だったときはここから
『不合格』と表示する ← 条件が偽のときに実行する処理
endif ← if文の終わりを示す繰り返し処理には、条件を満たしている間処理を続けるwhile文があります。
x ← 0 ← 変数xに0を代入する
i ← 1 ← 変数iに1を代入する
while (i ≦ 3) ← iが3以下である間、繰り返す
x ← x + i ← xにiを加えた値を、新しいxとする
i ← i + 1 ← iを1増やす
endwhile ← 繰り返しの終わりこの処理を1周ずつ手で追うと、i=1のときx=0+1=1、i=2のときx=1+2=3、i=3のときx=3+3=6となり、iが4になった時点で条件(i≦3)が偽になるので繰り返しを終え、最終的なxは6になります。回数があらかじめ決まっている繰り返しにはfor文も使われ、for (iを1から3まで1ずつ増やす) のように書きます。試験では、変数の値を紙に書き出しながら1周ずつ確認する練習が、正解への近道になります。
この単元の確認問題
答えを見る前に、まず自分の言葉で答えてみてください。言葉にできないところが、そのまま本試験で止まるところです。
Q. ソースコードを1行ずつ読み取りながら、その都度機械語に変換して実行する方式を何と呼びますか。
A. インタプリタです。
ソースコード全体を先にまとめて変換するコンパイラとは異なり、1行ずつ変換と実行を同時に進める方式だからです。
Q. HTMLとXMLの役割の違いを一言で説明してください。
A. HTMLはWebページの表示のためにあらかじめ決められたタグを使う言語で、XMLはタグの名前を自分で決めてデータの構造を表すための言語です。
どちらもタグを使う点は共通していますが、HTMLは表示の指定、XMLはデータの意味や構造の表現という、目的が異なる言語だからです。
Q. 変数xに0、変数iに1を代入したあと、iが3以下である間「xにiを加えてiを1増やす」処理を繰り返すと、最終的なxの値はいくつになりますか。
A. 6です。
i=1のときx=0+1=1、i=2のときx=1+2=3、i=3のときx=3+3=6と、1周ごとに加算していき、iが4になった時点で条件を満たさなくなり繰り返しが終わるためです。
プログラミングと擬似言語は、読んで分かることと、本番で点になることが別です。点にするための材料はこちらにまとめてあります。
- この単元の問題 10問(どこをどう間違えたかまで解説)
- この単元のひっかけ(本試験がどう引っかけてくるか)
- この単元をそのままITパスポート専用AIチューターに質問できます
- 間違えた問題だけを自動で拾い直す復習リスト
「第7章 基礎理論とアルゴリズム」の他の単元
この単元を、手を動かして確かめる
ITパスポートAIチューターでは、いま読んだ単元の四択問題をその場で解いて、 どこで間違えたかまで解説付きで確かめられます。 わからないところはITパスポート専用のAIチューターに訊けます。
この単元をアプリで開く 登録は無料。メールアドレスだけで始められます。