COMMON LISP: a Gentle Introduction to Symbolic Computation COMMON LISP: a Gentle Introduction to Symbolic Computation

Total Page:16

File Type:pdf, Size:1020Kb

COMMON LISP: a Gentle Introduction to Symbolic Computation COMMON LISP: a Gentle Introduction to Symbolic Computation COMMON LISP: A Gentle Introduction to Symbolic Computation COMMON LISP: A Gentle Introduction to Symbolic Computation David S. Touretzky Carnegie Mellon University The Benjamin/Cummings Publishing Company,Inc. Redwood City, California• Fort Collins, Colorado• Menlo Park, California Reading, Massachusetts• New York• Don Mill, Ontario• Workingham, U.K. Amsterdam• Bonn • Sydney• Singapore• Tokyo • Madrid• San Juan Sponsoring Editor: Alan Apt Developmental Editor: Mark McCormick Production Coordinator: John Walker Copy Editor: Steven Sorenson Text and Cover Designer: Michael Rogondino Cover image selected by David S. Touretzky Cover: La Grande Vitesse, sculpture by Alexander Calder Copyright (c) 1990 by Symbolic Technology, Ltd. Published by The Benjamin/Cummings Publishing Company, Inc. This document may be redistributed in hardcopy form only, and only for educational purposes at no charge to the recipient. Redistribution in electronic form, such as on a web page or CD-ROM disk, is prohibited. All other rights are reserved. Any other use of this material is prohibited without the written permission of the copyright holder. The programs presented in this book have been included for their instructional value. They have been tested with care but are not guaranteed for any particular purpose. The publisher does not offer any warranties or representations, nor does it accept any liabilities with respect to the programs. Library of Congress Cataloging-in-Publication Data Touretzky, David S. Common LISP : a gentle introduction to symbolic computation / David S. Touretzky p. cm. Includes index. ISBN 0-8053-0492-4 1. COMMON LISP (Computer program language) I. Title. QA76.73.C28T68 1989 005.13'3±dc20 89-15180 CIP ISBN 0-8053-0492-4 ABCDEFGHIJK - DO - 8932109 The Benjamin/Cummings Publishing Company, Inc. 390 Bridge Parkway Redwood City, California 94065 To Phil and Anne Preface This book is about learning to program in Lisp. Although widely known as the principal language of artificial intelligence researchÐone of the most advanced areas of computer scienceÐLisp is an excellent language for beginners. It is increasingly the language of choice in introductory programming courses due to its friendly, interactive environment, rich data structures, and powerful software tools that even a novice can master in short order. When I wrote the book I had three types of reader in mind. I would like to address each in turn. • Students taking their first programming course. The student could be from any discipline, from computer science to the humanities. For you, let me stress the word gentle in the title. I assume no prior mathematical background beyond arithmetic. Even if you don't like math, you may find you enjoy computer programming. I've avoided technical jargon, and there are lots of examples. Also you will find plenty of exercises interspersed with the text, and the answers to all of them are included in Appendix C. • Psychologists, linguists, computer scientists, and other persons interested in Artificial Intelligence. As you begin your inquiry into AI, you will see that almost all research in this field is carried out in Lisp. Most Lisp texts are written exclusively for computer science majors, but I have gone to great effort to make this book accessible to everyone. It can be your doorway to the technical literature of AI, as well as a quick introduction to its central tool. • Computer hobbyists. Prior to about 1984, the Lisps available on personal computers weren't very good due to the small memories of the early machines. Today's personal computers often come with several megabytes of RAM and a hard disk as standard vii viii Common Lisp: A Gentle Introduction to Symbolic Computation equipment. They run full implementations of the Common Lisp standard, and provide the same high-quality tools as the Lisps in university and industrial research labs. The ``Lisp Toolkit'' sections of this book will introduce you to the advanced features of the Common Lisp programming environment that have made the language such a productive tool for rapid prototyping and AI programming. This current volume of the ``gentle introduction'' uses Common Lisp throughout. Lisp has been changing continuously since its invention 30 years ago. In the past, not only were the Lisp dialects on different machines incompatible, but programs written in one dialect would often no longer run in that same dialect a few years later, because the language had evolved out from under them. Rapid, unconstrained evolution was beneficial in the early days, but demand for a standard eventually grew, so Common Lisp was created. At present, Common Lisp is the de facto standard supported by all major computer manufacturers. It is currently undergoing refinement into an official standard. But Lisp will continue to evolve nonetheless, and the standard will be updated periodically to reflect new contributions people have made to the language. Perhaps one of those contributors will be you. DAVID S. TOURETZKY PITTSBURGH, PENNSYLVANIA Note to Instructors Much has been learned in the last few years about how to teach Lisp effectively to beginners: where they stumble and what we can do about it. In addition, the switch to Common Lisp has necessitated changes in the way certain topics are taught, especially variables, scoping, and assignment. This version of the ``gentle introduction'' has been completely revised for Common Lisp, and includes several new teaching tools that I believe you will find invaluable in the classroom. Let me share with you some of the thinking behind this book's novel approach to Lisp. GRAPHICAL NOTATION The first two chapters use a graphical box-and-arrow notation for describing primitive functions and function composition. This notation allows students to get comfortable with the basic idea of computation and the three fundamental data structuresÐnumbers, symbols, and listsÐbefore grappling with side issues such as the syntax of a function call or when to use quotes. Although sophisticated Lispers profit from the realization that programs are data, to the beginner this is a major source of confusion. The box-and-arrow notation makes programs and data visually distinct, and thereby eliminates most syntax errors. Another advantage of this notation is its lack of explicit variables; the inputs to a function are simply arrows that enter the function definition from outside. Since there is no computer implementation of function box notation, the first two chapters are designed to be covered rapidly using just pencil and paper. This also shelters the student temporarily from another source of frustrationÐlearning the mechanics of using an actual machine, editing expressions, and coping with the debugger. Readers who are familiar with other programming languages can flip through Chapter 1 in a minute or so, read the summary at the end, and then skim Chapter 2 to pick up the basic list manipulation primitives. ix x Common Lisp: A Gentle Introduction to Symbolic Computation In Chapter 3 the student is introduced to standard EVAL notation; the concepts of quoting and named variables follow fairly naturally. Now he or she is ready to discard paper and pencil for a real computer (and is probably eager to do so), whereas at the start of the course this might have been viewed with trepidation. OTHER FEATURES Three other unique features of the book first appear in Chapter 3: evaltrace notation, Lisp Toolkit sections, and a comprehensive graphical representation for Lisp data structures, including function objects and the internal structure of symbols. Evaltrace notation shows step-by-step how Lisp expressions are evaluated, how functions are applied to arguments, and how variables are created and bound. The different roles of EVAL and APPLY, the scoping of variables, and the nesting of lexical contours can all be explained graphically using this notation. It makes the process of evaluation transparent to the student by describing it in a visual language which he or she can remember and use. The Lisp Toolkit sections introduce the various programming aids that Common Lisp provides, such as DESCRIBE, INSPECT, TRACE, STEP, and the debugger. There are also two tools unique to this book; their source code appears in Appendices A and B, and is available on diskette from the publisher. The first tool, SDRAW, draws cons cell diagrams. It is part of a read-eval-draw loop that has proven invaluable for teaching beginners to reason about cons cell structures, particularly the differences among CONS, LIST, and APPEND. The second tool, DTRACE, is a tracing package that generates more detailed output than most implementations of TRACE, and is therefore more useful for teaching beginners. Finally, the graphical representation of Lisp data structuresÐparticularly the internal structure of symbols with their name, function, value, plist, and package cellsÐhelps students understand the true nature of Lisp interpreters and highlights the distinctions between symbols, functions, variables, and print names. ORGANIZATION OF LATER CHAPTERS Applicative operators are introduced in Chapter 7, where the student also learns about lexical closures. In Chapter 8, the dragon stories that were a popular feature of the previous version have been retained, but they are now backed up with a new deviceÐrecursion templatesÐthat helps beginners analyze recursive functions to extract the essence of the recursive style. Since Note to Instructors xi some instructors prefer to teach recursion before applicatives, these two chapters have been written so that they may be covered in either order. The book promotes a clean, side-effect-free style of programming for the first eight chapters. Chapter 9 discusses i/o. Chapter 10 provides a unified picture of assignment that includes ordinary variables, generalized variables, and destructive sequence operations. Chapter 11 covers iteration, and shows how DO and DO* can be used to construct substantial iterative expressions with no explicit assignments. Chapter 12 introduces structures, and Chapter 13 covers arrays, hash tables, and property lists. The final chapter, Chapter 14, is devoted to macros and compilation.
Recommended publications
  • Speech Understanding Systems: Summary of Results of the Five-Year Research Effort at Carnegie-Mellon University
    Carnegie Mellon University Research Showcase Computer Science Department School of Computer Science 1-1-1977 Speech understanding systems: summary of results of the five-year research effort at Carnegie-Mellon University. Carnegie-Mellon University.Computer Science Dept. Carnegie Mellon University Follow this and additional works at: http://repository.cmu.edu/compsci Recommended Citation Carnegie-Mellon University.Computer Science Dept., "Speech understanding systems: summary of results of the five-year research effort at Carnegie-Mellon University." (1977). Computer Science Department. Paper 1529. http://repository.cmu.edu/compsci/1529 This Technical Report is brought to you for free and open access by the School of Computer Science at Research Showcase. It has been accepted for inclusion in Computer Science Department by an authorized administrator of Research Showcase. For more information, please contact research- [email protected]. NOTICE WARNING CONCERNING COPYRIGHT RESTRICTIONS: The copyright law of the United States (title 17, U.S. Code) governs the making of photocopies or other reproductions of copyrighted material. Any copying of this document without permission of its author may be prohibited by law. "7? • 3 SPEECH UNDERSTANDING SYSTEMS Summary of Results of the Five-Year Research Effort at Carnegie-Mellon University Carnegie-Mellon University Department of Computer Science Pittsburgh, Pennsylvania 15213 First Version printed September 1976 Present Version printed August 1977 M d R— <h Projects A en, un^coX^no. TSS^l MiF*"™ ™™ B Scientific Research. ™ and monitored by ,h. Air Z^0^!7, PREFACE This report is an augmented version of a report originally issued in September of 1976, during the demonstration at the end of the five-year speech effort.
    [Show full text]
  • 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]
  • Artificial Intelligence Research at Carnegie
    ARTIFICIAL INTELLIGENCE production systems as programming languages have been important in AI work at CMU. RESEARCH AT CARNEGIE-MELLON UNIVERSITY The first production systems used at CMU were Newell’s PS and PSG systems. Rychener developed his PSNLST system soon after PSG came into use. In 1975, Edited by Jaime Carbonell Forgy, McDermott, Newell, and Rychener developed the AI research at CMU is closely integrated with other first system in the OPS family. OPS has continued to activities in the Computer Science Department, and to a evolve since that time, the latest version, OPS5, having major degree with ongoing research in the Psychology been completed in 1979. OPS has a served as a basis for Department. Although there are over 50 faculty, staff and many programs, including Langley and Simon’s BACON graduate students involved in various aspects of AI systems and McDermott’s RI expert system. research, there is no administratively (or physically) separate AI laboratory. To underscore the interdisciplinary During the last few years, many production systems nature of much of our AI research, a significant fraction of have been developed to serve as psychological models. (It the projects listed below are joint ventures between is characteristic of psychological modeling that many computer science and psychology. systems must be implemented, for the testing of each new architectural feature requires that a system exhibiting that The history of AI research at Carnegie-Mellon goes back feature be implemented and tested.) Anderson combines production rules with a semantic-network memory in his twenty-five years. The early work was characterized by a ACT systems to model human memory phenomena.
    [Show full text]
  • Remote Debugging and Reflection in Resource Constrained Devices Nikolaos Papoulias
    Remote Debugging and Reflection in Resource Constrained Devices Nikolaos Papoulias To cite this version: Nikolaos Papoulias. Remote Debugging and Reflection in Resource Constrained Devices. Program- ming Languages [cs.PL]. Université des Sciences et Technologie de Lille - Lille I, 2013. English. tel-00932796 HAL Id: tel-00932796 https://tel.archives-ouvertes.fr/tel-00932796 Submitted on 17 Jan 2014 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. N° d’ordre : 41342 THESE présentée en vue d’obtenir le grade de DOCTEUR en Spécialité : informatique par Nikolaos Papoulias DOCTORAT DELIVRE CONJOINTEMENT PAR MINES DOUAI ET L’UNIVERSITE DE LILLE 1 Titre de la thèse : Remote Debugging and Reflection in Resource Constrained Devices Soutenue le 19/12/2013 à 10h devant le jury d’examen : Président Roel WUYTS (Professeur – Université de Leuven) Directeur de thèse Stéphane DUCASSE (Directeur de recherche – INRIA Lille) Rapporteur Marianne HUCHARD (Professeur – Université Montpellier 2) Rapporteur Alain PLANTEC (Maître-Conf-HDR – Université de Bretagne Occ.) Examinateur Serge STINCKWICH (Maître-Conf – Université de Caen) co-Encadrant Noury BOURAQADI (Maître-Assistant – Mines de Douai) co-Encadrant Marcus DENKER (Chargé de recherche – INRIA Lille) co-Encadrant Luc FABRESSE (Maître-Assistant – Mines de Douai) Laboratoire(s) d’accueil : Dépt.
    [Show full text]
  • Emoticons All Over Your Essay? It ● Which Ones Do You Like the Most / Least? Why? Looks Ridiculous
    StarterStStatarrttteerr A LISTENINGLISTENING 1 Work in pairs.p ai rs. LookLo ok ata t theth e peoplepe op le ini n the picturespi ct ur es and discussdis cuss whatwh at youy ou thinkt hink theirt he ir attitudesa tt it ud es tot o the followingfo ll ow in g mightmigh t be:be : ● personalpe rs on al appearancea pp eara nce ● clothescl ot he s ● cosmeticco sm et ic surgerys ur ge ry Hannah, UK Hiro, Japan Marielena, Venezuela 2 Listen to the interviews from a radio programme. 4 Work in pairs. Discuss the questions. Were you right? ● How would you describe young people’s attitudes to appearance, dress and cosmetic surgery in your country? 3 Listen again and answer the following questions. ● How do you think your generation’s attitudes are 1 What does the presenter say about the effect of different from your parents’ or your grandparents’ globalisation on young people around the world? attitudes? 2 What two things does Chris say still influence young ● Would you ever have cosmetic surgery? people’s attitudes to dress and appearance? 3 What does Chris say that young people in the UK have traditionally been? 4 According to Chris, what type of cosmetic surgery has become more popular in Venezuela in recent years? 5 In Japanese working environments, what is expected of employers in terms of dress and appearance? Grammar VOCABULARY People / Travel and GRAMMAR Present perfect presentation adventure simple and continuous 5 Match the words in the box with the definitions. We use the present perfect simple for: events or situations within an unfinished or competitor economist employee unspecified time period.
    [Show full text]
  • “ My Heart Is in the Work.” Businesses
    Carnegie Mellon University has been a birthplace of innovation since its founding in 1900. Today, CMU is a global leader bringing groundbreaking ideas to market and creating successful startup “ My Heart is in the Work.” businesses. Our award-winning faculty are renowned for working closely with students to solve major scientific, Andrew Carnegie, Founder technological and societal challenges. We put a strong November 15, 1900 emphasis on creating things — from art to robots. We have become a model for economic development in forming partnerships with companies such as Uber, Google and Disney. Our students are recruited by some of the world’s most innovative companies. 13,961 37% U.S. 63% International Graduate GLOBAL COMMUNITY STUDENTS 77% U.S. 23% International Undergraduate Students representing 109 countries 1,391 87% U.S. 13% International FACULTY Faculty representing 42 countries 105,255+ 89% U.S. 11% International Alumni representing ALUMNI (LIVING) 145 countries # SCHOOL OF # TIME-BASED/ # INFORMATION 1 COMPUTER 1 NEW MEDIA 1 & TECHNOLOGY SCIENCE U.S. News & World Report, 2016 MANAGEMENT U.S. News & World Report, 2014 U.S. News & World Report, 2016 # SCHOOL OF # COLLEGE OF # BEST FOR 2 DRAMA 5 ENGINEERING 10 NEW HIRES1 The Hollywood Reporter, 2017 U.S. News & World Report, 2017 Wall Street Journal, 2010 # AMONG U.S. # UNIVERSITY % OF COMPUTER 17 UNIVERSITIES 24 IN THE WORLD 49.8 SCIENCE’S FIRST- Times Higher Education Times Higher Education YEAR STUDENTS of London, 2017-18 of London, 2017-18 WERE WOMEN IN 2017 Nearly triple the national average 1 The Wall Street Journal’s poll asked recruiters what schools are tops when looking for new hires.
    [Show full text]
  • Flexichain: an Editable Sequence and Its Gap-Buffer Implementation
    Flexichain: An editable sequence and its gap-buffer implementation Robert Strandh (LaBRI∗), Matthieu Villeneuve, Tim Moore (LaBRI) 2004-04-05 Abstract Flexichain is an API for editable sequences. Its primary use is in end-user applications that edit sequences of objects such as text editors (characters), word processors (characters, paragraphs, sections, etc), score editors (notes, clusters, measures, etc), though it can also be used as a stack and a double- ended queue. We also describe an efficient implementation of the API in the form of a cir- cular gap buffer. Circularity avoids a common worst case in most implemen- tations, makes queue operations efficient, and makes worst-case performance twice as good as that of ordinary implementations 1 Introduction Editable sequences are useful, in particular in interactive applications such as text editors, word processors, score editors, and more. In such applications, it is highly likely that an editing operation is close to the previous one, measured as the dif- ference in positions in the sequence. This statistical behavior makes it feasible to implement the editable sequence as a gap buffer. The basic idea is to store objects in a vector that is usually longer than the number of elements stored in it. For a sequence of N elements where editing is required at ∗Laboratoire Bordelais de Recherche en Informatique, Bordeaux, France 1 index i, elements 0 through i are stored at the beginning of the vector, and elements i + 1 through N − 1 are stored at the end of the vector. When the vector is longer N, this storage leaves a gap.
    [Show full text]
  • 2015 Meeting of the Minds Program [Pdf]
    2 MEETING OF THE MINDS 2015 WELCOME WELCOME TO OUR 20TH MEETING OF THE MINDS. That ‘s right—it is our 20th anniversary and we are especially happy to celebrate this milestone with all of you. Meeting of the Minds is a true campus-wide event that touches all faculty, staff and students who are associated with our university. Twenty years ago, a far-thinking Associate Vice Provost, Barbara Lazarus—joined by an adventuresome graduate of Carnegie Mellon and founding director of the URO, Jessie Ramey— created our campus-wide research symposium aptly named Meeting of the Minds. It started very small with a handful of students. It has grown to be a hallmark of Carnegie Mellon and a model for others. There is a great deal to see and hear today. The abstracts in this booklet provide a good map to begin your journey. Be prepared for the descriptions to come alive in novel and interesting ways. Whether you travel through the poster displays or attend a few oral presentations, watch a performance or contemplate our art installations, you will be dazzled by the diversity and quality of the projects our undergraduates are showcasing. Feel free to visit people you know and those you don’t know. This is a chance to introduce yourself to different academic parts of our campus. There are two important times to keep in mind. At 2:30, President Subra Suresh will deliver a short keynote address in the first floor Kirr Commons area. We will also hold a drawing for participating students for a smart watch and a Fitbit, and make announcements for the final rounds of particular competitions.
    [Show full text]
  • ASDF 3, Or Why Lisp Is Now an Acceptable Scripting Language (Extended Version)
    ASDF 3, or Why Lisp is Now an Acceptable Scripting Language (Extended version) François-René Rideau Google [email protected] Abstract libraries, or network services; one can scale them into large, main- ASDF, the de facto standard build system for Common Lisp, has tainable and modular systems; and one can make those new ser- been vastly improved between 2009 and 2014. These and other im- vices available to other programs via the command-line as well as provements finally bring Common Lisp up to par with "scripting via network protocols, etc. languages" in terms of ease of writing and deploying portable code The last barrier to making that possible was the lack of a that can access and "glue" together functionality from the underly- portable way to build and deploy code so a same script can run ing system or external programs. "Scripts" can thus be written in unmodified for many users on one or many machines using one or Common Lisp, and take advantage of its expressive power, well- many different compilers. This was solved by ASDF 3. defined semantics, and efficient implementations. We describe the ASDF has been the de facto standard build system for portable most salient improvements in ASDF and how they enable previ- CL software since shortly after its release by Dan Barlow in 2002 ously difficult and portably impossible uses of the programming (Barlow 2004). The purpose of a build system is to enable divi- language. We discuss past and future challenges in improving this sion of labor in software development: source code is organized key piece of software infrastructure, and what approaches did or in separately-developed components that depend on other compo- didn’t work in bringing change to the Common Lisp community.
    [Show full text]
  • Episodic Memory Representation in a Knowledge Base, with Application to Event Monitoring and Event Detection
    Episodic Memory Representation in a Knowledge Base, with Application to Event Monitoring and Event Detection Master’s Thesis Engin C¸ınar S¸ahin Committee Members Scott E. Fahlman Eric Nyberg Stephen F. Smith Language Technologies Institute School of Computer Science Carnegie Mellon University Pittsburgh, PA, 15213 Abstract The thesis explores the use of a knowledge-based AI system to assist people in executing proce- dures and detecting events in an observed world. We extend the Scone knowledge-base system with open-ended facilities for representing time and events. Then we use this episodic knowledge repre- sentation as the foundation for our event monitoring and event detection algorithms. This approach lets us represent and reason about three fundamental aspects of the observed events: 1. their ontological character and what entities take part in these events (e.g. buying is a kind of transaction that involves an agent, a seller, money and goods) 2. how events change the world over time (e.g. after a buy event the agent has the goods rather than the money) 3. how events may be composed of other subevents (i.e. a buy event may be composed of giving money and receiving goods) We illustrate knowledge-based solutions to the event monitoring problem in the conference organization domain and to the event detection problem in the national security domain. i Acknowledgements First, I would like to thank my advisor Scott Fahlman for letting me learn so much from him. His invaluable experience and constant support helped me go through the ups and downs of research. Working with him, his passion and excitement for knowledge representation and reasoning has passed on to me.
    [Show full text]
  • CLX — Common LISP X Interface
    CLX Common LISP X Interface 1988, 1989 Texas Instruments Incorporated Permission is granted to any individual or institution to use, copy, modify and distribute this document, provided that this complete copyright and permission notice is maintained, intact, in all copies and supporting documentation. Texas Instruments Incorporated makes no representations about the suitability of this document or the software described herein for any purpose. It is provided ”as is” without express or implied warranty. CLX Programmer’s Reference i ACKNOWLEDGMENTS Primary Interface Author: Robert W. Scheifler MIT Laboratory for Computer Science 545 Technology Square, Room 418 Cambridge, MA 02139 [email protected] Primary Implementation Author: LaMott Oren Texas Instruments PO Box 655474, MS 238 Dallas, TX 75265 [email protected] Design Contributors: Dan Cerys, BBN Scott Fahlman, CMU Kerry Kimbrough, Texas Instruments Chris Lindblad, MIT Rob MacLachlan, CMU Mike McMahon, Symbolics David Moon, Symbolics LaMott Oren, Texas Instruments Daniel Weinreb, Symbolics John Wroclawski, MIT Richard Zippel, Symbolics Documentation Contributors: Keith Cessna, Texas Instruments Kerry Kimbrough, Texas Instruments Mike Myjak LaMott Oren, Texas Instruments Dan Stenger, Texas Instruments The X Window System is a trademark of MIT. UNIX is a trademark of AT&T Bell Laboratories. ULTRIX, ULTRIX–32, ULTRIX–32m, ULTRIX–32w, and VAX/VMS are trademarks of Digital Equipment Corporation. ii CLX Programmer’s Reference CONTENTS Section Title 1 INTRODUCTION TO CLX 2 DISPLAYS 3 SCREENS 4 WINDOWS AND PIXMAPS 5 GRAPHICS CONTEXTS 6 GRAPHIC OPERATIONS 7 IMAGES 8 FONTS AND CHARACTERS 9 COLORS 10 CURSORS 11 ATOMS, PROPERTIES, AND SELECTIONS 12 EVENTS AND INPUT 13 RESOURCES 14 CONTROL FUNCTIONS 15 EXTENSIONS 16 ERRORS A PROTOCOL VS.
    [Show full text]
  • Sexual Abuse at St. George's School and the School's Response: 1970 to 2015
    Sexual Abuse at St. George’s School and the School’s Response: 1970 to 2015 REPORT OF INDEPENDENT INVESTIGATOR MARTIN F. MURPHY, FOLEY HOAG LLP September 1, 2016 REPORT OF INDEPENDENT INVESTIGATOR MARTIN F. MURPHY, FOLEY HOAG LLP TABLE OF CONTENTS Preface ..................................................................................................................................... 1 Summary of Findings ................................................................................................................ 3 Two St. George’s ..................................................................................................................................... 3 Faculty and Staff Abusers in the 1970s and 1980s: A Brief Summary ........................................................ 4 William Lydgate............................................................................................................................................. 4 Timothy Tefft ................................................................................................................................................. 4 Rev. Howard White........................................................................................................................................ 4 Alphonse “Al” Gibbs ...................................................................................................................................... 5 Franklin Coleman .........................................................................................................................................
    [Show full text]