-
Cの明白な改善点
- C23標準: C言語は定期的に改善されており、現在はC23に至っている。しかし、いまだに解決されていない問題が存在する。
- Dlangコミュニティの取り組み: Dプログラミング言語コンパイラにCコンパイラ(ImportC)を組み込むことで、これらの問題を解決する機会を提供している。
-
定数式評価
- 問題点: Cはコンパイル時に単純な式を計算できるが、関数の実行はできない。
- ImportCの解決策: ImportCはコンパイル時の関数実行を許可し、この制限を克服する。
-
コンパイル時ユニットテスト
- Cでの問題点: Cコードでユニットテストを行うには別個のビルド対象が必要で、煩雑である。
- ImportCの利点: ImportCはコンパイル時の関数評価によって、ユニットテストを簡単に実行可能にする。
-
宣言の前方参照
- Cの制約: Cは宣言の順序に敏感であり、前方参照を許可しない。
- ImportCの利点: ImportCは宣言の順序に縛られず、任意の順序でグローバル宣言を許可する。
-
宣言の取り込み
- 従来方式の問題点: 外部モジュールごとに .h ファイルを書かなければならない煩わしさがある。
- ImportCの解決策: ImportCは .h ファイルなしでも宣言を取り込めるため、効率的である。
-
参考資料
- ImportCドキュメント: ImportCに関する詳細情報を提供。
- D言語ドキュメント: D言語に関する追加情報を提供。
1件のコメント
Hacker Newsの意見
C言語のヘッダーファイルは公開用と非公開用、インターフェースと実装を明確に区別できるのがよい。.h ファイルを通じてライブラリの使い方を簡単に把握できる
C言語でコンパイル時に関数を実行できるべきだという意見もあるが、実行時間の長い関数は問題になりうる
busybeaver関数がある定数式評価、コンパイル時ユニットテスト、宣言の前方参照、宣言の取り込みといった問題への解決策が気になる
Cコードのユニットテスト作成は、よいビルドシステムと少しのボイラープレートがあれば可能
npyライブラリのテストコードがある定数式評価が複雑な場合、コンパイラ速度が低下する可能性があり、VMが必要になることもある
コンパイル時ユニットテストは開発者の制御を奪い、作業完了のために不要な手順を要求する
関数定義を「トップダウン」で行うほうがよいかについての議論
C言語に追加されてほしい機能
deferのような機能の標準化Cのシンプルな実装は長所であり、範囲を大きく拡張するのはよい考えではない
関数定義を上から下にするほうがよい理由