A practical soft type system for scheme

Soft typing is a generalization of static type checking that accommodates both dynamic typing and static typing in one framework. A soft type checker infers types for identifiers and inserts explicit run-time checks to transform untypable programs into typable form. Soft Scheme is a practical soft type system for R4RS Scheme. The type checker uses a representation for types that is expressive, easy to interpret, and supports efficient type inference. Soft Scheme supports all of R4RS Scheme, including uncurried procedures of fixed and variable arity, assignment, and continuations.

[1]  Fritz Henglein,et al.  Global tagging optimization by type inference , 1992, LFP '92.

[2]  Satish R. Thatte Quasi-static typing , 1989, POPL '90.

[3]  Robert Hieb,et al.  The Revised Report on the Syntactic Theories of Sequential Control and State , 1992, Theor. Comput. Sci..

[4]  Alberto Martelli,et al.  Unification in linear time and space: a structured presentation , 1976 .

[5]  Jean-Pierre Jouannaud,et al.  TAPSOFT'93: Theory and Practice of Software Development , 1993, Lecture Notes in Computer Science.

[6]  R. Hindley The Principal Type-Scheme of an Object in Combinatory Logic , 1969 .

[7]  Andrew K. Wright Simple imperative polymorphism , 1995, LISP Symb. Comput..

[8]  Luís Damas Type assignment in programming languages , 1984 .

[9]  L. Greengard The Rapid Evaluation of Potential Fields in Particle Systems , 1988 .

[10]  Mike Fagan,et al.  Soft typing: an approach to type checking for dynamically typed languages , 1992 .

[11]  Feng Zhao An O(N) Algorithm for Three-dimensional N-body Simulations , 2022 .

[12]  Gordon D. Plotkin,et al.  An Ideal Model for Recursive Polymorphic Types , 1986, Inf. Control..

[13]  Kwan-Liu Ma,et al.  TICL—A type inference system for Common Lisp , 1990, Softw. Pract. Exp..

[14]  Mark Lillibridge,et al.  Explicit polymorphism and CPS conversion , 1993, POPL '93.

[15]  Didier Rémy,et al.  Type checking records and variants in a natural extension of ML , 1989, POPL '89.

[16]  Nevin Heintze,et al.  Set-based analysis of ML programs , 1994, LFP '94.

[17]  Matthias Felleisen,et al.  The Denotational Specifications of Complex Languages , 2005 .

[18]  Frank Pfenning,et al.  Refinement types for ML , 1991, PLDI '91.

[19]  Marc Feeley,et al.  Using Multilisp for solving constraint satisfaction problems: An application to nucleic acid 3D structure determination , 1994, LISP Symb. Comput..

[20]  Luca Cardelli,et al.  Subtyping recursive types , 1991, POPL '91.

[21]  Carsten K. Gomard Partial type inference for untyped functional programs , 1990, LISP and Functional Programming.

[22]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[23]  J. Roger Hindley,et al.  Introduction to combinators and λ-calculus , 1986, Acta Applicandae Mathematicae.

[24]  Andreas Kind,et al.  A practical approach to type inference for EuLisp , 1993, LISP Symb. Comput..

[25]  Xavier Leroy,et al.  Polymorphic type inference and assignment , 1991, POPL '91.

[26]  Andrew K. Wright Typing References by Effect Inference , 1992, ESOP.

[27]  X. Leroy Typage polymorphe d'un langage algorithmique , 1992 .

[28]  Luca Cardelli,et al.  The Modula–3 type system , 1989, POPL '89.

[29]  Didier Rémy Extension of ML type system with a sorted equation theory on types , 1992 .

[30]  Matthias Felleisen,et al.  On the Expressive Power of Programming Languages , 1990, ESOP.

[31]  Mitchell Wand,et al.  Type Inference for Partial Types is Decidable , 1992, ESOP.

[32]  Xavier Leroy,et al.  Dynamics in ML , 1991, Journal of Functional Programming.

[33]  John C. Mitchell,et al.  Coercion and type inference , 1984, POPL.

[34]  D UllmanJeffrey,et al.  A Scheme for the Automatic Inference of Variable Types , 1980 .

[35]  Fritz Henglein Dynamic Typing , 1992, ESOP.

[36]  Robin Milner,et al.  Definition of standard ML , 1990 .

[37]  Simon L. Peyton Jones,et al.  Report on the programming language Haskell: a non-strict, purely functional language version 1.2 , 1992, SIGP.

