Polymorphism for Imperative Languages without Imperative Types
dc.contributor.author | Wright, Andrew | en_US |
dc.date.accessioned | 2017-08-02T22:03:19Z | en_US |
dc.date.available | 2017-08-02T22:03:19Z | en_US |
dc.date.issued | 1993-02-18 | en_US |
dc.date.note | February 18, 1993 | en_US |
dc.description.abstract | The simple and elegant Hindley/Milner polymorphic type discipline is the basis of the type system of Standard ML, but ML's imperative features are a blight on this otherwise clean landscape. Polymorphism and imperative features cannot freely coexist without compromising type safety, hence Standard MLassigns imperative types of limited polymorphism to procedures that use references, exceptions, or continuations. Several other solutions exist, but all introduce new kinds of types that complicate the type system, contaminate module signatures, and violate abstraction by revealing the pure or imperative nature of a procedure in its type. We propose a seemingly radical alternative: by restricting polymorphism to values, imperative procedures have the same types as their behaviorally equivalent functional counterparts. Although the resulting type system does not accept all expressions typable in the purely functional sublanguage, this limitation is seldom encountered in practice. The vast majority of ML code already satisfies the restriction of polymorphism to values, and simple syntactic modifications fix the few non-conforming programs. | en_US |
dc.format.extent | 10 pp | en_US |
dc.identifier.citation | Wright, Andrew. "Polymorphism for Imperative Languages without Imperative Types." (1993) https://hdl.handle.net/1911/96432. | en_US |
dc.identifier.digital | TR93-200 | en_US |
dc.identifier.uri | https://hdl.handle.net/1911/96432 | en_US |
dc.language.iso | eng | en_US |
dc.rights | You are granted permission for the noncommercial reproduction, distribution, display, and performance of this technical report in any format, but this permission is only for a period of forty-five (45) days from the most recent time that you verified that this technical report is still available from the Computer Science Department of Rice University under terms that include this permission. All other rights are reserved by the author(s). | en_US |
dc.title | Polymorphism for Imperative Languages without Imperative Types | en_US |
dc.type | Technical report | en_US |
dc.type.dcmi | Text | en_US |
Files
Original bundle
1 - 1 of 1