プログラミング言語
下の動画はこの節の解説ではありません。 解説動画の雰囲気を知っていただくための見本として、「AI・機械学習」の動画を再生します。
この節の解説動画はプレミアム限定です。プレミアムなら全科目・全節が見放題!
プレミアムで見る高水準言語で書かれたプログラムを、CPUはそのままでは理解できません。機械語に翻訳する必要があります。その翻訳を担うソフトウェアが言語プロセッサです。この節では、翻訳の方式として1行ずつ解釈するインタプリタと一括翻訳するコンパイラを比べ、両者が速度とデバッグのしやすさで正反対であることを確かめます。後半では、書いたプログラムが実際に動き出すまでの4段階を追いかけ、最後にノーコード・ローコードという近年の潮流に触れます。令和3年度にはコンパイラとリンカが、令和7年度にはローコードが出題されました。
簡単にいうと
人が書いた言葉を、機械が分かる言葉に直す——それが言語プロセッサ!翻訳前を「原始プログラム」、翻訳後を「目的プログラム」というよ。この2つの名前は、そのまま出題されるから押さえておこう。
① 言語プロセッサとは
言語プロセッサは、低水準言語や高水準言語で記述されたプログラムを機械語に変換(翻訳)するソフトウェアです。
② なぜ必要なのか
機械語以外のプログラミング言語で記述されたプログラムは、そのままでは実行することができません。
そこで、コンピュータ上で実行できるように、言語プロセッサを利用して機械語に変換する必要があります。
第1節で学んだとおり、CPUは0と1で記述された命令しか理解できません。人間が読める形で書いたプログラムは、必ずどこかで機械語に直さなければなりません。
③ 原始プログラムと目的プログラム
機械語に変換される前のプログラムを原始プログラム(ソースプログラム)といい、変換されたプログラムを目的プログラム(オブジェクトプログラム)といいます。
| 段階 | 名称 | 別名 |
|---|---|---|
| 変換前 | 原始プログラム | ソースプログラム |
具体例
プログラムが動くまでの全体像
第1節から本節までに学んだことを、1つの流れにまとめます。
| 段階 | 内容 | 学んだ節 |
|---|---|---|
| ① | アルゴリズムを考える | 第1節 |
| ② | プログラミング言語で書く(原始プログラム) | 第1〜4節 |
| ③ | 言語プロセッサが機械語に翻訳する(目的プログラム) | 本節 |
| ④ |

言語プロセッサとは(1/2)

