{"title":"多态类型检查方案","authors":"Steven L. Jenkins, Gary T. Leavens","doi":"10.1016/S0096-0551(97)00002-7","DOIUrl":null,"url":null,"abstract":"<div><p>This paper presents a type-inference system for Scheme that is designed to be used by students in an introductory programming course. The major goal of the work is to present a type system that is simple enough to be used by beginner students, yet is powerful enough to express the ideas of polymorphism, abstract data types (ADTs), and higher-order procedures. The system also performs some rudimentary syntax checking. The system uses subtyping, but only in a primitive fashion. It has a type <em>datum</em> which is a supertype of all types, and a type <em>poof</em> which is a subtype of all types. It uses intersection types to control the use of <em>datum</em> and to generate simple but accurate types.</p></div>","PeriodicalId":100315,"journal":{"name":"Computer Languages","volume":"22 4","pages":"Pages 215-223"},"PeriodicalIF":0.0000,"publicationDate":"1996-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"https://sci-hub-pdf.com/10.1016/S0096-0551(97)00002-7","citationCount":"6","resultStr":"{\"title\":\"Polymorphic type-checking in scheme\",\"authors\":\"Steven L. Jenkins, Gary T. Leavens\",\"doi\":\"10.1016/S0096-0551(97)00002-7\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"<div><p>This paper presents a type-inference system for Scheme that is designed to be used by students in an introductory programming course. The major goal of the work is to present a type system that is simple enough to be used by beginner students, yet is powerful enough to express the ideas of polymorphism, abstract data types (ADTs), and higher-order procedures. The system also performs some rudimentary syntax checking. The system uses subtyping, but only in a primitive fashion. It has a type <em>datum</em> which is a supertype of all types, and a type <em>poof</em> which is a subtype of all types. It uses intersection types to control the use of <em>datum</em> and to generate simple but accurate types.</p></div>\",\"PeriodicalId\":100315,\"journal\":{\"name\":\"Computer Languages\",\"volume\":\"22 4\",\"pages\":\"Pages 215-223\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1996-12-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"https://sci-hub-pdf.com/10.1016/S0096-0551(97)00002-7\",\"citationCount\":\"6\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Computer Languages\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://www.sciencedirect.com/science/article/pii/S0096055197000027\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Computer Languages","FirstCategoryId":"1085","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S0096055197000027","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
This paper presents a type-inference system for Scheme that is designed to be used by students in an introductory programming course. The major goal of the work is to present a type system that is simple enough to be used by beginner students, yet is powerful enough to express the ideas of polymorphism, abstract data types (ADTs), and higher-order procedures. The system also performs some rudimentary syntax checking. The system uses subtyping, but only in a primitive fashion. It has a type datum which is a supertype of all types, and a type poof which is a subtype of all types. It uses intersection types to control the use of datum and to generate simple but accurate types.