{"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}
引用次数: 2
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.<>