Zen 言語は C 言語とは全く異なるビルドプロセスを持ちます。
C 言語では、ソースファイルごとにコンパイルを行い、最後にリンカでオブジェクトファイルを結合します。 各ソースファイル間は、ヘッダファイルで繋がっています。
C 言語のビルドプロセスでは、ファイル間での整合性チェックや最適化に限界があると言えます。
別ファイルにある関数を呼び出す際、ヘッダファイルに何か不整合があれば、実行時に意図せぬ挙動が発生するでしょう。 また、ファイルをまたぐ関数呼び出しの最適化は、リンク時の最適化に頼らざるをえません。 リンク時の最適化技術も日々向上していますが、コンパイル時の最適化には敵いません。
C 言語の基本コンセプトは1980年代に設計されており、当時のコンピュータの性能を考えると、 このビルドプロセスは妥当な判断だったと言えるでしょう。
Zen 言語では、C 言語のビルドプロセスの弱点を克服しています。 2020年現在、プログラムをコンパイルするコンピュータの性能は飛躍的に向上しています。 そこで、Zen 言語では、全ての関連するソースファイルを1つにまとめてから、コンパイルするアプローチを採用します。
このアプローチにより、Zen コンパイラは、コンパイル時にファイルをまたぐ関数呼び出しの整合性を厳密にチェックし、コールグラフを全て考慮した上で最適化を行うことができます。
☰ 人の生きた証は永遠に残るよう ☰
Copyright © 2018-2020 connectFree Corporation. All rights reserved. | 特定商取引法に基づく表示
Zen, the Zen three-circles logo and The Zen Programming Language are trademarks of connectFree corporation in Japan and other countries.