Niklaus Wirth はコンピューター科学者で、言語とコンパイラーの設計を研究し、教えていました。Pascal 言語とコンパイラを設計したとき、彼の設計目標の一部は、コンパイラを小さく高速かつ効率的にすることと、タスクを分割して、コンパイラがコンパイラにとって簡単なことを実行し、プログラマが実行しやすいことを実行することでした。プログラマー。
これらの目標に沿って、彼はソース コードを 1 回読むだけですべてを最初から理解できるシングルパス コンパイラを設計しました。彼はまた、非常に単純なステート マシンを備えたコンパイラを設計しました。つまり、すべてが正しい順序で、正しい順序でのみ実行されます。
そうすることで、彼は非常に小さく、高速で、効率的で正確なコンパイラを簡単に手に入れることができました。これは、C コンパイラが困難で、不正確で、非効率的であることが知られており、FORTRAN コンパイラが遅くて大きいのとは対照的です。
プログラムの開始時に静的定数の割り当てを 1 回行うことは、小さく、高速で、効率的で、正しいコンパイラを作成できる設計上の決定事項の 1 つです。
数十年前、Borland は、小さく、高速で、効率的で、正確な Pascal コンパイラを作成しました。これは、アウトオブオーダー宣言やその他の一般的に有用で役立つオプションを許可する、他の企業 (MS など) のより高価な製品との競争に再び成功しました。コンパイラはより遅く、難しくなりましたが、プログラミングはより簡単になりました。
言い換えれば、MS は、Borland/Wirth とは異なる方法で、コンパイラとユーザーの間でタスクを分割することを選択しました。
また、MS Pascal コンパイラはかなり前に廃止されました。ただし、Borland コンパイラは引き続き Delphi として使用されます。
コンピューターは以前よりもはるかに高速になりましたが、小さく、高速で、効率的で、正確なコンパイラーを作成するタスクは同じままです。新機能は無料ではありません。コンパイルを複雑にすることには代償が伴います。コンパイラと言語全体が最初から設計された方法の例外として追加する必要がある場合、単純な機能でさえ面倒です。