{"title":"函数式编程中的软件容错","authors":"Ramaswamy Govindarajan","doi":"10.1109/CMPSAC.1992.217569","DOIUrl":null,"url":null,"abstract":"Handing exceptions in functional languages has always been a problem, due to the inherent conflict between the control-flow-oriented approach of exception handlers and the functional style evaluation. The author proposes an approach that discards the conventional view of treating exceptions as a means of effecting control transfer. Instead, exceptions are used to change the state of an object: A terminate exception is viewed as shielding the input object. A resume exception designates the input object as curable and requires the immediate application of a handler function. This approach enables the description of the semantics of exception raising functions without associating any implementation restriction and without the loss of referential transparency and commutating of functions.<<ETX>>","PeriodicalId":286518,"journal":{"name":"[1992] Proceedings. The Sixteenth Annual International Computer Software and Applications Conference","volume":"52 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1992-09-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":"{\"title\":\"Software fault-tolerance in functional programming\",\"authors\":\"Ramaswamy Govindarajan\",\"doi\":\"10.1109/CMPSAC.1992.217569\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Handing exceptions in functional languages has always been a problem, due to the inherent conflict between the control-flow-oriented approach of exception handlers and the functional style evaluation. The author proposes an approach that discards the conventional view of treating exceptions as a means of effecting control transfer. Instead, exceptions are used to change the state of an object: A terminate exception is viewed as shielding the input object. A resume exception designates the input object as curable and requires the immediate application of a handler function. This approach enables the description of the semantics of exception raising functions without associating any implementation restriction and without the loss of referential transparency and commutating of functions.<<ETX>>\",\"PeriodicalId\":286518,\"journal\":{\"name\":\"[1992] Proceedings. The Sixteenth Annual International Computer Software and Applications Conference\",\"volume\":\"52 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1992-09-21\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"2\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"[1992] Proceedings. The Sixteenth Annual International Computer Software and Applications Conference\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/CMPSAC.1992.217569\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"[1992] Proceedings. The Sixteenth Annual International Computer Software and Applications Conference","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CMPSAC.1992.217569","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Software fault-tolerance in functional programming
Handing exceptions in functional languages has always been a problem, due to the inherent conflict between the control-flow-oriented approach of exception handlers and the functional style evaluation. The author proposes an approach that discards the conventional view of treating exceptions as a means of effecting control transfer. Instead, exceptions are used to change the state of an object: A terminate exception is viewed as shielding the input object. A resume exception designates the input object as curable and requires the immediate application of a handler function. This approach enables the description of the semantics of exception raising functions without associating any implementation restriction and without the loss of referential transparency and commutating of functions.<>