Provided/Expected vs. Abstract: Caesar, ArchJava and Traits.
最近の目に付くプログラミング言語の特徴として、 Provided メソッド や Expected メソッドなんかがある。具体的には、Caesar[1] とか ArchJava[2] とか Trais[3] とかだけど(他にもあるかも)、この、Provided/Expected メソッドと Abstract メソッドの違いはなんだろうか?
そのまえに、これら 3 つのモデルの、まとめ。
Caesar:
- 実装を提供するメソッド : provided
- 実装を提供しないメソッド: expected
ArhJava
- 実装を提供するメソッド : provides (provided)
- 実装を提供しないメソッド: requires (required)
Traits:
- 実装を提供するメソッド : provided
- 実装を提供しないメソッド: required
各モデルで、用語は違うけど、基本的には同じ意味を表していると思う。でも、全体像から見ると、微妙な違いもあると思う。
・・・とここまで書いてダウン。書けるようになったら続き書くかも。
リソース:
- [1] M. Mezini and K.Ostermann. Integrating Independent Components with On-Demand Remodularisation. the 17th ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications.(2002)
http://www.st.informatik.tu-darmstadt.de/public/Publications.jsp
- [2] Jonathan Aldrich, Craig Chambers, and David Notkin. ArchJava: Connecting Software Architecture to Implementation. In proceedings of ICSE 2002. (2002)
http://www-2.cs.cmu.edu/~aldrich/archjava/
- [3] Nathanael Scharli, Stephane Ducasse, Oscar Nierstrasz, Andrew Black. Traits: Composable Units of Behavior. ECOOP 2003.(2003)