Associated types and constraint propagation for generic programming in Scala
- 60 Downloads
Generic programming is a programming paradigm for creation of highly resuable software components through decoupling algorithms from specific data structures which are being processed. The rise of research on ways of handling generic programming in various programming languages took place last years. We analyze and develop a number of generic programming features, in particular associated types and constraint propagation, for the Scala programming language designed by Martin Odersky in École Polytechnique Fédérale de Lausanne.
KeywordsConstraint Propagation Type Parameter Object Orient Program Graph Type Associate Type
Unable to display preview. Download preview PDF.
- 2.Jarvi, J., Willcock, J., and Lumsdaine, A., Associated types and constraint propagation for mainstream object-oriented generics, OOPSLA’05 Proc. of the 20th Annual ACM SIGPLAN Conf. on Object-Oriented Programming, Systems, Languages, and Applications, NY, USA: ACM New York, 2005, pp. 1–19.CrossRefGoogle Scholar
- 3.Wehr, S., Lammel, R., and Thiemann, P., JavaGI: Generalized Interfaces for Java, Proc. of the European Conf. on Object-Oriented Programming, Ernst, E., Ed., LNCS, vol. 4609, Berlin, Germany: Springer-Verlag, 2007, pp. 347–372.Google Scholar
- 5.Pelenitsyn, A., Generic and metaprogramming in software implementation of decoder for algebraic geometry codes, Prikl. Inform., 2012, no. 2 (38), pp. 60–70.Google Scholar
- 7.Gregor, D., Jarvi, J., Siek, J., Stroustrup, B., Dos Reis, G., and Lumsdaine, A., Concepts: Linguistic Support for Generic Programming in C++, ACM SIG-PLAN Conf. on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA’06), Portland, Oregon, 2006, pp. 291–310.Google Scholar
- 8.Sutton, A. and Stroustrup, B., Design of Concept Libraries for C++, Proc. SLE 2011 (International Conference on Software Language Engineering), 2011, pp. 97–118.Google Scholar
- 9.Cardelli, L. and Wegner, P., On Understanding Types, Data Abstraction, and Polymorphism, NY, USA, N.Y.: ACM Computing Surveys, 1985, vol. 17, no. 4, pp. 471–523.Google Scholar
- 10.Horstmann, C.S., Scala for the Impatient, Addison-Wesley, 2012.Google Scholar
- 11.Stroustrup, B., The C++0x “Remove Concepts” Decision, Dr. Dobb’s J., 2009; URL: http://www.drdobbs.com/cpp/the-c0x-remove-concepts-decision/218600111.Google Scholar