言語プロセッサとは(2/2)
試験のポイント
簡単にいうと
1行ずつ訳すのがインタプリタ、まとめて訳すのがコンパイラ!この違いが、実行速度とデバッグのしやすさを正反対にするんだ。通訳と翻訳家の違い、と考えると分かりやすいよ。
① 3つの言語プロセッサ
| 分類 | 名称 | 内容 | 代表的なプログラミング言語 |
|---|---|---|---|
| 低水準言語プロセッサ | アセンブラ | アセンブラ言語で記述されたプログラムを機械語に翻訳するソフトウェア | アセンブラ言語 |
簡単にいうと
書いたプログラムが動き出すまでには4つの段階があるの。エディタ → コンパイラ → リンカ → ローダ。リンカとローダの役割の違いは、そのまま出題されるよ!
① 4つの手順
高水準言語で記述されたプログラム(原始プログラム)は、次の手順で実行されます。
| 順番 | 動き |
|---|---|
| ① | テキストエディタなどを使用して、プログラミング言語でプログラムを作成する。このプログラムを原始プログラム(ソースプログラム)という |
| ② | コンパイラが原始プログラムをコンパイル(翻訳)する。原始プログラムを翻訳して機械語にしたものを目的プログラム(オブジェクトプログラム)という |
簡単にいうと
最後は、いま話題の3つの用語!ビジュアルプログラミングは「積み木で作る」、ノーコードは「書かない」、ローコードは「少しだけ書く」。自由度と速さのバランスが、それぞれ違うんだ。
① ビジュアルプログラミング言語
ビジュアルプログラミング言語は、プログラムをテキストで記述するのではなく、視覚的なオブジェクトでプログラミングするプログラミング言語です。
グラフィカルプログラミング言語ともいいます。
有名なビジュアルプログラミング言語に、小学校教育に広く採用されているScratchがあります。
② 従来の言語との違い
| 従来の言語 | ビジュアルプログラミング言語 | |
|---|---|---|
動画・テキスト・過去問・AI添削まですべて網羅!
予備校代の1/10以下で、独学の不安をまるごと解決できます
| 目的プログラム |
| オブジェクトプログラム |
④ 名前の対応を押さえる
| 日本語 | 英語 |
|---|---|
| 原始プログラム | ソースプログラム(source=源) |
| 目的プログラム | オブジェクトプログラム(object=目的物) |
source(源)が変換前、object(目的物)が変換後——英語の意味から向きが導けます。
第2章で学んだオープンソースの「ソース」も、このソースプログラム(原始プログラム)のことです。
| 用語 | 意味 |
|---|---|
| オープンソース | 原始プログラムを公開すること |
設計図にあたる原始プログラムを公開する——第2章で学んだ内容が、ここでつながります。
⑤ 翻訳の流れ
| 順番 | 内容 |
|---|---|
| ① | 原始プログラム(人が書いたもの) |
| ② | 言語プロセッサによる変換 |
| ③ | 目的プログラム(機械語) |
| ④ | CPUが実行 |
⑥ 言語プロセッサの種類
言語プロセッサは、扱う言語によって分類されます。
| 分類 | 言語プロセッサ | 対象 |
|---|---|---|
| 低水準言語プロセッサ | アセンブラ | アセンブラ言語 |
| 高水準言語プロセッサ | インタプリタ | 高水準言語(1行ずつ解釈) |
| コンパイラ | 高水準言語(一括翻訳) |
次のテーマで、この3つを詳しく見ていきます。
⑦ 「アセンブラ」の2つの意味(再確認)
第1節でも触れましたが、改めて整理します。
| 意味 | 指すもの |
|---|---|
| 言語としてのアセンブラ | ADD、SUBなどで書く低水準言語 |
| 言語プロセッサとしてのアセンブラ | それを機械語に翻訳するソフトウェア |
文脈で読み分ける必要があります。この節で扱うのは、後者(ソフトウェアとしてのアセンブラ)です。
⑧ 第2章とのつながり
第2章で学んだソフトウェアの体系で、言語プロセッサは広義のOS(基本ソフトウェア)に含まれていました。
| 大分類 | 小分類 | 内訳 |
|---|---|---|
| システムソフトウェア | 基本ソフトウェア(広義のOS) | 制御プログラム/言語プロセッサ/サービスプログラム |
「広義のOSには言語プロセッサが含まれる」という第2章の論点が、ここで具体的な姿を現します。
⑨ なぜ「プロセッサ」というのか
processor は「処理するもの」という意味です。第1章で学んだCPU(中央演算処理装置)も英語ではprocessorですが、こちらはハードウェアです。
| 用語 | 種類 |
|---|---|
| プロセッサ(CPU) | ハードウェア |
| 言語プロセッサ | ソフトウェア |
名前が似ていますが別物です。言語プロセッサは、言語を処理するソフトウェアを指します。
| 第1章 |
この章全体が、この4段階を説明していたことになります。
ソースプログラムが手に入るかどうか
第2章で学んだオープンソースの話と結びつけます。
| 配布のされ方 | 手に入るもの | できること |
|---|---|---|
| 一般の市販ソフト | 目的プログラムのみ | 使うだけ |
| オープンソース | 原始プログラムも | 中身を確かめる、改変する |
なぜ原始プログラムがないと改変できないのか
| 原始プログラム | 目的プログラム | |
|---|---|---|
| 読めるか | 人が読める | 0と1の羅列で読めない |
| 直せるか | 直せる | 事実上直せない |
翻訳は一方通行です。目的プログラムから原始プログラムを完全に復元することはできません。
| 例え | 内容 |
|---|---|
| 料理 | レシピから料理は作れるが、料理からレシピは復元できない |
この非対称性が、ソフトウェアの世界の構造を決めています。
| 結果 | 内容 |
|---|---|
| ベンダに依存する | 原始プログラムがなければ、そのベンダにしか直せない |
| オープンソースの価値 | 自社で確かめられ、直せる |
第2章で学んだベンダロックイン(特定のベンダに依存して抜け出せなくなること)の根底にも、この構造があります。
中小企業への助言
システムを外部に発注するとき、原始プログラムの扱いを契約で決めておくことが重要です。
| 取り決め | 内容 |
|---|---|
| 原始プログラムの納品 | 納品されるか、ベンダが保持するか |
| 著作権の帰属 | 発注側か、ベンダか |
| 他社に保守を依頼できるか | 原始プログラムがなければ実質不可能 |
「動くものが納品されればよい」と考えていると、後で困ります。
| 起きうること | 内容 |
|---|---|
| ベンダが廃業した | 誰も直せない |
| ベンダとの関係が悪化した | 乗り換えられない |
| 保守費用を引き上げられた | 交渉力がない |
原始プログラムを持っているかどうかが、交渉力を左右する——経営法務で学ぶ著作権の知識とあわせて、助言すべき論点です。
確認してみましょう
> 次の記述の正誤を判定せよ。
> a 言語プロセッサは、低水準言語や高水準言語で記述されたプログラムを機械語に変換するソフトウェアである。
> b 機械語に変換される前のプログラムを目的プログラム、変換されたプログラムを原始プログラムという。
> c 原始プログラムはソースプログラムともよばれる。
解答 a:○ b:× c:○
| 高水準言語プロセッサ | インタプリタ | 高水準言語で書かれたプログラムを1行ずつ解釈しながら実行するソフトウェア | BASIC、Perl、Python など(主にスクリプト言語) |
| コンパイラ | 高水準言語(高級言語)で書かれたプログラムをコンピュータが実行可能な機械語に一括翻訳するソフトウェア | FORTRAN、COBOL、C など(主に手続き型言語) |
② コンパイラの特徴
まとめて翻訳処理を行うため、実行速度は速いが、プログラムが完成していないと実行できないというデメリットがあります。
また、翻訳対象となるプログラムが複数行にわたるため、エラーとなった場合にエラー箇所を特定しづらく、デバッグ(修正)作業が容易ではないというデメリットがあります。
| 項目 | 内容 |
|---|---|
| 翻訳の仕方 | 一括翻訳 |
| 実行速度 | 速い |
| デメリット① | プログラムが完成していないと実行できない |
| デメリット② | エラー箇所を特定しづらく、デバッグが容易ではない |
③ インタプリタの特徴
コンパイラと対になる性質を持ちます。
| 項目 | 内容 |
|---|---|
| 翻訳の仕方 | 1行ずつ解釈しながら実行 |
| 実行速度 | 遅い |
| 利点① | プログラムが完成していなくても、途中まで実行できる |
| 利点② | エラー箇所を特定しやすく、デバッグが容易 |
④ 2つを比べる
| インタプリタ | コンパイラ | |
|---|---|---|
| 翻訳の単位 | 1行ずつ | 一括 |
| 実行速度 | 遅い | 速い |
| 未完成での実行 | できる | できない |
| エラー箇所の特定 | しやすい | しづらい |
| デバッグ | 容易 | 容易ではない |
| 代表的な言語 | BASIC、Perl、Python | FORTRAN、COBOL、C |
すべての行が正反対になっています。どちらか一方を覚えれば、もう一方は導けます。
⑤ 通訳と翻訳家にたとえる
| インタプリタ | コンパイラ | |
|---|---|---|
| たとえ | 通訳(その場で1文ずつ訳す) | 翻訳家(本を1冊まるごと訳す) |
| 準備 | 不要。すぐ始められる | 全文がそろってから |
| 速さ | 話すたびに待ち時間が入る | 訳し終われば、あとは読むだけで速い |
| 誤りへの対応 | その場で「いまの部分が分かりません」と言える | どこが原因か探す必要がある |
interpreter は「通訳者」、compile は「編集する、まとめる」という意味です。名前がそのまま動作を表しています。
⑥ 図で確かめる
インタプリタによる方法
| 順番 | 動き |
|---|---|
| ① | `A=A+5` を解釈 → 機械語 → 実行 |
| ② | `B=A` を解釈 → 機械語 → 実行 |
1行ごとに「解釈→実行」を繰り返します。
コンパイラによる方法
| 順番 | 動き |
|---|---|
| ① | `A=A+5` と `B=A` を一括してコンパイル |
| ② | 機械語プログラムができる |
| ③ | 実行 |
全部訳してから、まとめて実行します。
⑦ なぜ速度に差が出るのか
| インタプリタ | コンパイラ | |
|---|---|---|
| 実行のたびに | 毎回、解釈し直す | 翻訳済みのものを実行するだけ |
| 繰り返し処理 | 同じ行を何度も解釈 | 1度翻訳すれば終わり |
1万回繰り返す処理があれば、インタプリタは1万回解釈します。コンパイラなら1回翻訳するだけです。この差が実行速度の違いになります。
⑧ なぜデバッグのしやすさに差が出るのか
| インタプリタ | コンパイラ | |
|---|---|---|
| エラーが起きる場所 | 実行中のその行 | 翻訳中のどこか |
| 分かること | 「この行で止まった」 | 「どこかに誤りがある」 |
インタプリタは1行ずつ進むので、止まった場所がそのまま問題の場所です。コンパイラは全体を見て翻訳するため、どの行が原因かを探す必要があります。
⑨ 言語との対応
| 言語プロセッサ | 主な言語 | 第1〜3節で学んだこと |
|---|---|---|
| インタプリタ | BASIC、Perl、Python | BASICは「初心者向けとして普及しているインタプリタ型言語」、Perlは「インタプリタ型であるため実行が容易」 |
| コンパイラ | FORTRAN、COBOL、C(主に手続き型言語) | 第1節の表で手続き型に分類されていた |
スクリプト言語がインタプリタ型である理由
第3節で学んだスクリプト言語は、「アプリケーション開発の補助に用いられる比較的簡素な」言語でした。
| 求められること | 適する方式 |
|---|---|
| すぐ書いて、すぐ試したい | インタプリタ |
| 短い処理を書く | インタプリタ(速度は問題にならない) |
| 試行錯誤しやすい | インタプリタ |
書きやすさと試しやすさを優先するなら、インタプリタが向くわけです。
⑩ 現在の実情
近年の言語では、両方の性質を組み合わせた方式も使われています。ただし試験では、インタプリタとコンパイラの対比を押さえておけば十分です。
具体例
開発の場面で、2つの違いが何をもたらすか
新しい機能を作っている場面を想定します。
インタプリタの場合
| 順番 | 動き |
|---|---|
| ① | 10行書く |
| ② | すぐ実行して試す |
| ③ | エラーが出る |
| ④ | 「7行目で止まりました」と表示される |
| ⑤ | 7行目を直す |
| ⑥ | また試す |
短い周期で試行錯誤できます。
コンパイラの場合
| 順番 | 動き |
|---|---|
| ① | 全体を書き上げる(途中では実行できない) |
| ② | コンパイルする |
| ③ | エラーが出る |
| ④ | どこが原因か探す |
| ⑤ | 直してコンパイルし直す |
| ⑥ | 実行する |
一通り書き終えるまで動かせません。
どちらが向くか
| 場面 | 向く方式 |
|---|---|
| 試行錯誤しながら作る | インタプリタ |
| データ分析や実験 | インタプリタ(Python、R) |
| 完成したものを大量に動かす | コンパイラ |
| 処理速度が重要 | コンパイラ |
| 組込み機器 | コンパイラ(C言語など) |
PythonとCの使い分け
第3節で学んだとおり、Pythonは機械学習で広く使われています。
| 段階 | 使う言語 | 理由 |
|---|---|---|
| 分析・試作 | Python(インタプリタ) | 試行錯誤しやすい |
| 本番で大量に処理 | C、C++(コンパイラ) | 速い |
実際には、Pythonのライブラリの中身がC言語で書かれていることも多くあります。書きやすいPythonで指示を書き、重い計算は速いC言語が担当する——という分担です。
「速さと書きやすさ」を両立させる工夫が、こうした形で行われています。
第1章の知識とつなげる
第1章で学んだCPUの性能指標を思い出してください。
| 指標 | インタプリタでの影響 |
|---|---|
| MIPS(1秒間の命令数) | 解釈の分だけ命令が増える |
| クロック周波数 | 同じでも、実行時間は長くなる |
同じCPUでも、インタプリタ型のプログラムは実行に時間がかかります。解釈という余分な仕事が加わるからです。
それでもインタプリタが使われる理由
| 理由 | 内容 |
|---|---|
| CPUが十分に速くなった | 多くの用途で速度が問題にならない |
| 開発の速さのほうが重要 | 人件費のほうが高くつく |
| 試行錯誤しやすい | 品質が上がる |
「機械の時間より、人の時間のほうが高い」——コンピュータが安くなるにつれ、この判断が主流になりました。
確認してみましょう
> 次の記述の正誤を判定せよ。
> a コンパイラは、高水準言語で書かれたプログラムを機械語に一括翻訳するソフトウェアである。
> b コンパイラは、まとめて翻訳処理を行うため実行速度は速いが、プログラムが完成していないと実行できない。
> c コンパイラは、エラーとなった場合にエラー箇所を特定しやすく、デバッグ作業が容易である。
解答 a:○ b:○ c:×

