{"title":"Does LISP differ from ALGOL essentially?","authors":"F. Simon","doi":"10.1145/1411829.1411836","DOIUrl":null,"url":null,"abstract":"A fare spread opinion is that LISP and ALGOL belong to different \"families\" of programming languages. In our current activities concerning LISP, we are trying to characterise pure LISP as an ALGOL-like programming language in the sense of ALGOL 60 resp. ALGOL 68 /1/, /2/. LISP is considered as a sublanguage of ALGOL 60, where the datatype \"s-expression\" with its 5 standard functions is introduced and where procedure identifiers are allowed as values of function-procedures (ALGOL 68) in order to have upward FUNARGs /3/. In contrast to the operational semantic definitions via interpreters, this approach gives a precise, mathematical definition of the LISP-semantic. Within this framework we are able to prove properties of LISP-programs much easier than using inductive proofs based on an interpreter. Our method for modelling variable bindings follows the well known ALGOL 60 definitions, which are very close to the FUNARG-feature of LISP 1.5, while other authors prefer the \"shallow access binding\" method; e. g. M.J. Gordon gives a formal definition of pure LISP by algebraic methods /4/.","PeriodicalId":404213,"journal":{"name":"ACM Lisp Bulletin","volume":"43 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"1979-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"ACM Lisp Bulletin","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1411829.1411836","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
A fare spread opinion is that LISP and ALGOL belong to different "families" of programming languages. In our current activities concerning LISP, we are trying to characterise pure LISP as an ALGOL-like programming language in the sense of ALGOL 60 resp. ALGOL 68 /1/, /2/. LISP is considered as a sublanguage of ALGOL 60, where the datatype "s-expression" with its 5 standard functions is introduced and where procedure identifiers are allowed as values of function-procedures (ALGOL 68) in order to have upward FUNARGs /3/. In contrast to the operational semantic definitions via interpreters, this approach gives a precise, mathematical definition of the LISP-semantic. Within this framework we are able to prove properties of LISP-programs much easier than using inductive proofs based on an interpreter. Our method for modelling variable bindings follows the well known ALGOL 60 definitions, which are very close to the FUNARG-feature of LISP 1.5, while other authors prefer the "shallow access binding" method; e. g. M.J. Gordon gives a formal definition of pure LISP by algebraic methods /4/.