{"title":"使用Prolog的编程语言语义的快速原型","authors":"B. Bryant, Aiqin Pan","doi":"10.1109/CMPSAC.1989.65123","DOIUrl":null,"url":null,"abstract":"Prolog is proposed as an implementable specification language for programming language semantics. It is shown that both static semantics, specified by either attribute grammar or denotational semantics, and dynamic semantics, specified by either denotational semantics or axiomatic semantics, can be conveniently expressed in Prolog with the following advantages: (1) because the notations used in formal semantics are based upon logic, it is straightforward to translate these into Prolog, thus making the conformity of the Prolog specifications with the original specifications more reliable; (2) specifications expressed in Prolog are executable and can therefore be considered as prototype implementations of the semantics; and (3) Prolog exhibits the maximum amount of parallelism in the specifications, indicating where production quality systems might be implemented in parallel for improved performance. Prolog allows for a complete programming language specification which integrates all aspects of programming language semantics into a single unified framework.<<ETX>>","PeriodicalId":339677,"journal":{"name":"[1989] Proceedings of the Thirteenth Annual International Computer Software & Applications Conference","volume":"17 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1989-09-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"14","resultStr":"{\"title\":\"Rapid prototyping of programming language semantics using Prolog\",\"authors\":\"B. Bryant, Aiqin Pan\",\"doi\":\"10.1109/CMPSAC.1989.65123\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Prolog is proposed as an implementable specification language for programming language semantics. It is shown that both static semantics, specified by either attribute grammar or denotational semantics, and dynamic semantics, specified by either denotational semantics or axiomatic semantics, can be conveniently expressed in Prolog with the following advantages: (1) because the notations used in formal semantics are based upon logic, it is straightforward to translate these into Prolog, thus making the conformity of the Prolog specifications with the original specifications more reliable; (2) specifications expressed in Prolog are executable and can therefore be considered as prototype implementations of the semantics; and (3) Prolog exhibits the maximum amount of parallelism in the specifications, indicating where production quality systems might be implemented in parallel for improved performance. Prolog allows for a complete programming language specification which integrates all aspects of programming language semantics into a single unified framework.<<ETX>>\",\"PeriodicalId\":339677,\"journal\":{\"name\":\"[1989] Proceedings of the Thirteenth Annual International Computer Software & Applications Conference\",\"volume\":\"17 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1989-09-20\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"14\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"[1989] Proceedings of the Thirteenth Annual International Computer Software & Applications Conference\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/CMPSAC.1989.65123\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"[1989] Proceedings of the Thirteenth Annual International Computer Software & Applications Conference","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/CMPSAC.1989.65123","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Rapid prototyping of programming language semantics using Prolog
Prolog is proposed as an implementable specification language for programming language semantics. It is shown that both static semantics, specified by either attribute grammar or denotational semantics, and dynamic semantics, specified by either denotational semantics or axiomatic semantics, can be conveniently expressed in Prolog with the following advantages: (1) because the notations used in formal semantics are based upon logic, it is straightforward to translate these into Prolog, thus making the conformity of the Prolog specifications with the original specifications more reliable; (2) specifications expressed in Prolog are executable and can therefore be considered as prototype implementations of the semantics; and (3) Prolog exhibits the maximum amount of parallelism in the specifications, indicating where production quality systems might be implemented in parallel for improved performance. Prolog allows for a complete programming language specification which integrates all aspects of programming language semantics into a single unified framework.<>