言語プロセッサとプログラムの実行
試験のポイント
| ③ | リンカ(連係編集プログラム)が、目的プログラムを関数や他の目的プログラムを集めたライブラリファイルなどと連携させて、ロードモジュール(実行プログラム)を作成する |
| ④ | ローダが、ロードモジュールを主記憶装置にロードして、プログラムは実行される |
② 4つの段階で何が生まれるか
| 段階 | 使うソフトウェア | できるもの |
|---|---|---|
| ① | テキストエディタ | 原始プログラム |
| ② | コンパイラ | 目的プログラム |
| ③ | リンカ | ロードモジュール |
| ④ | ローダ | (主記憶装置に読み込まれて実行) |
プログラムの呼び名が段階ごとに変わる——これが押さえどころです。
③ 3つのプログラムの名前
| 名称 | 別名 | 段階 |
|---|---|---|
| 原始プログラム | ソースプログラム | 人が書いたもの |
| 目的プログラム | オブジェクトプログラム | 翻訳されたもの |
| ロードモジュール | 実行プログラム | 実行できる形になったもの |
④ リンカ(連係編集プログラム)
目的プログラムを、関数や他の目的プログラムを集めたライブラリファイルなどと連携させて、ロードモジュール(実行プログラム)を作成します。
⑤ なぜリンカが必要なのか
翻訳しただけでは、まだ実行できません。足りない部分があるからです。
| 足りないもの | 内容 |
|---|---|
| ライブラリの機能 | よく使う処理(計算、文字列操作など) |
| 他の目的プログラム | 複数のファイルに分けて書いた場合 |
リンカが、これらを1つに結び合わせます。link(つなぐ)という名前のとおりです。
⑥ ライブラリファイル
関数や他の目的プログラムを集めたものです。
第3節で学んだライブラリ(よく使う処理をまとめた部品の集まり)が、ここで再び登場します。
| もしライブラリがなければ | ライブラリがあれば |
|---|---|
| すべての処理を自分で書く | 呼び出すだけ |
| 品質にばらつきが出る | 検証済みのものを使える |
⑦ ローダ
ロードモジュールを主記憶装置にロードして、プログラムは実行されます。
第1章・第2章で学んだ内容とつながります。
| 第1章・第2章で学んだこと | この節での意味 |
|---|---|
| CPUが直接アクセスできるのは主記憶装置だけ | 補助記憶装置のプログラムは主記憶に読み込む必要がある |
| BIOSがOSを主記憶装置に読み込む | ローダがプログラムを主記憶装置に読み込む |
ローダは、OSにおけるBIOSと同じ役割を、個々のプログラムに対して果たしています。
⑧ 全体の流れを図で
給与計算プログラムを例にした流れは次のとおりです。
| 順番 | 動き |
|---|---|
| ① | 給与計算プログラムを作成・保存 → 原始プログラム |
| ② | コンパイラ実行 → 目的プログラム |
| ③ | リンカ実行(ライブラリファイルと連携) → ロードモジュール |
| ④ | 給与計算プログラム(実行される) |
| ⑤ | データを読み込み、給与明細リストを出力 |
⑨ 試験での問われ方
令和3年度の本試験では、リンカの説明にコンパイラの内容を当てるという誤りが出されました。
> 誤りの例:「リンカとは、高水準言語で書かれたプログラムをコンピュータが実行可能な機械語に翻訳するソフトウェアである。」
これはコンパイラの内容です。
判別のキーワード
| 選択肢の語 | 対応する用語 |
|---|---|
| 機械語に翻訳する | コンパイラ |
| ライブラリファイルなどと連携させる | リンカ |
| 主記憶装置にロードする | ローダ |
| 1行ずつ解釈しながら実行 | インタプリタ |
⑩ 名前から役割を導く
| 名称 | 英語 | 動作 |
|---|---|---|
| コンパイラ | compile(まとめる、編集する) | 一括翻訳する |
| リンカ | link(つなぐ) | つなぎ合わせる |
| ローダ | load(積む、読み込む) | 主記憶装置に読み込む |
英語の意味が、そのまま役割を表しています。
具体例
設例 リンカとコンパイラ
> 次の記述の正誤を判定せよ。(令和3年度第4問 改題)
> リンカとは、高水準言語で書かれたプログラムをコンピュータが実行可能な機械語に翻訳するソフトウェアである。
解答 ×
リンカではなく、コンパイラの内容です。
4つの用語を並べて確認する
| 用語 | 役割 | 生み出すもの |
|---|---|---|
| テキストエディタ | プログラムを書く | 原始プログラム |
| コンパイラ | 機械語に翻訳する | 目的プログラム |
| リンカ | ライブラリと連携させる | ロードモジュール |
| ローダ | 主記憶装置に読み込む | (実行) |
この4行を再現できれば、この論点は取れます。
なぜ翻訳とリンクを分けるのか
大きなプログラムを、複数のファイルに分けて書く場面を考えます。
| ファイル | 内容 |
|---|---|
| main.c | 全体の流れ |
| calc.c | 計算の処理 |
| output.c | 出力の処理 |
コンパイルの段階
| ファイル | 変換後 |
|---|---|
| main.c | main.o(目的プログラム) |
| calc.c | calc.o |
| output.c | output.o |
それぞれ独立に翻訳されます。
リンクの段階
3つの目的プログラムと、ライブラリを1つにつなぎ合わせて、1つのロードモジュールを作ります。
分けることの利点
| 利点 | 内容 |
|---|---|
| 1つのファイルを直したら、そのファイルだけ翻訳し直せばよい | 全体の翻訳をやり直さなくて済む |
| 複数人で分担して書ける | ファイルごとに担当を分けられる |
| ライブラリを共有できる | 同じ部品を複数のプログラムで使える |
1つ目が効く場面
大きなプログラムの翻訳には、何分もかかることがあります。1行直すたびに全体を翻訳し直していたら、開発が進みません。
| 分けていない場合 | 分けている場合 | |
|---|---|---|
| 1つの処理を直したとき | 全体を翻訳し直す(数分) | そのファイルだけ(数秒) |
第7章で学んだマイクロサービスと同じ発想
| 場面 | 分けることの効果 |
|---|---|
| ファイル単位(本節) | 翻訳し直す範囲を減らす |
| サービス単位(第7章) | デプロイし直す範囲を減らす |
「変更の影響範囲を小さくする」——規模は違っても、同じ原則が働いています。
インタプリタの場合はどうなるか
インタプリタ型の言語では、この手順の一部が省略されます。
| 手順 | コンパイラ型 | インタプリタ型 |
|---|---|---|
| ① プログラムを書く | ○ | ○ |
| ② 翻訳する | ○ | (実行時に1行ずつ) |
| ③ リンクする | ○ | (不要なことが多い) |
| ④ 実行する | ○ | ○ |
「書いたらすぐ動かせる」——第3節で学んだスクリプト言語の手軽さは、この手順の少なさからも来ています。
確認してみましょう
> 次の記述の正誤を判定せよ。
> a リンカは、目的プログラムをライブラリファイルなどと連携させて、ロードモジュールを作成する。
> b ローダは、ロードモジュールを主記憶装置にロードする。
> c ロードモジュールは、ソースプログラムともよばれる。
解答 a:○ b:○ c:×

