読み方 : よつぐみけいしき

四つ組形式【quadruple】

概要

四つ組形式とはコンパイラ中間コードを表現する際に用いる形式の一つで、演算子被演算子2つ、結果の格納先となる変数の4つの要素で1つの演算を表すもの。(演算子, 被演算子1, 被演算子2, 結果) という並びで記述し、これを複数連ねることでプログラム全体の処理を表す。
四つ組形式のイメージ画像

コンパイラソースコード機械語へ変換する過程で、「中間コード」(intermediate code)と呼ばれる表現をいったん経由することが多い。ソースコード機械語の間には抽象度の隔たりがあり、複雑な式であっても単純な演算の連なりへ分解しておくことで、後続の処理を扱いやすくする狙いがある。四つ組形式は、この中間コードの代表的な表現方法の一つである。

例えば、「a = b + c * d」という式を処理する場合、まず乗算部分を (*, c, d, t1) という四つ組に変換する。t1は乗算結果を一時的に格納するために新しく用意した変数である。続いて、加算部分を (+, b, t1, t2)、代入を (=, t2, _, a) のように表す。演算のたびに一時変数を介して結果を受け渡すことで、複数の演算からなる式の処理順序を明確に追跡できる。

四つ組形式で中間コードを構成すると、演算結果の格納先が各命令に明記される。似た中間コードの表現に「三つ組形式」があるが、こちらは演算子被演算子2つだけを組にし、結果は演算そのものを指す番号によって参照する仕組みである。三つ組形式では命令を並べ替えると参照番号がずれる恐れがあるのに対し、四つ組形式は結果を独立した変数として保持するため、命令の順序を入れ替えたり不要な計算を省いたりする最適化処理が行いやすくなる。

四つ組形式で整理された中間コードは、その後の最適化処理を経て、対象となるCPU命令セットに適合した機械語へと変換される。中間コードという段階を挟むことで、対応する言語やCPUの組み合わせが増えても、コンパイラ全体の変換処理を効率よく構成できるようになる。

(2026.8.29更新)
 

資格試験などの「四つ組形式」の出題履歴

▼ 基本情報技術者試験
令3修7/平30修7/平29修1/平27秋/平26修6/平24修12/平23修1/平21修7】 コンパイラで構文解析した結果の表現方法の一つに四つ組形式がある。(演算子,被演算子1,被演算子2,結果) この形式は,被演算子1と被演算子2に演算子を作用させたものが結果であることを表す。
この記事の著者 : (株)インセプト IT用語辞典 e-Words 編集部
1997年8月より「IT用語辞典 e-Words」を執筆・編集しています。累計公開記事数は1万ページ以上、累計サイト訪問者数は1億人以上です。学術論文や官公庁の資料などへも多数の記事が引用・参照されています。