A LISP Machine with Very Compact Programs

Total Page:16

File Type:pdf, Size:1020Kb

A LISP Machine with Very Compact Programs Session 25 Hardware and Software for Artificial Intelligence A LISP MACHINE WITII VERY COMPACT PROGRAMS L. Peter Deutsch Xerox Corporation, Palo Alto Research Center (PARC) Palo Alto, California 94304 Abstract This paper presents a machine designed for LISP has many data types (e.g. list, compact representation and rapid execution symbolic atom, integer) but no declarations. of LISP programs, The machine language is a The usual implementation of languages with factor of 2 to 5 more compact than this property affixes a tag to each datum to S-expressions or conventional compiled code, indicate its type. In LISP, however, the . and the compiler is extremely simple. The vast majority of data are pointers to lists encoding scheme is potentially applicable to or atoms, and it would be wasteful to leave data as well as program. The machine also room for a full word plus tag (the space provides for user-defined data structures. needed for an integer datum, for example) in every place where a datum can appear such as Introduction the CAR and CDR of list cells, Consequently, in BBN-LISP every datum is a Few existing computers permit convenient or pointer; integers, strings, etc, are all efficient implementation of dynamic storage referenced indirectly. Storage is allocated allocation, recursive procedures, or in quanta, and each quantum holds data of operations on data whose type is represented only one type, so what type of object a explicitly at run time rather than given pointer references is just a function determined at compile time. This mismatch of the object's address, i.e, the pointer between machine and language design plagues itself. every implementor of languages designed for manipulation of structured information. The chief drawback of this scheme is Yhat Neither of the usual software solutions to every built-in function which produces a this problem is entirely satisfactory. number as a result (such as PLUS, the Interpretive systems are easy to build and addition function) must allocate a word to flexible, but intrinsically inefficient; hold the result. This leads to frequent, compilers which approach the efficiency of time-consuming garbage collections. those for conventional languages are hard to BBN-LISP circumvents this problem for the write and often force the implementor (and most part by permanently storing all the user) to sacrifice valuable but expensive integers from -1536 to +I535 in consecutive language features for the sake of cells and just returning a pointer to one of efficiency. On many machines compiled code these cells if a numerical result is in this also occupies at least as much space as a range, rather than allocating a new cell. structured representation of the source In MicroLISP, which is intended as a program, reasonably efficient numerical language, data on the stack (temporary results and An alternative approach to this problem is variable bindings) carry a type tag to design machines whose code structure more identifying them as integers, floating point closely resembles that of their major numbers, or pointers. In this way, long programming language(s). This approach of numerical calculations can take place tailoring the machine to the language was without any consumption uf allocated space. first used in the Burroughs B5000 and successor machines, which were designed to No existing LISP system permits the user to execute ALGOL 60 programs, 2 In recent years, define his own packed data structures, the availability of microprogrammed MicroLISP includes such a facility, since it processors and the continuing decline in the can be made inexpensive when implemented in cost of processor hardware and design have the machine language and since its absence prompted several experiments of this sort at from LISP is one of the reasons most universities* and at least one successful frequently cited for choosing other experiment by a large company6 and one languages for complex symbolic computation. unsuccessful new commercial venture.3 The details are presented in Appendix A, since they are somewhat peripheral to the The present paper describes a machine design rest of this paper, It is worth noting that for efficient representation and execution the scheme could be implemented within of BBN-LISP programs. BBN-LISP is an BBN-LISP and even lends itself to efficient interactive system developed from the LISP compilation in the usual case, language, 9 10 Readers unfamiliar with LISP should consult Weissman's excellent primers; --Control and Bindinq Structure some details particular to BBN-LISP appear in the next sections of this paper. A MicroLISP uses a single stack structure for complete and well-maintained but voluminous both control and variable bindings, reference manual for BBN-LISP is also essentially as described in a recent paper-1 available.13 The machine design presented A function call allocates a "basic framev here will be referred to as MicroLISP, a for the arguments and a "frame extensionfV name intended to connote both code for control information and temporary compactness and possible microprogrammed values. The basic frame contains the implementation. function name, the argument values (bindings), and a pointer to the argument In both BBN-LISP and MicroLISP, all variable names. The frame extension holds a pointer bindings appear in the basic frame. In to the caller's frame extension and a BBN-LISP half of each word in the basic variety of other bookkeeping information. frame is reserved for the name, In The FUNARG capability of LISP 1.5, i.e, the MicroLISP, the basic frame contains a single ability to construct a data object pointer to a table of names (the LNT; see comprising a function and a binding below). Either scheme requires that any environment, is provided through a primitive PROG or open LAMBDA which does not function which creates an "environment constitute the entire body of a function be descriptor" pointing to a specified frame, made a separate subfunction, since PROG As long as there are accessible references variables are bound at the time the frame is to this descriptor, the frame continues to created, i.e. when the function is entered. exist, Environment descriptors also allow The MicroLISP scheme may slow down free the user to construct cooperating sequential variable searches, since a name table may processes (coroutines) ; the stack becomes not be in core any longer when the search tree-structured rather than linear, as in wants to scan it, Its advantages are that the Burroughs B6500.12 it is not necessary to insert the name of each variable at function entry time, and BBN-LISP, like most programming languages, that the entire word is available for recognizes two kinds of accesses to holding the binding, which (with the help of variables: "loadn and "storew. This duality a few type bits elsewhere in the frame) may actually exists for data structures as well thus be a full-word integer or real number. (CAR-RPLACA, GET-PUT, etc.) but is not treated systematically. MicroLISP Code Desisn systematizes this concept by allowing a function to have, in effect, two Conventional machines generally take the definitions, one for the (normal) 8tloadn attitude that it must be convenient fox any context, one for the "storett context. The instruction to reference any word in the SET function is extended so that if the overall address space, This approach tends first argument is a list to produce instruction formats in which a (f n argl .. argn) large fraction (half or more) of the bits rather than a variable, the function fn is are devoted to a memory address. MicroLISP called in %toren mode with arguments argl takes advantage of the observed fact that a ... argn and newvalue (the second argument given LISP function references rather few of SET). SETQ is also extended in the functions and variables and therefore can obvious way, but is not particularly useful. make do with very short addresses which just A more useful function is index a global table (of commonly used (SETFQ (fn argl .,. argn) newvalue) functions) or a function-local table (of which quotes the function name and evaluates local variables and less common functions). everything else. This allows RPLACA, for Furthermore, a given name is .usually only example, to be defined as used as either a function or a variable, not (LAMBDA (X Y) (SETFQ (CAR X) Y) ) both, MicroLISP tags each name in the . tables with a function/variable flag, which The semantics of variables are simple in eliminates the need for levels of list principle: search the current basic frame, structure as a syntactic device, and tags then the caller's frame, etc. for a binding functions with an argument count, which of a variable with the desired name; if none eliminates the need for sublists as scope is found, consult the "value cell" of the delimiters, Thus MicroLISP code is variable; if this contains the special value essentially a string of byte-sized . NOBIND, the variable is unbound, (In fact, instructions, representing the original the search follows a chain through an S-expression in postfix form, where most "access linkw pointer in the frame extension bytes reference either a nglobal name tablen rather than the caller pointer or (GNT) or a nlocal name table" (LNT) as just ncontrol linkn, ta cwer application of described, FUNARGs. ) MicroLISP (and compiled BBN LISP) actually use three variations of this The LNT actually has additional internal searching strategy depending on the structure: argument names come first, then situation. Searching for the arguments of PROG and free variables, then everything the current function is pointless: their else. The nbindingtl of a free variable is a relative locations in the basic frame are pointer to the true binding, and the known to the compiler and they can be variable searching algorithm uses this accessed by indexing.
Recommended publications
  • The Evolution of Lisp
    1 The Evolution of Lisp Guy L. Steele Jr. Richard P. Gabriel Thinking Machines Corporation Lucid, Inc. 245 First Street 707 Laurel Street Cambridge, Massachusetts 02142 Menlo Park, California 94025 Phone: (617) 234-2860 Phone: (415) 329-8400 FAX: (617) 243-4444 FAX: (415) 329-8480 E-mail: [email protected] E-mail: [email protected] Abstract Lisp is the world’s greatest programming language—or so its proponents think. The structure of Lisp makes it easy to extend the language or even to implement entirely new dialects without starting from scratch. Overall, the evolution of Lisp has been guided more by institutional rivalry, one-upsmanship, and the glee born of technical cleverness that is characteristic of the “hacker culture” than by sober assessments of technical requirements. Nevertheless this process has eventually produced both an industrial- strength programming language, messy but powerful, and a technically pure dialect, small but powerful, that is suitable for use by programming-language theoreticians. We pick up where McCarthy’s paper in the first HOPL conference left off. We trace the development chronologically from the era of the PDP-6, through the heyday of Interlisp and MacLisp, past the ascension and decline of special purpose Lisp machines, to the present era of standardization activities. We then examine the technical evolution of a few representative language features, including both some notable successes and some notable failures, that illuminate design issues that distinguish Lisp from other programming languages. We also discuss the use of Lisp as a laboratory for designing other programming languages. We conclude with some reflections on the forces that have driven the evolution of Lisp.
    [Show full text]
  • Programming Languages As Operating Systems (Or Revenge of the Son of the Lisp Machine)
    Programming Languages as Operating Systems (or Revenge of the Son of the Lisp Machine) Matthew Flatt Robert Bruce Findler Shriram Krishnamurthi Matthias Felleisen Department of Computer Science∗ Rice University Houston, Texas 77005-1892 Abstract reclaim the program’s resources—even though the program and DrScheme share a single virtual machine. The MrEd virtual machine serves both as the implementa- To address this problem, MrEd provides a small set of tion platform for the DrScheme programming environment, new language constructs. These constructs allow a program- and as the underlying Scheme engine for executing expres- running program, such as DrScheme, to run nested programs sions and programs entered into DrScheme’s read-eval-print directly on the MrEd virtual machine without sacrificing loop. We describe the key elements of the MrEd virtual control over the nested programs. As a result, DrScheme machine for building a programming environment, and we can execute a copy of DrScheme that is executing its own step through the implementation of a miniature version of copy of DrScheme (see Figure 1). The inner and middle DrScheme in MrEd. More generally, we show how MrEd de- DrSchemes cannot interfere with the operation of the outer fines a high-level operating system for graphical programs. DrScheme, and the middle DrScheme cannot interfere with the outer DrScheme’s control over the inner DrScheme. 1 MrEd: A Scheme Machine In this paper, we describe the key elements of the MrEd virtual machine, and we step through the implementation The DrScheme programming environment [10] provides stu- of a miniature version of DrScheme in MrEd.
    [Show full text]
  • Lisp: Program Is Data
    LISP: PROGRAM IS DATA A HISTORICAL PERSPECTIVE ON MACLISP Jon L White Laboratory for Computer Science, M.I.T.* ABSTRACT For over 10 years, MACLISP has supported a variety of projects at M.I.T.'s Artificial Intelligence Laboratory, and the Laboratory for Computer Science (formerly Project MAC). During this time, there has been a continuing development of the MACLISP system, spurred in great measure by the needs of MACSYMAdevelopment. Herein are reported, in amosiac, historical style, the major features of the system. For each feature discussed, an attempt will be made to mention the year of initial development, andthe names of persons or projectsprimarily responsible for requiring, needing, or suggestingsuch features. INTRODUCTION In 1964,Greenblatt and others participated in thecheck-out phase of DigitalEquipment Corporation's new computer, the PDP-6. This machine had a number of innovative features that were thought to be ideal for the development of a list processing system, and thus it was very appropriate that thefirst working program actually run on thePDP-6 was anancestor of thecurrent MACLISP. This earlyLISP was patterned after the existing PDP-1 LISP (see reference l), and was produced by using the text editor and a mini-assembler on the PDP-1. That first PDP-6 finally found its way into M.I.T.'s ProjectMAC for use by theArtificial lntelligence group (the A.1. grouplater became the M.I.T. Artificial Intelligence Laboratory, and Project MAC became the Laboratory for Computer Science). By 1968, the PDP-6 wasrunning the Incompatible Time-sharing system, and was soon supplanted by the PDP-IO.Today, the KL-I 0, anadvanced version of thePDP-10, supports a variety of time sharing systems, most of which are capable of running a MACLISP.
    [Show full text]
  • Symbolics Architecture
    Symbolics Architecture David A. Moon Symbolics, Inc. W hat is an architecture? In com- languages, user interface, and operating This architecture puter systems, an architecture system. System architecture defines the rapid is a specification of an inter- product that people actually use; the other enables face. To be dignified by the name architec- levels of architecture define the mecha- development and ture, an interface should be designed for a nism underneath that implements it. Sys- long lifespan and should connect system tem architecture is implemented by soft- efficient execution of components maintained by different orga- ware; hardware only sets bounds on what large, ambitious nizations. Often an architecture is part ofa is possible. System architecture defines the product definition and defines character- motivation for most of the design choices applications. An istics on which purchasers of that product at the other levels ofarchitecture. This sec- rely, but this is not true of everything that tion is an overview of Symbolics system unconventional design is called an architecture. An architecture is architecture. avoids trading off more formal than an internal interface be- The Symbolics system presents itself to tween closely-related system components, the user through a high-resolution bitmap safety for speed. and has farther-reaching effects on system display. In addition to text and graphics, characteristics and performance. the display contains presentations of ob- A computer system typically contains jects. The user operates on the objects by many levels and types ofarchitecture. This manipulating the presentations with a article discusses three architectures de- mouse. The display includes a continuous- fined in Symbolics computers: ly updated reminder of the mouse com- (1) System architecture-defines how mands applicable to the current context.
    [Show full text]
  • The Lisp Machine: Noble Experiment Or Fabulous Failure?
    THE LISP MACHINE: NOBLE EXPERIMENT OR FABULOUS FAILURE? P. T. Withington Symbolics, Inc. The “Lisp Machine”, a custom computer oriented programming, integrated pro- work-station designed specifically for the gramming environments, computer music, execution of Lisp, has been an important integrated-circuit design, and of course part of the Lisp tradition for 20 years. Artificial Intelligence (AI). Recently, the Lisp Machine has been depre- cated in view of the demise of many Lisp But, Lisp’s purity did not come without a Machine vendors, the swing towards stan- price. The choice by many languages to dardization, and the advances that reduced expose implementational limitations is often instruction set (RISC) architectures have a choice of efficiency. The speed of the brought. But rumors of its death are greatly normal case is optimized at the risk of the exaggerated. abnormal case going undetected. Lisp, on the other hand, guarantees the unusual as Unlike most commercial computer lan- well as the usual will be dealt with uni- guages, Lisp has always been a language of formly. It must always be on its guard: ideals. Its roots are in the theory of lambda- every operation must be checked for excep- calculus. Whereas other languages burden tions. As a consequence, Lisp on conven- the programmer with implementational gaps tional machines has historically been pon- in their abstractions, Lisp has always had the derous to work with. aim of supporting complete abstractions.1 This idealistic bent of Lisp has led to it often In the early 1970’s several groups of being the language of choice for computer- researchers utilized two novel hardware oriented research in universities and indus- technologies to improve the efficiency of try.
    [Show full text]
  • A Lisp Oriented Architecture by John W.F
    A Lisp Oriented Architecture by John W.F. McClain Submitted to the Department of Electrical Engineering and Computer Science in partial fulfillment of the requirements for the degrees of Master of Science in Electrical Engineering and Computer Science and Bachelor of Science in Electrical Engineering at the MASSACHUSETTS INSTITUTE OF TECHNOLOGY September 1994 © John W.F. McClain, 1994 The author hereby grants to MIT permission to reproduce and to distribute copies of this thesis document in whole or in part. Signature of Author ...... ;......................... .............. Department of Electrical Engineering and Computer Science August 5th, 1994 Certified by....... ......... ... ...... Th nas F. Knight Jr. Principal Research Scientist 1,,IA £ . Thesis Supervisor Accepted by ....................... 3Frederic R. Morgenthaler Chairman, Depattee, on Graduate Students J 'FROM e ;; "N MfLIT oARIES ..- A Lisp Oriented Architecture by John W.F. McClain Submitted to the Department of Electrical Engineering and Computer Science on August 5th, 1994, in partial fulfillment of the requirements for the degrees of Master of Science in Electrical Engineering and Computer Science and Bachelor of Science in Electrical Engineering Abstract In this thesis I describe LOOP, a new architecture for the efficient execution of pro- grams written in Lisp like languages. LOOP allows Lisp programs to run at high speed without sacrificing safety or ease of programming. LOOP is a 64 bit, long in- struction word architecture with support for generic arithmetic, 64 bit tagged IEEE floats, low cost fine grained read and write barriers, and fast traps. I make estimates for how much these Lisp specific features cost and how much they may speed up the execution of programs written in Lisp.
    [Show full text]
  • Iliiiiiiiiiiiiwi1
    tt ¦ »:¦/ " : ^" : ¦ ¦ ' ¦¦ ¦ ¦ : WATERFORD STEAMSHIP COMPANY ¦ ¦ ¦ ' • : - ;; (LIMITED). "4^ ' ¦ - " C¦ rdrity arid :C ty i -[q f>i-: ^ ' t?^'fe w ¦¦;:|:!.r|: - Wdteiifor<M ^ ^ITA Mpi! , r!l ,: i !i) -|^i:U}, ^p; .!-J;. ' .:{ INTENDED ORDER OF SAILING. VISITORS to DUBLIN j QENERA.L QUABTEn : ; HLts)tTAlilA'f,ond ^i^M.: l &E$SI0FS} ' FEBRUARY, l<110 TRy THE ^TOECANiA"- j isJ'SiiD 0Nos of itHE d6cryirt,i are . the XlaisasS ' and , .Fti£teEA!hnx &els xn tiqOKfrfpRFHEy ¦ 1 Y8JU&f t9J0fL.;-\ ST&AiMIEKS • W«w'; t5t5ni«r i^FRANiOOiNIA;M ' FOUR ; ¦ ¦ ,i Swinr ¦ CLODAGH. DtlNBRODY. REGINALD, Byilqers' ironmo^g'ery. - ' -' : - ' " i::|' -THS ;. , ¦]¦• , ;; ; ; . i , 'i ' : LAKA ; ! ; : . : ': : ;,j v j ; ; ^ . Triple -sc&w, TuiMne | \\. HILAicVS; BB38IONS. -!,-|v • ¦V. , JTKNAPIA, Ett. COURTS 1 ¦ If OAEMANIA¦ ," Iiitnore.dfliB osincOT—Totsday <th January, 1910 • ' [ ' - . ,. : • CrowS ConTentent to- M ' -ifj 20,000. abni' J^T . : BmlDCsS—Tuesday, 4U) piouirj.'9 <? V t^md an4 "VTOTICE.—Tho O Tl PI Household Ironr^on^o ; BANIC Bralllr—Wedoesdiy,5th lanbary, ' '¦ ¦ Water* r^y- CITY :a C9UWTYiiLOAM €i|. blSGQUWT Twuwfecrow- Staapi«j "GARONIA-i'' 20,000 191a , ., .- : 'i : . ¦/ i "V— _3N. ii ford Steamship Cpra» \ : ¦ ¦ ' ' ' DutuRirrisV OTU Daaineov—T»unday,«lh . |ariua»y, Can't bo boaten (or Comfort ' «^€£"^m^ci3 1 ¦ 'a jpuUbei: of yjears) ' : ' : Bg 1910^Crosm BOSISBSS—Friday, 7U1 Jnnnaf^,1910 j Lour) , Pieces^PrbIO T" - (Wli' l ch la estAbHshed for '¦ ¦ ' !lV «iul j ChChi i mhey ' - " - ' ¦ ' ' ; ¦¦ ¦ ' 'i ^6r Stoairdcr i' Bprlty—Friday,^ ¦ ' ; nr) - 7th Jao;ary, ~S-raJ Pibces^^pgl ; - 'VCAlCPAiin-A. ' ^jSf*?l5b?''!! -I' " ima ' • < rt;ey . 1 •! ^WCS, iGowfi li . , ! ' I ' . \i . , - •!• •( ~ ¦ «nd Lite Stock foe Ship.
    [Show full text]
  • ' MACSYMA Users' Conference
    ' MACSYMA Users'Conference Held at University of California Berkeley, California July 27-29, 1977 I TECH LIBRARY KAFB, NY NASA CP-2012 Proceedings of the 1977 MACSYMA Users’ Conference Sponsored by Massachusetts Institute of Technology, University of California at Berkeley, NASA Langley Research Center and held at Berkeley, California July 27-29, 1977 Scientific and TechnicalInformation Office 1977 NATIONALAERONAUTICS AND SPACE ADMINISTRATION NA5A Washington, D.C. FOREWORD The technical programof the 1977 MACSPMA Users' Conference, held at Berkeley,California, from July 27 to July 29, 1977, consisted of the 45 contributedpapers reported in.this publicationand of a workshop.The work- shop was designed to promote an exchange of information between implementers and users of the MACSYMA computersystem and to help guide future developments. I The response to the call for papers has well exceeded the early estimates of the conference organizers; and the high quality and broad ra.ngeof topics of thepapers submitted has been most satisfying. A bibliography of papers concerned with the MACSYMA system is included at the endof this publication. We would like to thank the members of the programcommittee, the many referees, and the secretarial and technical staffs at the University of California at Berkeley and at the Laboratory for Computer Science, Massachusetts Instituteof Technology, for shepherding the many papersthrough the submission- to-publicationprocess. We are especiallyappreciative of theburden. carried by .V. Ellen Lewis of M. I. T. for serving as expert in document preparation from computer-readableto camera-ready copy for several papers. This conference originated as the result of an organizing session called by Joel Moses of M.I.T.
    [Show full text]
  • History of the Lisp Language
    History of the Lisp Language History of the Lisp Language The following information is derived from the history section of dpANS Common Lisp. Lisp is a family of languages with a long history. Early key ideas in Lisp were developed by John McCarthy during the 1956 Dartmouth Summer Research Project on Artificial Intelligence. McCarthy’s motivation was to develop an algebraic list processing language for artificial intelligence work. Implementation efforts for early dialects of Lisp were undertaken on the IBM 704, the IBM 7090, the Digital Equipment Corporation (DEC) PDP−1, the DEC PDP−6, and the PDP−10. The primary dialect of Lisp between 1960 and 1965 was Lisp 1.5. By the early 1970’s there were two predominant dialects of Lisp, both arising from these early efforts: MacLisp and Interlisp. For further information about very early Lisp dialects, see The Anatomy of Lisp or Lisp 1.5 Programmer’s Manual. MacLisp improved on the Lisp 1.5 notion of special variables and error handling. MacLisp also introduced the concept of functions that could take a variable number of arguments, macros, arrays, non−local dynamic exits, fast arithmetic, the first good Lisp compiler, and an emphasis on execution speed. For further information about Maclisp, see Maclisp Reference Manual, Revision 0 or The Revised Maclisp Manual. Interlisp introduced many ideas into Lisp programming environments and methodology. One of the Interlisp ideas that influenced Common Lisp was an iteration construct implemented by Warren Teitelman that inspired the loop macro used both on the Lisp Machines and in MacLisp, and now in Common Lisp.
    [Show full text]
  • A Lisp Machine with Very Compact Programs
    Session 25 Hardware and Software for Artificial Intelligence A LISP MACHINE WITH VERY COMPACT PROGRAMS L. Peter Deutsch Xerox corporation, Palo Alto Research center (PARC) Palo Alto, California 94304 Abstract Data Types This paper presents a machine designed for LISP has many data types (e.g. list, compact representation and rapid execution symbolic atom, integer) but no declarations. of LISP programs. The machine language is a The usual implementation of languages with factor of 2 to 5 more compact than this property affixes a tag to each datum to S-expressions or conventional compiled code, indicate its type, in LISP, however, the , and the.compiler is extremely simple. The vast majority of data are pointers to lists encoding scheme is potentially applicable to or atoms, and it would be wasteful to leave data as well as program. The machine also room for a full word plus tag (the space provides for user-defined data structures. needed for an integer datum, for example) in every place where a datum can appear such as Introduction the CAR and CDR of list cells. Consequently, in BBN-LISP every datum is a Pew existing computers permit convenient or pointer; integers, strings, etc. are all efficient implementation of dynamic storage referenced indirectly. Storage is allocated in quanta, and each quantum holds data of allocation, recursive procedures, or only one type, so what type of object a operations on data whose type is represented given pointer references is just a function explicitly at run time rather than of the object's address, i.e. the pointer determined at compile time.
    [Show full text]
  • Genera User's Guide Overview of Symbolics Computers
    Genera User’s Guide Overview of Symbolics Computers Documentation Notation Conventions Modifier Key Conventions Modifier keys are designed to be held down while pressing other keys. They do not themselves transmit characters. A combined keystroke like META-X is pronounced "meta x" and written as m-X.This notation means thatyou press the META key and, whileholdingitdown,presstheXkey. Modifierkeysareabbreviatedasfollows: CONTROL c- META m- SUPER s- HYPER h- SHIFT sh- SYMBOL sy- Modifier keys can be used in combination, as well as singly.Forexample, the nota tion c-m-Y indicates that you should hold down both the CONTROL and the META keyswhilepressingY. Modifier keys can also be used, both singly and in combination, to modify mouse commands. For example, the notation sh-Left means hold down the SHIFT key while clicking Left on the mouse and c-m-Middle means hold down CONTROL and METAwhileclickingMiddle. The keys with white lettering (like X or SELECT) all transmit characters. Combina tions of these keys should be pressed in sequence, one after the other (for exam ple, SELECT L). This notation means that you press the SELECT key, release it, and thenpresstheLkey. LOCAL is an exception to this rule. Despite its white lettering, you must hold it down while pressing another key, or it has no effect. For example, to brighten the imageonyourmonitor,youwouldholddown LOCALwhilepressingB. Page 2736 Documentation Conventions Thisdocumentationusesthefollowingnotationconventions: cond,zl:hostat PrintedrepresentationofLispobjectsinrunningtext. RETURN,ABORT,c-F keysontheSymbolicsKeyboard. SPACE Spacebar. login Literaltypein. (make-symbol "foo") Lispcodeexamples. (function-name arg1 &optionalarg2) Syntaxdescriptionoftheinvocationoffunction-name. arg1 Argument to the function function-name, usually ex pressed as a word that reflects the type of argument (forexample,string).
    [Show full text]
  • USENIX Winter Conference
    February ! 990 The Australian UNIX* systems User Group Newsletter Volume 11 Number 1 February 1990 CONTENTS AUUG General Information ..................... 4 Editorial ........................... 5 Secretary’s Letter ......................... 7 AUUG Inc 1990 Annual Elections -- Nomination Form ............. 8 Western Australian UNIX systems Group Information ............. 9 SESSPOOLE Information ...................... 10 AUUG Book Club Reviews ...................... 11 AUUG Book Club Order Form .................... 18 X Technical Bibliography ...................... 19 Commonly Asked X Questions ..................... 25 AUUG Institutional Members ..................... 42 From the EUUG Newsletter - Volume 9 Number 4 .............. 44 Editorial ......................... 45 How To Protect Your Software .................. 46 The EUUG Conference Mailing System ................ 54 UNIX in Czechoslovakia .................... 57 EUUG Munich Conference, Spring 1990 ................ 60 USING -- UNIX Systems Information Networking Group .......... 64 EUUG Executive Report .................... 67 Report From ICEUUG ..................... 69 News From The Netherlands ................... 71 UKUUG Report ....................... 74 USENIX Association News For EUUG Members ............. 76 USENIX Winter Conference ................... 78 EUnet Growing Up In Spain ................... 81 EUUG Software Distribution ................... 88 ISO/IEC JTC1/SC22AVG15 (POSIX) Meeting October, 1989 ......... 92 The OPEN LOOKTM Graphical User Interface .............. 98
    [Show full text]