プログラム実行の手順(1/2)

プログラム実行の手順(2/2)
試験のポイント
| テキスト(文字を打つ) |
| 視覚的なオブジェクト(積み木を組む) |
| 文法の誤り | 起こりうる(打ち間違い) | 起こりにくい(形が合わないと組めない) |
| 対象 | 技術者 | 初学者、小学校教育 |
Scratchでは、命令の書かれたブロックを画面上で積み重ねることでプログラムを作ります。つづりを間違える心配がなく、形の合わないブロックは組み合わせられないため、文法の誤りが起きにくい設計です。
③ ノーコード
ノーコードは、ソースコードの記述をせずにアプリケーションやWebサービスの開発が可能なサービスのことです。
これまでのアプリケーションやWebサービスの開発はソースコードを書いて開発を行いますが、ノーコードはソースコードの記述が不要なため、迅速な開発が可能であり、ソースコードが記述できるエンジニアでなくてもWebサービスの開発が可能です。
④ ノーコードの2つの効果
| 効果 | 内容 |
|---|---|
| 迅速な開発が可能 | 書く時間が不要 |
| エンジニアでなくても開発できる | 業務担当者が自分で作れる |
2つ目がとくに大きい
| 従来 | ノーコード |
|---|---|
| 業務担当者が要望を伝える → エンジニアが作る | 業務担当者が自分で作る |
| 伝達の誤りが起きる | 起きない |
| 依頼から完成まで時間がかかる | すぐできる |
⑤ ローコード
ローコードは、少ないソースコードを記述しながら開発を行う手法またはサービスです。
利用できる機能は限定的ですが、GUI(グラフィカルユーザインタフェース)やテンプレート、ドラッグ&ドロップ操作などを使ってアプリケーションを開発できる手法です。
アジャイル開発において、ローコードが用いられる場合があります。
プログラミングに関して一定の専門知識を必要とするローコードは、ノーコードよりも開発の自由度は高いが、開発スピードは劣ります。
⑥ ノーコードとローコードの比較
| ノーコード | ローコード | |
|---|---|---|
| ソースコードの記述 | 不要 | 少ない記述が必要 |
| 専門知識 | 不要 | 一定の専門知識が必要 |
| 開発の自由度 | 低い | 高い |
| 開発スピード | 速い | 劣る |
自由度と速さが逆向きになっている点が要点です。
⑦ 3つを並べて整理する
| 手法 | コードを書くか | 対象 |
|---|---|---|
| ビジュアルプログラミング | 書かない(積み木で組む) | 教育、初学者 |
| ノーコード | 書かない | 業務担当者 |
| ローコード | 少し書く | 一定の知識を持つ人 |
| 従来のプログラミング | 書く | 技術者 |
⑧ 「書かない」ほど自由度は下がる
| 手法 | 自由度 | 速さ |
|---|---|---|
| ノーコード | 低い | 速い |
| ローコード | 中程度 | 中程度 |
| 従来のプログラミング | 高い | 遅い |
用意された部品の範囲でしかできないから速く、範囲を超えられないから自由度が低い——このトレードオフは避けられません。
⑨ アジャイル開発との関係
アジャイル開発において、ローコードが用いられる場合があります。
第9章で学ぶアジャイル開発は、短い期間で開発と改善を繰り返す手法です。
| アジャイル開発が求めるもの | ローコードが提供するもの |
|---|---|
| 速く作る | 少ない記述で作れる |
| すぐ見せて意見をもらう | 試作が速い |
| 何度も作り直す | 変更が容易 |
⑩ 試験での問われ方
令和7年度の本試験では、次の記述が出されました。
> ローコード開発では、システムの全体像をモデル化し、優先度を付けた機能単位で計画、設計、構築を反復的に行う。
解答:×(アジャイル開発またはスパイラルモデルに関連する内容)
「反復的に行う」という語は開発モデルの話であり、ローコードという手法そのものの説明ではありません。
| 選択肢の語 | 対応する概念 |
|---|---|
| 少ないソースコードを記述しながら開発 | ローコード |
| ソースコードの記述をせずに開発 | ノーコード |
| 機能単位で計画・設計・構築を反復的に行う | アジャイル開発、スパイラルモデル(第9章) |
⑪ 中小企業にとっての意味
ノーコード・ローコードは、情報システムの担当者がいない中小企業にとって、現実的な選択肢になりつつあります。
| 従来の問題 | ノーコードによる解決 |
|---|---|
| システムを作れる人がいない | 業務担当者が自分で作れる |
| 外注すると費用がかかる | 費用を抑えられる |
| 業務が変わるたびに改修費用 | 自分で直せる |
ただし、考えるべきこと
| 論点 | 内容 |
|---|---|
| 属人化 | 作った人しか分からない状態になりやすい |
| サービス事業者への依存 | その事業者が廃業したら使えなくなる |
| データの持ち出し | 他のサービスに移せるか |
| 適用範囲の限界 | 複雑な業務には向かない |
「手軽に作れる」ことは「手軽に捨てられる」ことを意味しない——第11章で学ぶIT投資管理の観点から、導入前に確認すべき点です。
具体例
設例 ローコード開発
> 次の記述の正誤を判定せよ。(令和7年度第13問 改題)
> ローコード開発では、システムの全体像をモデル化し、優先度を付けた機能単位で計画、設計、構築を反復的に行う。
解答 ×
アジャイル開発またはスパイラルモデルに関連する内容です。
なぜ誤りなのか
ローコードは「どう作るか(記述量)」の話であり、「どういう進め方で作るか(開発モデル)」の話ではありません。
| 観点 | 用語 |
|---|---|
| 記述量 | ノーコード、ローコード |
| 進め方 | ウォータフォール、アジャイル、スパイラル(第9章) |
異なる軸の話を混ぜた誤りです。
中小企業でノーコードを活用する
従業員25名の会社で、業務の効率化を図る場面を考えます。
ノーコードで作れるもの
| 用途 | 例 |
|---|---|
| 社内の申請フォーム | 経費精算、備品申請 |
| 簡易な顧客管理 | 商談の記録、進捗管理 |
| 在庫の記録 | 入出庫の入力と集計 |
| 予約の受付 | Webからの予約フォーム |
従来なら
| 段階 | 内容 | 期間・費用 |
|---|---|---|
| ① 要件を整理 | 何が必要かをまとめる | 数週間 |
| ② 外注先を探す | 見積もりを取る | 数週間 |
| ③ 開発 | 作ってもらう | 数か月 |
| ④ 費用 | — | 数百万円 |
ノーコードなら
| 段階 | 内容 | 期間・費用 |
|---|---|---|
| ① 業務担当者が作る | 画面を見ながら組み立てる | 数日 |
| ② 試す | 使ってみて調整 | 随時 |
| ③ 費用 | — | 月額数千円〜 |
この差は決定的
多くの中小企業では、数百万円の投資が判断できずに、システム化を見送ってきました。ノーコードは、その障壁を大きく下げています。
それでも注意すべきこと
| 注意点 | 具体的に |
|---|---|
| 作った人しか分からない | 他の人も作り方を把握しておく |
| 記録を残す | 何をどう作ったかを文書にする |
| データを取り出せるか確認 | CSVなどで出力できるか |
| 事業者が続くか | 長く使うものなら、事業者の安定性も見る |
3つ目がとくに重要
第2章・第8章で学んだCSVやXMLが、ここで効いてきます。データを標準的な形式で取り出せるサービスを選べば、後から別の手段に移れます。
逆に、データが取り出せないサービスを選ぶと、そのサービスから抜け出せなくなります。第2章で学んだベンダロックインの、現代的な形です。
診断士としての助言
| 段階 | 助言 |
|---|---|
| 導入前 | データの取り出し方を確認する |
| 導入時 | 作り方を文書に残す |
| 運用中 | 複数人が触れる状態にする |
| 拡大時 | 限界が来たら、本格的なシステムへの移行を検討 |
「まずノーコードで試し、本当に必要なら本格的に作る」——これは第9章で学ぶプロトタイプモデルの考え方にも通じます。
小さく始めて、効果を確かめてから広げる——限られた資源で成果を出すための、現実的な進め方です。
確認してみましょう
> 次の記述の正誤を判定せよ。
> a ビジュアルプログラミング言語は、プログラムをテキストで記述するのではなく、視覚的なオブジェクトでプログラミングする。
> b ノーコードは、少ないソースコードを記述しながら開発を行う手法である。
> c ローコードは、ノーコードよりも開発の自由度は高いが、開発スピードは劣る。
解答 a:○ b:× c:○

プログラミング言語に関するその他の用語(1/2)

プログラミング言語に関するその他の用語(2/2)
試験のポイント
プレミアムプラン
¥9,800〜/ 買い切り・自動更新なし(税込)
決済はStripe(世界最高水準・PCI-DSS準拠)で安全に処理されます。カード情報は当サービスに保存されません。