Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3412932.3412940acmotherconferencesArticle/Chapter ViewAbstractPublication PagesiflConference Proceedingsconference-collections
research-article

A space-efficient call-by-value virtual machine for gradual set-theoretic types

Published: 15 July 2021 Publication History

Abstract

We describe the design and implementation of a virtual machine for programming languages that use gradual typing with set-theoretic types focusing on practical issues such as runtime space efficiency, and efficient implementation of tail recursive calls.

References

[1]
S. Bauman, C. F. Bolz-Tereick, J. G. Siek, and S. Tobin-Hochstadt. Sound gradual typing: Only mostly dead. PACMPL, 1(OOPSLA):54, 2017.
[2]
G. Bierman, M. Abadi, and M. Torgersen. Understanding TypeScript. In European Conference on Object-Oriented Programming, pages 257--281. Springer, 2014.
[3]
A. Bonnaire-Sergeant, R. Davies, and S. Tobin-Hochstadt. Practical optional types for Clojure. In ESOP 2016, pages 68--94. Springer, 2016.
[4]
G. Castagna. Covariance and controvariance: a fresh look at an old issue (a primer in advanced type systems for learning functional programmers). Logical Methods in Computer Science, 2019. https://arxiv.org/abs/1809.01427. To appear.
[5]
G. Castagna and V. Lanvin. Gradual typing with union and intersection types. PACMPL, 1(ICFP):41, 2017.
[6]
G. Castagna, K. Nguyen, Z. Xu, and P. Abate. Polymorphic functions with set-theoretic types: Part 2: Local type inference and type reconstruction. In POPL '15, volume 50, pages 289--302, 2015.
[7]
G. Castagna, V. Lanvin, T. Petrucciani, and J. G. Siek. Gradual typing: a new perspective. PACMPL, 3(POPL):16, 2019.
[8]
W. Clinger. Proper tail recursion and space efficiency. In PLDI '98, 1998.
[9]
Facebook. Flow documentation, . https://flow.org/en/docs/lang/.
[10]
Facebook. Hack documentation, . https://docs.hhvm.com/hack/.
[11]
D. Feltey, B. Greenman, C. Scholliers, R.B. Findler, and V. St-Amour. Collapsible contracts: Fixing a pathology of gradual typing. PACMPL, 2(OOPSLA):133:1--133:27, October 2018.
[12]
R. B. Findler and M. Felleisen. Contracts for higher-order functions. In ICFP '02, pages 48--59, October 2002.
[13]
Alain Frisch, Giuseppe Castagna, and Véronique Benzaken. Semantic subtyping: Dealing set-theoretically with function, union, intersection, and negation types. Journal of the ACM (JACM), 55(4):19, 2008.
[14]
M. Greenberg. Space-efficient manifest contracts. In POPL '15, pages 181--194. ACM, 2015.
[15]
Fritz Henglein. Dynamic typing: syntax and proof theory. Science of Computer Programming, 22(3):197--230, June 1994.
[16]
David Herman, Aaron Tomb, and Cormac Flanagan. Space-efficient gradual typing. Higher-Order and Symbolic Computation, 23(2):167, 2010.
[17]
M. Keil and P. Thiemann. Blame assignment for higher-order contracts with intersection and union. In ICFP 2015, pages 375--386, 2015.
[18]
A. Kuhlenschmidt, D. Almahallawi, and J. G. Siek. Toward efficient gradual typing for structural types via coercions. In PLDI '19, 2019.
[19]
J. Lehtosalo and D. J. Greaves. Language with a pluggable type system and optional runtime monitoring of type errors. In Workshop on Scripts to Programs (STOP), 2011.
[20]
A. Rastogi, N. Swamy, C. Fournet, G. Bierman, and P. Vekris. Safe & efficient gradual typing for TypeScript. In POPL '15, pages 167--180. ACM, 2015.
[21]
G. Richards, F. Zappa Nardelli, and J. Vitek. Concrete types for TypeScript. In ECOOP 2015, 2015.
[22]
J. G. Siek and R. Garcia. Interpretations of the gradually-typed lambda calculus. In Workshop on Scheme and Functional Programming, pages 68--80, 2012.
[23]
J. G. Siek and W. Taha. Gradual typing for functional languages. In Scheme and Functional Programming Workshop, volume 6, pages 81--92, 2006.
[24]
J. G. Siek and M. Vachharajani. Gradual typing with unification-based inference. In Symposium on Dynamic languages, page 7. ACM, 2008.
[25]
J. G. Siek and P. Wadler. Threesomes, with and without blame. In POPL 2010, pages 365--376, 2010.
[26]
J. G. Siek, P. Thiemann, and P. Wadler. Blame and coercion: together again for the first time. In PLDI '15, pages 425--435, 2015.
[27]
A. Takikawa, D. Feltey, B. Greenman, M. S. New, J. Vitek, and M. Felleisen. Is sound gradual typing dead? In POPL '16, pages 456--468, 2016.
[28]
S. Tobin-Hochstadt and M. Felleisen. Interlanguage migration: from scripts to programs. In DSL '06, pages 964--974. ACM, 2006.
[29]
Sam Tobin-Hochstadt and Matthias Felleisen. The design and implementation of Typed Scheme. In POPL '08, pages 395--406. ACM, 2008.
[30]
M. M. Vitousek, A. M. Kent, J. G. Siek, and J. Baker. Design and evaluation of gradual typing for Python. In DSL '14, pages 45--56, 2014.

Cited By

View all
  • (2023)Typed–Untyped Interactions: A Comparative AnalysisACM Transactions on Programming Languages and Systems10.1145/357983345:1(1-54)Online publication date: 5-Mar-2023
  • (2023)Programming with Union, Intersection, and Negation TypesThe French School of Programming10.1007/978-3-031-34518-0_12(309-378)Online publication date: 11-Oct-2023

Index Terms

  1. A space-efficient call-by-value virtual machine for gradual set-theoretic types
          Index terms have been assigned to the content through auto-classification.

          Recommendations

          Comments

          Information & Contributors

          Information

          Published In

          cover image ACM Other conferences
          IFL '19: Proceedings of the 31st Symposium on Implementation and Application of Functional Languages
          September 2019
          177 pages
          ISBN:9781450375627
          DOI:10.1145/3412932
          Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

          Publisher

          Association for Computing Machinery

          New York, NY, United States

          Publication History

          Published: 15 July 2021

          Permissions

          Request permissions for this article.

          Check for updates

          Qualifiers

          • Research-article

          Conference

          IFL '19
          IFL '19: Implementation and Application of Functional Languages
          September 25 - 27, 2019
          Singapore, Singapore

          Acceptance Rates

          Overall Acceptance Rate 19 of 36 submissions, 53%

          Contributors

          Other Metrics

          Bibliometrics & Citations

          Bibliometrics

          Article Metrics

          • Downloads (Last 12 months)5
          • Downloads (Last 6 weeks)0
          Reflects downloads up to 16 Oct 2024

          Other Metrics

          Citations

          Cited By

          View all
          • (2023)Typed–Untyped Interactions: A Comparative AnalysisACM Transactions on Programming Languages and Systems10.1145/357983345:1(1-54)Online publication date: 5-Mar-2023
          • (2023)Programming with Union, Intersection, and Negation TypesThe French School of Programming10.1007/978-3-031-34518-0_12(309-378)Online publication date: 11-Oct-2023

          View Options

          Get Access

          Login options

          View options

          PDF

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader

          Media

          Figures

          Other

          Tables

          Share

          Share

          Share this Publication link

          Share on social media