<< AdaのPackageの例 | main | ADW Modula-2 Version 2.74 – August 2, 2013 リリース >>

分割コンパイル機能について

0

    1981年にブライアン・カーニハン(Brian Kernighan)が『Why Pascal is Not My FavoriteProgramming Language』(なぜ私はPascalが嫌いか)というPascal批判の論文を出しています。内容としては具体的なPascalの制約に関するものや、好みの問題と言えるものなどいろいろありますが、大きな制約の一つに分割コンパイルができないというものがありました。しかし、この論文は古いものであり、それ以降にPascal, Modula-2, Adaの標準規格が制定されています。このどれもが分割コンパイルをサポートしています。DelphiやFree Pascalも同様です。逆に単なる分割コンパイルではなく、モジュールのインターフェース部と実現部を分離し、整合性を保証した結合を行うなど安全性も保っています。JavaやC#(.NET Framework)もクラスモジュールのメタ情報を参照し整合性を保っています。アプリケーションの規模がある程度大きくなり、分散開発が必要となる場合、モジュール間の整合性の確認は有効な機能となります。
    C言語は、分割コンパイルされたものを結合する場合、シンボル名(関数名や変数名)が一致すれば型やパラメータが不一致でも結合してしまいます。C++では、それを回避するために、名前空間(Name Space)やマングリング(Name Mangling)を導入しています。
    プログラムの書き方だけではなく、言語処理系のモジュール結合に関する仕組みもアプリケーションの信頼性に大きく影響します。

    コメント
    コメントする









    calendar
          1
    2345678
    9101112131415
    16171819202122
    23242526272829
    3031     
    << August 2020 >>