1989American Association for Artificial Intelligence eBooksRequires access

GLISP: a Lisp-based programming system with data abstraction

Jr. Gordon S. Novak

Open publisher page 6 citations

Abstract

GLISI’ is a high-level language that. is compiled into LISP It provides a versatile abst~art,-dnt.a-t.ypc facility with hierarchical inheritance of pl oprl ties and object,-centered programming GLISP programs are shorter and more readable than equivalent LISP programs The object code produced by GLISP is optimized, making it about as cfflcient as handwritten LISP An integrated programming environment is provided, including automatic incremental compilation, interpretive programming features, and an intelligent display-hased inspector/editor for data and data-type descriptions GLISP code is relatively portahlr; the compiler and the data inspcrtor are implemcntcd for most major dialects of LISI’ and arc availablr flee or at nominal cost GI,ISP (NOVAK 1982, 1983A, 1983B) is a high-level language, based on LISP and including LISP as a sublanguage, that is compiled into LISP (which can be further compiled t,o machine language by the LISP compiler). The GLISP system runs within an existing LISP system and provides a.11 intrgratcd programming environment, that includes automatic incremental compilation of GLISP programs, interactive execution and debugging, and display-based editing and inspecThis research was supported in part by NSF grant SED-7912803 in the Joint National Science Foundation National Institute of Education Program of Research on Cognitive Processes and the Struct,urr of Knowledge in Science and Mathematics, and in part by the Defense Advanced Resealrh Projects Agency rmdel contract MDA-903-80-c-007 Author’s present address: Computer Science Department, University of Texas at Austin, Austin, TX: 78712 tion of data. IJse of GLISP makes writing, debugging, and modifying programs significantly easier; at the same time, the code produced by the compiler is optimized so that, it,s execution efficiency is comparable to that of handwritten LISP This article describes features of GLISP and illustrates them with examples Most of the syntax of GI,ISI’ is similar to LISP syntax or PASCAL synt,ax, so explicit. treatment of GLISP syntax will be brief. GLISP programs are compiled rclativc to a knowleflgc hasc of ohjcct, descriptions, a form of abstract. data types (Liskov et al. 1977; Wulf, London, ,Q Shaw 1976). A primary goal of the USC of abstract data types in GLISP is to make programming easier The ifnplerrient.:tt,iolis of’ objects are described in a single place; the compiler uses t,hc object. descriptions to convert GLISP code written in terms of user objects into efficient 1,TSP code writt,en in terms of the implcment,ations of the oqjects in LISP This allows the implcmentations of ol?jects to hc changed without, changing the code; it also allows the same code t.o be cffect,ivc for ol?ject.s that arc implemented in diffcrcnt, ways and thereby allows the accumulation of programming knowledge in the form of generic programs Figure 1 illustrates the combination of information from these t,hree sources; the recursive use of abstract, data types and generic programs in the coinpilation process provides multiplicative power for describing programs Overall, GLISP progranl syntax is like t,hat, of I,lSI’ THE AI MAGAZINE Fall 1983 37 Object 1)rscrit)tions ‘, ‘ 4 GLISP L LISP ry Compiler -----+ Code .c’ Figure 1 GLISP compila.tioIl GLISP contains ordinary LISP as a sublanguage; LISP code can be mixed with GLISP code, so t,hat no capabilities of the underlying LISP syst,cm arc lost. WISP provides I’ASC!AI,-like reference to sllbstrllct.11res and properties, infix arit,hmct,ic expressions, and PASCZAI-like conl,rol statements Ol?jcd,-cerit.ered programming is built, in; oplimized compilation allows object,-c,cnt,cred programs to ruii efficiently. GLISP is easily cxt,ensible for new ot~.jcct, represenl,at,ions. Operator ovcrloatling for user-defined objects occurs automatically when arit,hmet,ic operators are tlcfincd as message selcct,ors for t,liose objects The compiler can compile optimized code for access to object8 represent,ed in userspecified reprcscnt,at,ion languages. GLISP has also been ex!,cndcd as a hardware description language for describing VLSI designs.

