Ada 202x (追記1) - 未解決問題¶
あれはどうなったの?集。 このページは妄想でできています。
Ada 2005からの宿題¶
John Barnes先生の Rationale for Ada 2005 で未解決として挙げられているやつはどうなったのでしょうか。
- Aggregates for private types
Ada 202xで実現。
- Partial generic instantiation
struct T { std::vector<T> children; }
をしたい。 進展なし。 超欲しい。- Support for IEEE 559: 1989
NaNやInfを扱いたい。 進展なし。
- Defaults for generic parameters
generic
の引数をサブプログラム以外も省略できるようにしたい。 提案はされましたが未採択。 Ada 202xで型については実現。- Pre/post-conditions for subprograms
Ada 2012で実現。
- Type and package invariants
Ada 2012で実現。
- Exceptions as types
例外を表す型が欲しい。 進展なし。
- Sockets operations
ソケット欲しい。 進展なし。
- In out parameters for functions
Ada 2012で実現。
- Application defined scheduling
スケジューリング戦略をユーザー定義したい。 進展なし。
Ada 2012からの宿題¶
同じくJohn Barnes先生の Rationale for Ada 2012 で未解決とされているやつ。
- Integrated packages
OCamlの
include
。 進展なし。 超欲しい。- Cyclic fixed point
mod型みたいな固定小数点型。 進展なし。
- Global annotations
Ada 202xで実現。
- Shorthand for assignments
Ada 202xで実現。
わたし気になります集¶
手前味噌ながらAda 2012 with Technical Corrigendum 1のときに書いたlanguage updateスライドで触れたやつ。 上と重複するものは除いてあります。
- Generic formal record types
侵入型リンクリストをライブラリ化したい。 未採択。
- Index parameters in array aggregates
Ada 202xで実現。
- Static expression functions
Ada 202xで実現。 制限がきついので今後も緩和されていって欲しいです。
(ちなみにAda 2012のときに書いたlanguage update スライドもあります。)
加えて今回提案され残念ながら採択されなかったもの。 ボツ案の中で言えばpassive taskは超欲しいですね。
- Passive tasks
状態遷移機としてコンパイルされる
task
。 procedural iteratorに敗北しました。- The co-derivation problem
複数の関連する型を関係をそのままに派生したい。
type My_Vector, My_Cursor is new Float_Vectors.Vector with private, Float_Vectors.Cursor;
みたいな。 これがないと大量のrenames
やラッパーが必要になることがあります。 未採択。- Generalize prefix views
tagged型以外でもドット記法。 ドット記法のためだけに
tagged
にするのはデメリットも大きいです。 未採択。
あと個人的には「衝突して同時に実装できない interface
」の存在が確定してしまったのは割と残念ですのでこうなるとやっぱりDelphiやC#のメソッド解決節みたいな衝突回避の手段は欲しいなあ、みたいな。
Stable_Properties
は再考されろーされろー。
(願望。)