{"title":"尾递归LISP程序的迭代解释","authors":"Patrick Greussay","doi":"10.1145/1411798.1411809","DOIUrl":null,"url":null,"abstract":"The design of a LISP interpreter that allows tail-recursive procedures to be interpreted iteratively is presented at the machine-language level. Iterative interpretation means that, without any program transformations, no environments and continuations will be stacked unless necessary.\n We apply a specific modification within a traditional stack-oriented version of LISP interpreter, without any non-recursive control structure. The design is compatible with value-cells as well as a-lists LISP processors.\n We present a complete modified interpreter written itself in LISP and an informal proof that it meets its requirements.","PeriodicalId":404213,"journal":{"name":"ACM Lisp Bulletin","volume":"122 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1978-07-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"6","resultStr":"{\"title\":\"Iterative interpretation of tail-recursive LISP procedures\",\"authors\":\"Patrick Greussay\",\"doi\":\"10.1145/1411798.1411809\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"The design of a LISP interpreter that allows tail-recursive procedures to be interpreted iteratively is presented at the machine-language level. Iterative interpretation means that, without any program transformations, no environments and continuations will be stacked unless necessary.\\n We apply a specific modification within a traditional stack-oriented version of LISP interpreter, without any non-recursive control structure. The design is compatible with value-cells as well as a-lists LISP processors.\\n We present a complete modified interpreter written itself in LISP and an informal proof that it meets its requirements.\",\"PeriodicalId\":404213,\"journal\":{\"name\":\"ACM Lisp Bulletin\",\"volume\":\"122 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"1978-07-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"6\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"ACM Lisp Bulletin\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/1411798.1411809\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM Lisp Bulletin","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1411798.1411809","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Iterative interpretation of tail-recursive LISP procedures
The design of a LISP interpreter that allows tail-recursive procedures to be interpreted iteratively is presented at the machine-language level. Iterative interpretation means that, without any program transformations, no environments and continuations will be stacked unless necessary.
We apply a specific modification within a traditional stack-oriented version of LISP interpreter, without any non-recursive control structure. The design is compatible with value-cells as well as a-lists LISP processors.
We present a complete modified interpreter written itself in LISP and an informal proof that it meets its requirements.