About this research paper

What this paper is about

GLISI’ is a high-level language that. is compiled into LISP It provides a versatile abst~art,-dnt.a-t.ypc facility with hierarchical inheritance of pl oprl ties and object,-centered programming GLISP programs are shorter and more readable than equivalent LISP programs The object code produced by GLISP is optimized, making it about as cfflcient as handwritten LISP An integrated programming environment is provided, including automatic incremental compilation, interpretive programming features, and an intelligent display-hased inspector/editor for data and data-type descriptions GLISP code is relatively portahlr; the compiler and the data inspcrtor are implemcntcd for most major dialects of LISI’ and arc availablr flee or at nominal cost GI,ISP (NOVAK 1982, 1983A, 1983B) is a high-level language, based on LISP and including LISP as a sublanguage, that is compiled into LISP (which can be further compiled t,o machine language by the LISP compiler). The GLISP system runs within an existing LISP system and provides a.11 intrgratcd programming environment, that includes automatic incremental compilation of GLISP programs, interactive execution and debugging, and display-based editing and inspecThis research was supported in part by NSF grant SED-7912803 in the Joint National Science Foundation National Institute of Education Program of Research on Cognitive Processes and the Struct,urr of Knowledge in Science and Mathematics, and in part by the Defense Advanced Resealrh Projects Agency rmdel contract MDA-903-80-c-007 Author’s present address: Computer Science Department, University of Texas at Austin, Austin, TX: 78712 tion of data. IJse of GLISP makes writing, debugging, and modifying programs significantly easier; at the same time, the code produced by the compiler is optimized so that, it,s execution efficiency is comparable to that of handwritten LISP This article describes features of GLISP and illustrates them with examples Most of the syntax of GI,ISI’ is similar to LISP syntax or PASCAL synt,ax, so explicit. treatment of GLISP syntax will be brief. GLISP programs are compiled rclativc to a knowleflgc hasc of ohjcct, descriptions, a form of abstract. data types (Liskov et al. 1977; Wulf, London, ,Q Shaw 1976). A primary goal of the USC of abstract data types in GLISP is to make programming easier The ifnplerrient.:tt,iolis of’ objects are described in a single place; the compiler uses t,hc object. descriptions to convert GLISP code written in terms of user objects into efficient 1,TSP code writt,en in terms of the implcment,ations of the oqjects in LISP This allows the implcmentations of ol?jects to hc changed without, changing the code; it also allows the same code t.o be cffect,ivc for ol?ject.s that arc implemented in diffcrcnt, ways and thereby allows the accumulation of programming knowledge in the form of generic programs Figure 1 illustrates the combination of information from these t,hree sources; the recursive use of abstract, data types and generic programs in the coinpilation process provides multiplicative power for describing programs Overall, GLISP progranl syntax is like t,hat, of I,lSI’ THE AI MAGAZINE Fall 1983 37 Object 1)rscrit)tions ‘, ‘ 4 GLISP L LISP ry Compiler -----+ Code .c’ Figure 1 GLISP compila.tioIl GLISP contains ordinary LISP as a sublanguage; LISP code can be mixed with GLISP code, so t,hat no capabilities of the underlying LISP syst,cm arc lost. WISP provides I’ASC!AI,-like reference to sllbstrllct.11res and properties, infix arit,hmct,ic expressions, and PASCZAI-like conl,rol statements Ol?jcd,-cerit.ered programming is built, in; oplimized compilation allows object,-c,cnt,cred programs to ruii efficiently. GLISP is easily cxt,ensible for new ot~.jcct, represenl,at,ions. Operator ovcrloatling for user-defined objects occurs automatically when arit,hmet,ic operators are tlcfincd as message selcct,ors for t,liose objects The compiler can compile optimized code for access to object8 represent,ed in userspecified reprcscnt,at,ion languages. GLISP has also been ex!,cndcd as a hardware description language for describing VLSI designs.

Why it matters

OpenAlex reports 6 citations for this work. Citation counts describe recorded attention and do not establish research quality.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

