CMUCL User's Manual

Total Page:16

File Type:pdf, Size:1020Kb

CMUCL User's Manual CMUCL User's Manual December 2018 21d Robert A. MacLachlan, Editor cmucl is a free, high-performance implementation of the Common Lisp programming language, which runs on most major Unix platforms. It mainly conforms to the ANSI Common Lisp Standard. cmucl features a sophisticated native-code compiler, a for- eign function interface, a graphical source-level debugger, an interface to the X11 Win- dow System, and an Emacs-like editor. Keywords: lisp, Common Lisp, manual, compiler, programming language implementa- tion, programming environment This manual is based on CMU Technical Report CMU-CS-92-161, edited by Robert A. MacLachlan, dated July 1992. i Table of Contents 1 Introduction::::::::::::::::::::::::::::::::::::::::::::::::: 1 1.1 Distribution and Support :::::::::::::::::::::::::::::::::::::::::::::: 1 1.2 Command Line Options ::::::::::::::::::::::::::::::::::::::::::::::: 1 1.3 Credits:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 3 2 Design Choices and Extensions :::::::::::::::::::::::::::: 6 2.1 Data Types ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 6 2.1.1 Integers :::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 6 2.1.2 Floats:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 6 2.1.2.1 IEEE Special Values :::::::::::::::::::::::::::::::::::::::: 6 2.1.2.2 Negative Zero ::::::::::::::::::::::::::::::::::::::::::::::: 7 2.1.2.3 Denormalized Floats :::::::::::::::::::::::::::::::::::::::: 7 2.1.2.4 Floating Point Exceptions ::::::::::::::::::::::::::::::::::: 7 2.1.2.5 Floating Point Rounding Mode :::::::::::::::::::::::::::::: 7 2.1.2.6 Accessing the Floating Point Modes ::::::::::::::::::::::::: 8 2.1.3 Extended Floats ::::::::::::::::::::::::::::::::::::::::::::::::: 9 2.1.4 Characters :::::::::::::::::::::::::::::::::::::::::::::::::::::: 10 2.1.5 Array Initialization:::::::::::::::::::::::::::::::::::::::::::::: 10 2.1.6 Hash tables ::::::::::::::::::::::::::::::::::::::::::::::::::::: 10 2.2 Default Interrupts for Lisp ::::::::::::::::::::::::::::::::::::::::::: 11 2.3 Implementation-Specific Packages::::::::::::::::::::::::::::::::::::: 12 2.4 Hierarchical Packages :::::::::::::::::::::::::::::::::::::::::::::::: 13 2.4.1 Introduction :::::::::::::::::::::::::::::::::::::::::::::::::::: 13 2.4.2 Relative Package Names::::::::::::::::::::::::::::::::::::::::: 13 2.4.3 Compatibility with ANSI Common Lisp ::::::::::::::::::::::::: 14 2.4.3.1 Changes to cl:find-package :::::::::::::::::::::::::::::: 14 2.4.3.2 Using Hierarchical Packages without Modifying cl:find-package ::::::::::::::::::::::::::::: 15 2.5 Package Locks ::::::::::::::::::::::::::::::::::::::::::::::::::::::: 15 2.5.1 Rationale ::::::::::::::::::::::::::::::::::::::::::::::::::::::: 15 2.5.2 Disabling package locks ::::::::::::::::::::::::::::::::::::::::: 16 2.6 The Editor ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 17 2.7 Garbage Collection ::::::::::::::::::::::::::::::::::::::::::::::::::: 17 2.7.1 GC Parameters ::::::::::::::::::::::::::::::::::::::::::::::::: 17 2.7.2 Generational GC :::::::::::::::::::::::::::::::::::::::::::::::: 18 2.7.3 Weak Pointers :::::::::::::::::::::::::::::::::::::::::::::::::: 19 2.7.4 Finalization ::::::::::::::::::::::::::::::::::::::::::::::::::::: 19 2.8 Describe ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20 2.9 The Inspector :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 20 2.9.1 The Graphical Interface ::::::::::::::::::::::::::::::::::::::::: 20 2.9.2 The TTY Inspector ::::::::::::::::::::::::::::::::::::::::::::: 21 2.10 Load:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 21 2.11 The Reader ::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 22 2.11.1 Reader Extensions ::::::::::::::::::::::::::::::::::::::::::::: 22 2.11.2 Reader Parameters::::::::::::::::::::::::::::::::::::::::::::: 22 2.12 Stream Extensions :::::::::::::::::::::::::::::::::::::::::::::::::: 22 2.13 Simple Streams ::::::::::::::::::::::::::::::::::::::::::::::::::::: 23 ii 2.14 Running Programs from Lisp :::::::::::::::::::::::::::::::::::::::: 23 2.14.1 Process Accessors :::::::::::::::::::::::::::::::::::::::::::::: 25 2.15 Saving a Core Image :::::::::::::::::::::::::::::::::::::::::::::::: 26 2.16 Pathnames:::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 27 2.16.1 Unix Pathnames ::::::::::::::::::::::::::::::::::::::::::::::: 27 2.16.2 Wildcard Pathnames ::::::::::::::::::::::::::::::::::::::::::: 28 2.16.3 Logical Pathnames ::::::::::::::::::::::::::::::::::::::::::::: 28 2.16.4 Search Lists:::::::::::::::::::::::::::::::::::::::::::::::::::: 28 2.16.5 Predefined Search-Lists :::::::::::::::::::::::::::::::::::::::: 29 2.16.6 Search-List Operations ::::::::::::::::::::::::::::::::::::::::: 29 2.16.7 Search List Example ::::::::::::::::::::::::::::::::::::::::::: 30 2.17 Filesystem Operations::::::::::::::::::::::::::::::::::::::::::::::: 30 2.17.1 Wildcard Matching :::::::::::::::::::::::::::::::::::::::::::: 30 2.17.2 File Name Completion ::::::::::::::::::::::::::::::::::::::::: 30 2.17.3 Miscellaneous Filesystem Operations ::::::::::::::::::::::::::: 31 2.18 Time Parsing and Formatting ::::::::::::::::::::::::::::::::::::::: 31 2.19 Random Number Generation :::::::::::::::::::::::::::::::::::::::: 33 2.19.1 MT-19937 Generator ::::::::::::::::::::::::::::::::::::::::::: 33 2.19.2 xoroshiro128+ Generator::::::::::::::::::::::::::::::::::::::: 33 2.20 Lisp Threads:::::::::::::::::::::::::::::::::::::::::::::::::::::::: 33 2.21 Lisp Library :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 33 2.22 Generalized Function Names :::::::::::::::::::::::::::::::::::::::: 34 2.23 CLOS::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 34 2.23.1 Primary Method Errors :::::::::::::::::::::::::::::::::::::::: 34 2.23.2 Slot Type Checking :::::::::::::::::::::::::::::::::::::::::::: 34 2.23.3 Slot Access Optimization::::::::::::::::::::::::::::::::::::::: 35 2.23.3.1 slot-boundp Declaration ::::::::::::::::::::::::::::::::: 35 2.23.3.2 inline Declaration ::::::::::::::::::::::::::::::::::::::: 35 2.23.3.3 Automatic Method Recompilation::::::::::::::::::::::::: 36 2.23.4 Inlining Methods in Effective Methods:::::::::::::::::::::::::: 37 2.23.5 Effective Method Precomputation :::::::::::::::::::::::::::::: 38 2.23.6 Sealing :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 38 2.23.7 Method Tracing and Profiling :::::::::::::::::::::::::::::::::: 38 2.23.8 Misc ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 39 2.24 Differences from ANSI Common Lisp :::::::::::::::::::::::::::::::: 39 2.24.1 Extensions ::::::::::::::::::::::::::::::::::::::::::::::::::::: 39 2.25 Function Wrappers:::::::::::::::::::::::::::::::::::::::::::::::::: 39 2.26 Dynamic-Extent Declarations ::::::::::::::::::::::::::::::::::::::: 41 2.26.1 &rest argument lists ::::::::::::::::::::::::::::::::::::::::::: 41 2.26.2 Closures ::::::::::::::::::::::::::::::::::::::::::::::::::::::: 42 2.26.3 list, list*, and cons ::::::::::::::::::::::::::::::::::::::::: 42 2.27 Modular Arithmetic ::::::::::::::::::::::::::::::::::::::::::::::::: 42 2.28 Extension to REQUIRE::::::::::::::::::::::::::::::::::::::::::::: 43 2.29 Localization::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 43 2.29.1 Dictionary ::::::::::::::::::::::::::::::::::::::::::::::::::::: 43 2.29.2 Example Usage :::::::::::::::::::::::::::::::::::::::::::::::: 45 2.30 Static Arrays ::::::::::::::::::::::::::::::::::::::::::::::::::::::: 46 iii 3 The Debugger:::::::::::::::::::::::::::::::::::::::::::::: 48 3.1 Debugger Introduction ::::::::::::::::::::::::::::::::::::::::::::::: 48 3.2 The Command Loop ::::::::::::::::::::::::::::::::::::::::::::::::: 48 3.3 Stack Frames::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 49 3.3.1 Stack Motion ::::::::::::::::::::::::::::::::::::::::::::::::::: 49 3.3.2 How Arguments are Printed ::::::::::::::::::::::::::::::::::::: 49 3.3.3 Function Names::::::::::::::::::::::::::::::::::::::::::::::::: 50 3.3.4 Funny Frames::::::::::::::::::::::::::::::::::::::::::::::::::: 50 3.3.5 Debug Tail Recursion ::::::::::::::::::::::::::::::::::::::::::: 51 3.3.6 Unknown Locations and Interrupts :::::::::::::::::::::::::::::: 51 3.4 Variable Access :::::::::::::::::::::::::::::::::::::::::::::::::::::: 52 3.4.1 Variable Value Availability :::::::::::::::::::::::::::::::::::::: 52 3.4.2 Note On Lexical Variable Access :::::::::::::::::::::::::::::::: 53 3.5 Source Location Printing ::::::::::::::::::::::::::::::::::::::::::::: 53 3.5.1 How the Source is Found :::::::::::::::::::::::::::::::::::::::: 54 3.5.2 Source Location Availability::::::::::::::::::::::::::::::::::::: 55 3.6 Compiler Policy Control:::::::::::::::::::::::::::::::::::::::::::::: 55 3.7 Exiting Commands::::::::::::::::::::::::::::::::::::::::::::::::::: 56 3.8 Information Commands :::::::::::::::::::::::::::::::::::::::::::::: 56 3.9 Breakpoint Commands ::::::::::::::::::::::::::::::::::::::::::::::: 57 3.9.1 Breakpoint Example :::::::::::::::::::::::::::::::::::::::::::: 57 3.10 Function Tracing:::::::::::::::::::::::::::::::::::::::::::::::::::: 59 3.10.1 Encapsulation Functions ::::::::::::::::::::::::::::::::::::::: 61 3.10.2 Tracing Examples :::::::::::::::::::::::::::::::::::::::::::::: 61 3.11 Specials ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 62 4 The Compiler :::::::::::::::::::::::::::::::::::::::::::::: 63 4.1 Compiler Introduction:::::::::::::::::::::::::::::::::::::::::::::::: 63 4.2 Calling the Compiler
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]
  • Och Lönsamma Öppna Kommunikationssystem
    fcldüh OSI och lönsamma öppna kommunikationssystem Dokumentation av ett seminarium sammanställd av Victor S Epstein med Gunnar Sundblad Tddüh Telestyrelsen har inrättat ett anslag med syfte att medverka tiU snabb och lättillgänglig dokumentation beträffande användningen av teleanknutna informationssystem. Detta anslag förvaltas av TELDOK och skall bidraga tiU: Dokumentation vid tidigast möjliga tidpunkt av praktiska tillämpningar av teleanknutna informationssystem i arbetslivet Publicering och spridning, i förekommande fall översättning, av annars svåråtkomliga erfarenheter av teleanknutna informationssystem i arbetslivet, samt kompletteringar avsedda att öka användningsvärdet för svenska förhållanden och svenska läsare Studieresor och konferenser i direkt anknytning till arbetet med att dokumentera och sprida information beträffande praktiska tillämpningar av teleanknutna informationssystem i arbetslivet Via TELDOK är en av de skriftserier som utges av TELDOK. Via TELDOK presenterar obearbetade tillfallighetsrapporter från seminarier, studieresor osv. Hittills har utgetts: Via TELDOK 1. OSI och lönsamma öppna kommunikationssystem. Maj 1987. Av andra publikationer från TELDOK som nyligen utkommit kan nämnas: TELDOK Kapport 24. Meddelanden att använda. November 1986. TELDOK Kapport 25. Ny teleteknik i Sverige - användning i dag. November 1986. TELDOK Kapport 26. Datorstödda kunskapssystem i framtidens kontor. December 1986. TELDOK Kapport27. Inflytande och DAtorbaserade Kommunikationssystem. April 1987. TELDOK Kapport 28. Ny informationsteknologi i Japan. April 1987. TELDOK Referens dokument G. Management, usage and effects of Office Automation. April 1987. TELDOK-info 4. Att söka i databaser. Mars 1987. Publikationema kan beställas gratis dygnet runt från TeleSvar, 08-23 00 00 (med angivande av rapportnummer). Den som i fortsättningen önskar erhålla skrifter från TELDOK får automatiskt alla TELDOK Kapport och alla TELDOK-info. Ytterligare information lämnas gärna av TELDOK Kedaktionskommitté.
    [Show full text]
  • An Implementation of Python for Racket
    An Implementation of Python for Racket Pedro Palma Ramos António Menezes Leitão INESC-ID, Instituto Superior Técnico, INESC-ID, Instituto Superior Técnico, Universidade de Lisboa Universidade de Lisboa Rua Alves Redol 9 Rua Alves Redol 9 Lisboa, Portugal Lisboa, Portugal [email protected] [email protected] ABSTRACT Keywords Racket is a descendent of Scheme that is widely used as a Python; Racket; Language implementations; Compilers first language for teaching computer science. To this end, Racket provides DrRacket, a simple but pedagogic IDE. On the other hand, Python is becoming increasingly popular 1. INTRODUCTION in a variety of areas, most notably among novice program- The Racket programming language is a descendent of Scheme, mers. This paper presents an implementation of Python a language that is well-known for its use in introductory for Racket which allows programmers to use DrRacket with programming courses. Racket comes with DrRacket, a ped- Python code, as well as adding Python support for other Dr- agogic IDE [2], used in many schools around the world, as Racket based tools. Our implementation also allows Racket it provides a simple and straightforward interface aimed at programs to take advantage of Python libraries, thus signif- inexperienced programmers. Racket provides different lan- icantly enlarging the number of usable libraries in Racket. guage levels, each one supporting more advanced features, that are used in different phases of the courses, allowing Our proposed solution involves compiling Python code into students to benefit from a smoother learning curve. Fur- semantically equivalent Racket source code. For the run- thermore, Racket and DrRacket support the development of time implementation, we present two different strategies: additional programming languages [13].
    [Show full text]
  • Bringing GNU Emacs to Native Code
    Bringing GNU Emacs to Native Code Andrea Corallo Luca Nassi Nicola Manca [email protected] [email protected] [email protected] CNR-SPIN Genoa, Italy ABSTRACT such a long-standing project. Although this makes it didactic, some Emacs Lisp (Elisp) is the Lisp dialect used by the Emacs text editor limitations prevent the current implementation of Emacs Lisp to family. GNU Emacs can currently execute Elisp code either inter- be appealing for broader use. In this context, performance issues preted or byte-interpreted after it has been compiled to byte-code. represent the main bottleneck, which can be broken down in three In this work we discuss the implementation of an optimizing com- main sub-problems: piler approach for Elisp targeting native code. The native compiler • lack of true multi-threading support, employs the byte-compiler’s internal representation as input and • garbage collection speed, exploits libgccjit to achieve code generation using the GNU Com- • code execution speed. piler Collection (GCC) infrastructure. Generated executables are From now on we will focus on the last of these issues, which con- stored as binary files and can be loaded and unloaded dynamically. stitutes the topic of this work. Most of the functionality of the compiler is written in Elisp itself, The current implementation traditionally approaches the prob- including several optimization passes, paired with a C back-end lem of code execution speed in two ways: to interface with the GNU Emacs core and libgccjit. Though still a work in progress, our implementation is able to bootstrap a func- • Implementing a large number of performance-sensitive prim- tional Emacs and compile all lexically scoped Elisp files, including itive functions (also known as subr) in C.
    [Show full text]
  • How Lisp Systems Look Different in Proceedings of European Conference on Software Maintenance and Reengineering (CSMR 2008)
    How Lisp Systems Look Different In Proceedings of European Conference on Software Maintenance and Reengineering (CSMR 2008) Adrian Dozsa Tudor Gˆırba Radu Marinescu Politehnica University of Timis¸oara University of Berne Politehnica University of Timis¸oara Romania Switzerland Romania [email protected] [email protected] [email protected] Abstract rently used in a variety of domains, like bio-informatics (BioBike), data mining (PEPITe), knowledge-based en- Many reverse engineering approaches have been devel- gineering (Cycorp or Genworks), video games (Naughty oped to analyze software systems written in different lan- Dog), flight scheduling (ITA Software), natural language guages like C/C++ or Java. These approaches typically processing (SRI International), CAD (ICAD or OneSpace), rely on a meta-model, that is either specific for the language financial applications (American Express), web program- at hand or language independent (e.g. UML). However, one ming (Yahoo! Store or reddit.com), telecom (AT&T, British language that was hardly addressed is Lisp. While at first Telecom Labs or France Telecom R&D), electronic design sight it can be accommodated by current language inde- automation (AMD or American Microsystems) or planning pendent meta-models, Lisp has some unique features (e.g. systems (NASA’s Mars Pathfinder spacecraft mission) [16]. macros, CLOS entities) that are crucial for reverse engi- neering Lisp systems. In this paper we propose a suite of Why Lisp is Different. In spite of its almost fifty-year new visualizations that reveal the special traits of the Lisp history, and of the fact that other programming languages language and thus help in understanding complex Lisp sys- borrowed concepts from it, Lisp still presents some unique tems.
    [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]
  • Lisp Tutorial
    Gene Kim 9/9/2016 CSC 2/444 Lisp Tutorial About this Document This document was written to accompany an in-person Lisp tutorial. Therefore, the information on this document alone is not likely to be sufficient to get a good understanding of Lisp. However, the functions and operators that are listed here are a good starting point, so you may look up specifications and examples of usage for those functions in the Common Lisp HyperSpec (CLHS) to get an understanding of their usage. Getting Started Note on Common Lisp Implementations I will use Allegro Common Lisp since it is what is used by Len (and my research). However, for the purposes of this class we won’t be using many (if any) features that are specific to common lisp implementations so you may use any of the common lisp implementations available in the URCS servers. If you are using any libraries that are implementation-specific for assignments in this class, I would strongly urge you to rethink your approach if possible. If we (the TAs) deem any of these features to be solving to much of the assigned problem, you will not receive full credit for the assignment. To see if a function is in the Common Lisp specifications see the Common Lisp HyperSpec (CLHS). Simply google the function followed by “clhs” to see if an entry shows up. Available Common Lisp implementations (as far as I know): - Allegro Common Lisp (acl or alisp will start an Allegro REPL) - CMU Common Lisp (cmucl or lisp will start a CMUCL REPL) - Steel Bank Common Lisp (sbcl will start an SBCL REPL) IDE/Editor It is not important for this class to have an extensive IDE since we will be working on small coding projects.
    [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]
  • 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]
  • Objektové Programování Poznámky K Přednášce
    Objektové programování Poznámky k přednášce Michal Krupka 18. prosince 2016 1 Obsah 1 Od Scheme k Lispu 7 1.1 Základní rozdíly mezi Schemem a Common Lispem . 8 1.2 Common Lisp: základní výbava . 14 2 Objekty a třídy 37 2.1 Základní pojmy ........................... 37 2.2 Třídy a instance v Common Lispu . 40 2.3 Inicializace slotů nových instancí . 49 ÚLOHY ................................... 52 3 Zapouzdření a polymorfismus 55 3.1 Princip zapouzdření ........................ 55 3.2 Úprava tříd point a circle ................... 61 3.3 Třída picture ........................... 64 3.4 Vlastnosti ............................... 67 3.5 Kreslení pomocí knihovny micro-graphics . 68 3.6 Kreslení grafických objektů .................... 72 3.7 Princip polymorfismu ....................... 81 3.8 Polygony ............................... 83 3.9 Geometrické transformace ..................... 87 ÚLOHY ................................... 89 4 Dědičnost 91 4.1 Princip dědičnosti a pravidlo is-a . 91 4.2 Určení předka v definici třídy ................... 98 4.3 Poznámka o běžných jazycích . 102 4.4 Přepisování metod . 102 4.5 Volání zděděné metody . 104 4.6 Inicializace instancí . 110 3 4 OBSAH 4.7 Návrh stromu dědičnosti . 111 ÚLOHY ................................... 112 5 Zpětná volání 115 5.1 Zpětná volání v knihovně micro-graphics . 115 5.2 Překreslování oken po vnější změně . 117 5.3 Překreslení při změně okna . 118 5.4 Překreslování při změnách objektů . 120 ÚLOHY ................................... 124 6 Klikání a jiné události 127 6.1 Jednoduché obsloužení vstupu z myši . 127 6.2 Zpravení grafického objektu o kliknutí . 129 6.3 Princip vlastnění, delegování, události . 133 6.4 Události ev-changing a ev-change . 136 6.5 Reakce na kliknutí: událost ev-mouse-down . 140 ÚLOHY ..................................
    [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]