uu.seUppsala University Publications
Change search
ReferencesLink to record
Permanent link

Direct link
Measuring Polymorphism in Python Programs
Stockholm Univ, Stockholm, Sweden..
Uppsala University, Disciplinary Domain of Science and Technology, Mathematics and Computer Science, Department of Information Technology, Computing Science.
2015 (English)In: Proc. 11th Symposium on Dynamic Languages, New York: ACM Press, 2015, 114-128 p.Conference paper (Refereed)Text
Abstract [en]

Following the increased popularity of dynamic languages and their increased use in critical software, there have been many proposals to retrofit static type system to these languages to improve possibilities to catch bugs and improve performance. A key question for any type system is whether the types should be structural, for more expressiveness, or nominal, to carry more meaning for the programmer. For retrofitted type systems, it seems the current trend is using structural types. This paper attempts to answer the question to what extent this extra expressiveness is needed, and how the possible polymorphism in dynamic code is used in practise. We study polymorphism in 36 real-world open source Python programs and approximate to what extent nominal and structural types could be used to type these programs. The study is based on collecting traces from multiple runs of the programs and analysing the polymorphic degrees of targets at more than 7 million call-sites. Our results show that while polymorphism is used in all programs, the programs are to a great extent monomorphic. The polymorphism found is evenly distributed across libraries and program-specific code and occur both during program start-up and normal execution. Most programs contain a few ``megamorphic'' call-sites where receiver types vary widely. The non-monomorphic parts of the programs can to some extent be typed with nominal or structural types, but none of the approaches can type entire programs.

Place, publisher, year, edition, pages
New York: ACM Press, 2015. 114-128 p.
, ACM SIGPLAN Notices, ISSN 0362-1340 ; 51:2 2016
National Category
Computer Science
URN: urn:nbn:se:uu:diva-287597DOI: 10.1145/2816707.2816717ISI: 000376395600010ISBN: 978-1-4503-3690-1OAI: oai:DiVA.org:uu-287597DiVA: diva2:922972
DLS 2015, October 23–30, Pittsburgh, PA
Available from: 2015-10-21 Created: 2016-04-25 Last updated: 2016-08-17Bibliographically approved

Open Access in DiVA

No full text

Other links

Publisher's full text

Search in DiVA

By author/editor
Wrigstad, Tobias
By organisation
Computing Science
Computer Science

Search outside of DiVA

GoogleGoogle Scholar
The number of downloads is the sum of all downloads of full texts. It may include eg previous versions that are now no longer available

Altmetric score

Total: 21 hits
ReferencesLink to record
Permanent link

Direct link