[38]  A. K. Wmght Polymorphism for imperative languages without imperative types , 1993 .

[39]  Jeffrey D. Ullman,et al.  A Scheme for the Automatic Inference of Variable Types , 1980, JACM.

[40]  Christopher T. Haynes,et al.  Type reconstruction for variable-arity procedures , 1994, LFP '94.

[41]  Fritz Henglein,et al.  Safe polymorphic type inference for a dynamically typed language: translating Scheme to ML , 1995, FPCA '95.

[42]  Alexander Aiken,et al.  Type inclusion constraints and type inference , 1993, FPCA '93.

[43]  Ramesh Viswanathan,et al.  Standard ML-NJ Weak Polymorphism and Imperative Constructs , 1996, Inf. Comput..

[44]  Mike Paterson,et al.  Linear unification , 1976, STOC '76.

[45]  Andrew W. Appel,et al.  Smartest recompilation , 1993, POPL '93.

[46]  Craig Chambers,et al.  The design and implementation of the self compiler, an optimizing compiler for object-oriented programming languages , 1992 .

[47]  Andrew Wright Polymorphism for Imperative Languages without Imperative Types , 1993 .

[48]  Matthias Felleisen,et al.  Set-Based Analysis for Full Scheme and Its Use in Soft-Typing , 1995 .

[49]  Satish R. Thatte,et al.  Type Inference with Partial Types , 1988, Theor. Comput. Sci..

[50]  Nevin Heintze Set Based Analysis of ML Programs (Extended Abstract) , 1993 .

[51]  Guy L. Steele,et al.  Building interpreters by composing monads , 1994, POPL '94.

[52]  Feng Zhao,et al.  An {\it bf O(N)} Algorithm for Three-Dimensional N-body Simulations , 1987 .

[53]  Andrew K. Wright Practical soft typing , 1994, Rice COMP TR.

[54]  Martín Abadi,et al.  Dynamic typing in polymorphic languages , 1995, Journal of Functional Programming.

[55]  Didier Rémy,et al.  Type inference for records in natural extension of ML , 1994 .

[56]  Matthias Felleisen,et al.  A Syntactic Approach to Type Soundness , 1994, Inf. Comput..

[57]  M PaulHudakEt,et al.  Report on the programming language haskell: a non-strict , 1992 .

[58]  John Greiner,et al.  Standard ML Weak Polymorphism Can Be Sound , 1993 .

[59]  Randall D. Beer Preliminary report on a practical type inference system for common Lisp , 1987, LIPO.

[60]  Robert A. MacLachlan,et al.  The Python compiler for CMU Common Lisp , 1992, LFP '92.

[61]  Alexander Aiken,et al.  Soft typing with conditional types , 1994, POPL '94.

[62]  Alexander Aiken,et al.  Dynamic typing and subtype inference , 1995, FPCA '95.

[63]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[64]  Pierre Jouvelot,et al.  The type and effect discipline , 1992, [1992] Proceedings of the Seventh Annual IEEE Symposium on Logic in Computer Science.

[65]  John C. Mitchell,et al.  Type inference with simple subtypes , 1991, Journal of Functional Programming.

[66]  Suresh Jagannathan,et al.  Analyzing stores and references in a parallel symbolic language , 1994, LFP '94.

[67]  Mitchell Wand,et al.  Type inference for record concatenation and multiple inheritance , 1989, [1989] Proceedings. Fourth Annual Symposium on Logic in Computer Science.

[68]  Suresh Jagannathan,et al.  Effective Flow Analysis for Avoiding Run-Time Checks , 1995, SAS.

[69]  Xavier Leroy,et al.  Unboxed objects and polymorphic typing , 1992, POPL '92.

[70]  Mitchell Wand,et al.  Complete Type Inference for Simple Objects , 1987, LICS.

[71]  Stefan Kaes Type inference in the presence of overloading, subtyping and recursive types , 1992, LFP '92.

[72]  Robert Cartwright,et al.  Soft typing , 2004, SIGP.

[73]  Mads Tofte,et al.  Type Inference for Polymorphic References , 1990, Inf. Comput..

[74]  D. H. Bartley,et al.  Revised4 report on the algorithmic language scheme , 1991, LIPO.

[75]  Olin Shivers,et al.  Control-flow analysis of higher-order languages of taming lambda , 1991 .