Several types of types in programming languages
Simone Martini

TL;DR
This paper explores the historical and conceptual evolution of the notion of 'type' in programming languages, distinguishing three different interpretations and their development over time.
Contribution
It clarifies the distinct roles of 'type' in programming languages, highlighting their separate origins and the influence of logic and language design.
Findings
Identifies three different 'types' in programming languages.
Highlights the historical independence of programming types from logical types.
Discusses the impact of Curry-Howard isomorphism on the concept of types.
Abstract
Types are an important part of any modern programming language, but we often forget that the concept of type we understand nowadays is not the same it was perceived in the sixties. Moreover, we conflate the concept of "type" in programming languages with the concept of the same name in mathematical logic, an identification that is only the result of the convergence of two different paths, which started apart with different aims. The paper will present several remarks (some historical, some of more conceptual character) on the subject, as a basis for a further investigation. The thesis we will argue is that there are three different characters at play in programming languages, all of them now called types: the technical concept used in language design to guide implementation; the general abstraction mechanism used as a modelling tool; the classifying tool inherited from mathematical…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Formal Methods in Verification · Logic, Reasoning, and Knowledge
