Skip to main content
Log in

Associated types and constraint propagation for generic programming in Scala

  • Published:
Programming and Computer Software Aims and scope Submit manuscript

Abstract

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Musser, D.A. and Stepanov, A.A., Generic Programming, Proceeding of International Symposium on Symbolic and Algebraic Computation, vol. 358: Lecture Notes in Computer Science, Rome, Italy, 1988, pp. 13–25.

    Chapter  Google Scholar 

  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.

    Chapter  Google 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 

  4. Oliveira, B.C.d.S., Moors, A., and Odersky, M., Type classes as objects and implicits, OOPSLA’10 Proc. of the ACM Int. Conf. on Object Oriented Programming Systems Languages and Applications, NY, USA: ACM New York, 2010, pp. 341–360.

    Chapter  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 

  6. Garcia, R., Jarvi, J., Lumsdaine, A., Siek, J., and Willcock, J., An extended comparative study of language support for generic programming, J. Funct. Program., 2007, vol. 17, no. 2, pp. 145–205.

    Article  MATH  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 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to A. Pelenitsyn.

Additional information

Original Russian Text © A. Pelenitsyn, 2015, published in Programmirovanie, 2015, Vol. 41, No. 4.

The article was translated by the authors.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Pelenitsyn, A. Associated types and constraint propagation for generic programming in Scala. Program Comput Soft 41, 224–230 (2015). https://doi.org/10.1134/S0361768815040064

Download citation

  • Received:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1134/S0361768815040064

Keywords

Navigation