GLISI’ is a high-level language that. is compiled into LISP It provides a versatile abst~art,-dnt.a-t.ypc facility with hierarchical inheritance of pl oprl ties and object,-centered programming GLISP programs are shorter and more readable than equivalent LISP programs The object code produced by GLISP is optimized, making it about as cfflcient as handwritten LISP An integrated programming environment is provided, including automatic incremental compilation, interpretive programming features, and an intelligent display-hased inspector/editor for data and data-type descriptions GLISP code is relatively portahlr; the compiler and the data inspcrtor are implemcntcd for most major dialects of LISI’ and arc availablr flee or at nominal cost GI,ISP (NOVAK 1982, 1983A, 1983B) is a high-level language, based on LISP and including LISP as a sublanguage, that is compiled into LISP (which can be further compiled t,o machine language by the LISP compiler). The GLISP system runs within an existing LISP system and provides a.11 intrgratcd programming environment, that includes automatic incremental compilation of GLISP programs, interactive execution and debugging, and display-based editing and inspecThis research was supported in part by NSF grant SED-7912803 in the Joint National Science Foundation National Institute of Education Program of Research on Cognitive Processes and the Struct,urr of Knowledge in Science and Mathematics, and in part by the Defense Advanced Resealrh Projects Agency rmdel contract MDA-903-80-c-007 Author’s present address: Computer Science Department, University of Texas at Austin, Austin, TX: 78712 tion of data. IJse of GLISP makes writing, debugging, and modifying programs significantly easier; at the same time, the code produced by the compiler is optimized so that, it,s execution efficiency is comparable to that of handwritten LISP This article describes features of GLISP and illustrates them with examples Most of the syntax of GI,ISI’ is similar to LISP syntax or PASCAL synt,ax, so explicit. treatment of GLISP syntax will be brief. GLISP programs are compiled rclativc to a knowleflgc hasc of ohjcct, descriptions, a form of abstract. data types (Liskov et al. 1977; Wulf, London, ,Q Shaw 1976). A primary goal of the USC of abstract data types in GLISP is to make programming easier The ifnplerrient.:tt,iolis of’ objects are described in a single place; the compiler uses t,hc object. descriptions to convert GLISP code written in terms of user objects into efficient 1,TSP code writt,en in terms of the implcment,ations of the oqjects in LISP This allows the implcmentations of ol?jects to hc changed without, changing the code; it also allows the same code t.o be cffect,ivc for ol?ject.s that arc implemented in diffcrcnt, ways and thereby allows the accumulation of programming knowledge in the form of generic programs Figure 1 illustrates the combination of information from these t,hree sources; the recursive use of abstract, data types and generic programs in the coinpilation process provides multiplicative power for describing programs Overall, GLISP progranl syntax is like t,hat, of I,lSI’ THE AI MAGAZINE Fall 1983 37 Object 1)rscrit)tions ‘, ‘ 4 GLISP L LISP ry Compiler -----+ Code .c’ Figure 1 GLISP compila.tioIl GLISP contains ordinary LISP as a sublanguage; LISP code can be mixed with GLISP code, so t,hat no capabilities of the underlying LISP syst,cm arc lost. WISP provides I’ASC!AI,-like reference to sllbstrllct.11res and properties, infix arit,hmct,ic expressions, and PASCZAI-like conl,rol statements Ol?jcd,-cerit.ered programming is built, in; oplimized compilation allows object,-c,cnt,cred programs to ruii efficiently. GLISP is easily cxt,ensible for new ot~.jcct, represenl,at,ions. Operator ovcrloatling for user-defined objects occurs automatically when arit,hmet,ic operators are tlcfincd as message selcct,ors for t,liose objects The compiler can compile optimized code for access to object8 represent,ed in userspecified reprcscnt,at,ion languages. GLISP has also been ex!,cndcd as a hardware description language for describing VLSI designs.

Key concepts: Lisp, Programming language, Computer science, Compiler, Debugging, Exception handling

Related papers

Back to paper searchBrowse research topicsOriginal source
GLISP: a Lisp-based programming system with data abstraction — Research Paper | ScholarLens