None, One, Many - What's the Difference, Anyhow?

Author Friedrich Steimann

Thumbnail PDF


  • Filesize: 0.49 MB
  • 15 pages

Document Identifiers

Author Details

Friedrich Steimann

Cite AsGet BibTex

Friedrich Steimann. None, One, Many - What's the Difference, Anyhow?. In 1st Summit on Advances in Programming Languages (SNAPL 2015). Leibniz International Proceedings in Informatics (LIPIcs), Volume 32, pp. 294-308, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2015)


We observe that compared to natural and modelling languages, the differences in expression required to deal with no, one, or many objects in programming languages are particularly pronounced. We identify some problems inherent in type-based unifications of different numbers, and advocate a solution that builds on the introduction of multiplicity as a new grammatical category of programming languages.
  • objects
  • collections
  • relationships
  • pointers
  • multiplicity
  • null


  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    PDF Downloads


  1. Gavin M. Bierman, Erik Meijer, and Wolfram Schulte. The essence of data access in Cω. In Andrew P. Black, editor, ECOOP 2005 - Object-Oriented Programming, 19th European Conference, Glasgow, UK, July 25-29, 2005, Proceedings, volume 3586 of Lecture Notes in Computer Science, pages 287-311. Springer, 2005. Google Scholar
  2. Gavin M. Bierman, Erik Meijer, and Mads Torgersen. Lost in translation: formalizing proposed extensions to C^♯. In Richard P. Gabriel, David F. Bacon, Cristina Videira Lopes, and Guy L. Steele Jr., editors, Proceedings of the 22nd Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2007, October 21-25, 2007, Montreal, Quebec, Canada, pages 479-498. ACM, 2007. Google Scholar
  3. Kim B. Bruce, Luca Cardelli, Giuseppe Castagna, Jonathan Eifrig, Scott F. Smith, Valery Trifonov, Gary T. Leavens, and Benjamin C. Pierce. On binary methods. TAPOS, 1(3):221-242, 1995. Google Scholar
  4. Peter P. Chen. The entity-relationship model - Toward a unified view of data. ACM Trans. Database Syst., 1(1):9-36, 1976. Google Scholar
  5. Umberto Eco. The Search for the Perfect Language. Wiley-Blackwell, 1997. Google Scholar
  6. Andrew Eisenberg and Jim Melton. SQL: 1999, formerly known as SQL 3. SIGMOD Record, 28(1):131-138, 1999. Google Scholar
  7. Adele Goldberg and David Robson. Smalltalk-80: The Language and Its Implementation. Addison-Wesley, 1983. Google Scholar
  8. Daniel Jackson. Software Abstractions - Logic, Language, and Analysis. MIT Press, 2006. Google Scholar
  9. Roman Knöll, Vaidas Gasiunas, and Mira Mezini. Naturalistic types. In Robert Hirschfeld and Eelco Visser, editors, ACM Symposium on New Ideas in Programming and Reflections on Software, Onward! 2011, part of SPLASH'11, Portland, OR, USA, October 22-27, 2011, pages 33-48. ACM, 2011. Google Scholar
  10. Adrian Kuhn, David Erni, and Marcus Denker. Empowering collections with swarm behavior. CoRR, abs/1007.0159, 2010. Google Scholar
  11. Erik Meijer, Wolfram Schulte, and Gavin M. Bierman. Unifying tables, objects and documents. In Proceedings of Declarative Programming in the Context of OO Languages (DP-COOL 2003), August 2003. Google Scholar
  12. OMG (Object Management Group). Unified Modeling Language 2.4.1. Specification, OMG (Object Management Group), 2011. URL:
  13. OMG (Object Management Group). Object Constraint Language 2.4. Specification, OMG (Object Management Group), 1 2012. URL:
  14. Marco Servetto, Julian Mackay, Alex Potanin, and James Noble. The billion-dollar fix - safe modular circular initialisation with placeholders and placeholder types. In Giuseppe Castagna, editor, ECOOP 2013 - Object-Oriented Programming - 27th European Conference, Montpellier, France, July 1-5, 2013. Proceedings, volume 7920 of Lecture Notes in Computer Science, pages 205-229. Springer, 2013. Google Scholar
  15. Justin Slepak, Olin Shivers, and Panagiotis Manolios. An array-oriented language with static rank polymorphism. In Zhong Shao, editor, Programming Languages and Systems - 23rd European Symposium on Programming, ESOP 2014, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2014, Grenoble, France, April 5-13, 2014, Proceedings, volume 8410 of Lecture Notes in Computer Science, pages 27-46. Springer, 2014. Google Scholar
  16. Friedrich Steimann. On the representation of roles in object-oriented and conceptual modelling. Data Knowl. Eng., 35(1):83-106, 2000. Google Scholar
  17. Friedrich Steimann. Role = interface - A merger of concepts. Journal of Object-Oriented Programming, 14:23-32, 2001. Google Scholar
  18. Friedrich Steimann. Role + counter role = relationship + collaboration. In Stephen Nelson and Stephanie Balzer, editors, RAOOL'08: Proceedings of the Workshop on Relationships and Associations in Object-Oriented Languages, co-located with OOPSLA 2008, Nashville, TN, USA, 2008. Google Scholar
  19. Friedrich Steimann. Content over container: Object-oriented programming with multiplicities. In Antony L. Hosking, Patrick Th. Eugster, and Robert Hirschfeld, editors, ACM Symposium on New Ideas in Programming and Reflections on Software, Onward! 2013, part of SPLASH'13, Indianapolis, IN, USA, October 26-31, 2013, pages 173-186. ACM, 2013. Google Scholar
  20. Friedrich Steimann, Jesper Öqvist, and Görel Hedin. Multitudes of objects: First implementation and case study for Java. Journal of Object Technology, 13(5):1: 1-33, 2014. Google Scholar
  21. Toon Verwaest, Camillo Bruni, Mircea Lungu, and Oscar Nierstrasz. Flexible object layouts: enabling lightweight language extensions by intercepting slot access. In Cristina Videira Lopes and Kathleen Fisher, editors, Proceedings of the 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, OOPSLA 2011, part of SPLASH 2011, Portland, OR, USA, October 22-27, 2011, pages 959-972. ACM, 2011. Google Scholar
  22. Bobby Woolf. Null object. In Robert C. Martin, Dirk Riehle, and Frank Buschmann, editors, Pattern Languages of Program Design 3, pages 5-18. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1997. Google Scholar