Common LISP - Eine Allgemeine Ubersicht¨

Total Page:16

File Type:pdf, Size:1020Kb

Common LISP - Eine Allgemeine Ubersicht¨ Common LISP - Eine allgemeine Ubersicht¨ Martin Elshuber∗ 24. November 2004, Wien Abstract ausreichend sein um Funktionen berechenbar zu machen, λ-Ausdrucke¨ zur Funktionsbenen- Common LISP ist eine sehr vielseitige nung, Repr¨asentation von LISP-Programmen Programmiersprache. Dieser Artikel soll als LISP-Daten, die LISP-Funktion EVAL dient einen kurzen Uberblick¨ uber¨ Common sowohl als formale Definition als auch als LISP liefern. Zuerst gebe ich einen Uber-¨ Interpreter[3]. blick uber¨ die Geschichte von Common Aus LISP haben sich nun viele andere Dia- Lisp. Als n¨achsten Punkt beschreibe ich lekte entwickelt, von den die gr¨oßten sicherlich die Syntax von Common LISP sowie die MacLISP und InterLISP waren. Weiters exis- wichtigsten Befehle. Abschließend wer- tierten noch Franz LISP und Spice Lisp. den die Besonderheiten von Common Im April 1981 lud ARPA alle Enwicklungs- LISP beschrieben, sowie einige Anwen- gruppen von LISP zum “Lisp Community Mee- dungsbeispiele erw¨ahnt. ting” ein, um die Zukunft von LISP zu disku- tieren. Man kam zum Entschluß daß ein neu- er Dialekt “Common LISP” entwickelt werden 1 Geschichte und Motivation sollte. Dieser neue Dialekt sollte folgende Ziele erfullen.¨ Common LISP entstand in den achtziger Jah- ren aus Nachfolgern der Programmiersprache • Allgemeinheit: Common LISP soll als LISP. LISP wurde von John McCarthy in allgemeiner Dialekt gelten. In der Ver- den 50 Jahren erstmals definiert. Er woll- gangenheit fuhrten¨ Unterschiede zwischen te eine Sprache definieren die durch folgen- einzelnen MacLISP Dialekten oft zu In- de Ideen charakterisiert wird: rechnen mit kompatibilit¨aten. symbolischen Ausdrucken¨ und nicht mit Zah- len, Repr¨asentation von Symbolischen Aus- • Portabilit¨at: Common LISP sollte kei- drucken¨ und anderen Informationen als Lis- ne Features enthalten die nicht einfach tenstruktur im Speicher eines Computers, eine auf den meisten Hardwaresystemen imple- kleine Anzahl von Selektions- und Konstruk- mentiert werden k¨onnen. tionsoperationen, Kompositionsfunktionen als Werkzeug um komplexere Funktionen zu bil- • Konsistenz: Die meisten LISP Im- den, Bedingungsausdrucke¨ um Verzweigungen plementationen waren inkonsistent. Das ¨ in Funktionsdefinitionen zu erlauben, rekursive heißt, das der Ubersetzer und der Inter- Benutzung von Bedingungsausdrucken¨ sollen preter einem korrekten Code unterschied- liche Semantik zuweisten. In Common ∗MatNr. 9825286, e-mail: [email protected] LISP soll dieses Problem behoben werden. 1 • Ausdruckskraft: Konstrukte die sich in Obwohl es so aussieht als sei Common LISP alten Implementationen bew¨ahrt haben nicht Case-Sensitiv ist das nicht ganz korrekt. sollen beibehalten werden und schlechte Intern sind alle Funktionen groß geschrieben Konstrukte sollen aus gesiebt werden. definiert (zum Beispiel CDR, CONS, . ). Man kann sie allerdings auch mit (cdr ’(a b)) • Kompatibilit¨at: Common LISP soll aufrufen. Das liegt daran, daß der Interpre- kompatibel sein mit MacLISP und Inter- ter alle Zeichen in Großbuchstaben umwandelt, LISP etwa in dieser Reihenfolge. es sei den sie sind besonders gekennzeichnet. • Effizienz: Es sollte m¨oglich sein ein op- Mehr dazu im Abschnitt Symbole. timierenden Compiler fur¨ Common LISP Variablen in LISP sind grundstzlich typen- zu schreiben. los. Man kann ihnen allerdings Typen zuwei- sen, was speziell dem Ubersetzer¨ hilft besseren • Power: Common LISP sollte es erm¨ogli- Code zu erzeugen. chen Pakete zu erstellen und einzubinden aber keine bereitstellen. 2.2 Basistypen • Stabilit¨at: Nachdem Common LISP ein- Ich werde in den n¨achsten Abs¨atzen die wich- mal definiert wurde, sollte es sich nur noch tigsten Datentypen die Common LISP verwen- langsam und mit bed¨achtig ¨andern det kurz erl¨autern. In Common LISP gibt es folgende Basistypen. Definitiv keine Ziele sind[2] • integer • Grafik: Grafik Programme tendieren da- zu sehr Umgebungs abh¨angig zu sein. Dar- • ratio um spezifiziert Common LISP keine Gra- fik Befehle. • short-float • Multiprocessing: Obwohl einige geplan- • single-float te Implementationen Hilfsmittel bereit- stellen werden, ist Common LISP nicht fur¨ • double-float Multiprocessing vorgesehen. • long-float • Objekt orientiertes Programmieren: • float standard Gleitkommatyp, ublicher-¨ Objekt orientiertes Programmieren ist fur ¨ weise gleich single-float Common LISP nicht vorgesehen • complex 2 Syntax uns Semantik • character 2.1 Allgemeines ;integer Zahlen In den folgenden Abs¨atzen werde ich versu- 0 ; Zero chen die wichtigsten Aspekte der Syntax und −0 ;das gleiche Semantik von Common LISP dar zu stellen. #16 r f f ;255 Ausfuhrliche¨ Information zur Syntax und Se- #16rFf ;255 Common LISP ist mantik k¨onnen im Buch Common Lisp the ni c ht Case−S e n s i t i v e Language[5] nachgeschlagen werden. #12r2a ; −(2∗10ˆ12+11∗10ˆ0) = 34 2 ; r a t i o s namen auch durch zwei ’|’ umklammern. Das 2/3 ; bedeutet das die umklammerten Zeichen genau #2r10/11 ;2/3 so bleiben wie sie sind. ; f l o a t s abcdefg ;Das Symbol mit dem Namen −0. ;0.0 standard float ”ABCDEFG” 2.5s1 ;25.0 shoart−f l o a t AbCdEfG ; das Gleiche ; complex \ abcdefg ;Das Symbol mit #C( 3 . 6 4 2 l −2 −2.435d24) ;complexe dem Namen ”aBCDEFG” zahl | abcdefg | ;Das Symbol mit ; c h a r a c t e r dem Namen ” abcdefg ” #\n ;Zeichen ’n’ #\SPACE ;Zeichen ’ ’ 2.5 Die Symbole NIL und T 2.3 Conses, Listen und S- Das Symbol NIL beschreibt eine Leere Lis- Expressions te. Weiters wird es benutzt um boolsche Aus- Ein cons besteht aus zwei Elementen die car drucke¨ zu evaluieren (= 0 1) ⇒ NIL. Das und cdr genannt werden und wird notiert als Symbol T ist definiert als (not nil) ⇒ T (<car> . <cdr>) (die beiden Leerzeichen vor n i l ;=>NIL und nach dem Punkt sind relevant). Eine Liste t ;=>T wird Rekursiv definiert. Sie ist entweder eine ( not n i l ) ;=>T leere Liste nil oder ein cons dessen cdr ei- ( not 1) ;=>NIL ne Liste ist. Also ist eine Liste eine Kette von (= 1 2) ;=>NIL consen mit einem terminierenden nil[4]. Ei- ne Liste wird mit einer umkammerten durch Leerzeichen separierte Liste notiert. 2.6 Programmstruktur (4 . 2) ;ein cons mit car=4 und Ein Programm in Common LISP besteht aus cdr=2 einer Folge von formen. Ein form ist einfach ein (4 . (2 . nil)) ;das gleiche wie Datenobjekt das evaluiert werden soll. 2 ⇒ 2 (4 2) also eine Liste und (* 3 4) ⇒ 12 ( ⇒ bedeutet evaluiert zu). Alle in Common LISP darstellbaren Ausdrucke¨ Symbole werden in Common LISP als Namen sind sind S-Expressions. Eine S-Expression ist fur¨ Variablen und ¨ahnliches verwendet. Nach- entweder ein atom oder ein cons dessen car dem man (setq v 5) ausgefuhrt¨ hat evaluiert und cdr wieder eine S-Expression darstellen. v ⇒ 5. Ist das Datenobjekt eine Liste so no- tiert das erste Element einen Funktionsnamen 2.4 Symbole und die Restlichen die Funktionsparameter. Symbole dienen in LISP als Namen fur¨ Va- 2.7 Wichtige Funktionen riablen, Funktionen, Makros . Notiert wer- den sie einfach durch den Symbolnamen. Soll • quote: Eine der am h¨aufigsten verwende- ein Symbolname ein Sonderzeichen oder einen ten Funktion ist (quote x) ⇒ x. Diese Kleinbuchstaben enthalten, so ist ein ’\’ vor- Funktion evaluiert einfach zu x ohne das zustellen. Weiters kann man ein einen Symbol- x ausgewertet wird. Da quote sehr h¨aufig 3 verwendet wird kann man es durch ’x • loop <rumpf>:Fuhrt¨ eine Endlosschleife abkurzen.¨ aus die mit return unterbrochen werden kann. ( quote x ) ;=> x (setq a 10) ’(a 65) ;=> ( a 65) 3 Anwendungen (setq a 10) (list a 65) ;=> (10 65) Common LISP wurde in mehreren wirt- schaftlich orientierten Projekten erfolgreich angewandt allen voran die Yahoo! Sto- • list [a1 [a2 [...]]]: Evaluiert nach re web-commerce Internetseite. Weiters sind der Liste die die Parameter als Elemente erw¨ahnenswert: hat. (list 1 2 3 4) ⇒ (1 2 3 4) • Mirai: Izware LLC’s 2D/3D Graphic Pro- • car <cons> / cdr <cons>: Diese beiden gramm Funktionen liefern das car beziehungs- weise des cdr eines cons. Da eine Lis- • Xanalys Corp’s Investiagtions-Software: te durch eine Verkettung cons dargestellt Diese Programmlinie wird weltweit von wird evaluiert (car ’(a1 a2 ... an)) Polizei und Sicherheitsdiensten verwen- mit a1 und (cdr ’(a1 a2 ... an)) mit det. (a2 ... an) • ICAD: Eine der fuhrenden¨ Softwarepakte fur¨ mechanisches Design • cons <car> <cdr>: cons evaluiert zum Cons (<car> . <cdr>) Auch in der open-source Gemeinde wird Common LISP verwendet. • setq <Symbol> <Ausdruck>: Bindet das eine Variable an einen Wert. (setq a 13) • Maxima: Ein Computer Algebra System bindet das Symbol A an den Ausdruck 13. • Compo ist eine Sprache in der man kom- plexe musikalische Strukturen naturlich • defun <Name> (<Parameter>) <Rumpf>: ¨ Definiert eine neu Funktion. Der Name beschreiben kann kann ein beliebiges Symbol sein, die Para- Die NASA verwendet Common LISP Pro- meter sind eine Liste aus Symbolen. Der gramme wie zum Beispiel: Rumpf ist dann eine Folge von formen. Wobei das Ergebnis der form gleichzeitig • SPIKE: Das Zeitplanungs-System fur¨ das das Ergebnis der Funktion ist. Hubble Weltraumteleskop • Remote Agent: Gewinner der NASA Soft- • if <Bedingung> <Rumpf1> <Rumpf2>: ware of the Year Auszeichnung 1999 Wenn die Bedingung ungleich NIL ist dann evaluiert dieses Form zu Rumpf 1 ansonsten zu Rumpf2. 4 Besonderheiten • cond ((<b1> <R1>) ... (<bn> <Rn>)): • typenlose Variablen: Eine der Beson- Die Bedingungen werden der Reihe nach derheiten von Common LISP ist, daß es ausgewertet. und der Erste Zweig der typenlose Variablen verwendet. Es ist al- nicht NIL ausgefuhrt.¨ lerdings m¨oglich eine Variable auf einen 4 speziellen Typ zu restriktieren. Dies fuhrt¨ In einem Vergleichstest zwischen LISP, Java, im allgemeinen zu einer Performacesteige- C und C++ schneidet LISP sehr gut ab[1]. rung des Programms, speziell wird es dem Zahlentypen wie ratio oder bignum machen Ubersetzer¨ erleichtert Optimierungen vor- Common LISP praktikabel fur¨ allerlei numeri- zunehmen. sche Rechenaufgaben. • komplexe Zahlentypen: Common Lisp definiert Datentypen wie bignum oder Literatur ratio die es erm¨oglicht mit komplexen Zahlenformaten effektiv zu rechnen. Ein [1] Erann Gat. Point of view: Lisp as an al- Programm wie zum Beispiel ternative to java.
Recommended publications
  • 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]
  • Knowledge Based Engineering: Between AI and CAD
    Advanced Engineering Informatics 26 (2012) 159–179 Contents lists available at SciVerse ScienceDirect Advanced Engineering Informatics journal homepage: www.elsevier.com/locate/aei Knowledge based engineering: Between AI and CAD. Review of a language based technology to support engineering design ⇑ Gianfranco La Rocca Faculty of Aerospace Engineering, Delft University of Technology, Chair of Flight Performance and Propulsion, Kluyverweg 1, 2629HS Delft, The Netherlands article info abstract Article history: Knowledge based engineering (KBE) is a relatively young technology with an enormous potential for Available online 16 March 2012 engineering design applications. Unfortunately the amount of dedicated literature available to date is quite low and dispersed. This has not promoted the diffusion of KBE in the world of industry and acade- Keywords: mia, neither has it contributed to enhancing the level of understanding of its technological fundamentals. Knowledge based engineering The scope of this paper is to offer a broad technological review of KBE in the attempt to fill the current Knowledge engineering information gap. The artificial intelligence roots of KBE are briefly discussed and the main differences and Engineering design similarities with respect to classical knowledge based systems and modern general purpose CAD systems Generative design highlighted. The programming approach, which is a distinctive aspect of state-of-the-art KBE systems, is Knowledge based design Rule based design discussed in detail, to illustrate its effectiveness in capturing and re-using engineering knowledge to automate large portions of the design process. The evolution and trends of KBE systems are investigated and, to conclude, a list of recommendations and expectations for the KBE systems of the future is provided.
    [Show full text]
  • Contribu[Ii La Dezvoltarea Sistemelor Expert %N Domeniul Construc[Iilor
    UNIVERSITATEA TEHNIC~ DIN CLUJ-NAPOCA FACULTATEA DE CONSTRUC[II {ef lucr@ri ing. Zsongor F. GOBESZ CONTRIBU[II LA DEZVOLTAREA SISTEMELOR EXPERT %N DOMENIUL CONSTRUC[IILOR - TEZ~ DE DOCTORAT - Conduc@tor }tiin]ific: Prof.dr.ing. Alexandru C~T~RIG CLUJ-NAPOCA 1999 MUL[UMIRI %ntruc$t aceast@ lucrare ^ncearc@ s@ reflecte preocup@rile mele din ultimii ani, dedica]i ^ntr-o mare m@sur@ cercet@rilor legate de aplicarea sistemelor pe baz@ de cuno}tin]e ^n domeniul construc]iilor din ]ara noastr@, ea nu se putea realiza f@r@ sprijinul }i ajutorul unor persoane, c@rora ]in s@-mi exprim recuno}tin]a }i pe aceast@ cale. %n primul r$nd ]in s@ mul]umesc domnului prof. Alexandru C@t@rig, conduc@torului }tiin]ific, pentru ajutorul s@u, spiritul s@u critic, sugestiile valoroase pe care mi le-a f@cut }i nu ^n ultimul r$nd pentru r@bdarea de care a dat dovad@, ^n special ^n ultimii doi ani. Doresc s@ mul]umesc domnilor prof. Marian Ivan (U.P. din Timi}oara), prof. Ioan Ciongradi (U.T. din Ia}i) }i prof. Ludovic Kopenetz (U.T. din Cluj-Napoca) pentru c@ au acceptat sarcina de a fi referen]i. %n plus, doresc s@ mul]umesc domnului prof. Ciongradi }i pentru instrumentele demonstrative }i generatoarele de sisteme expert primite de la Ia}i, iar domnului prof. Kopenetz pentru documenta]iile }i ^nsemn@rile pe care mi le-a pus la dispozi]ie. [in s@ mul]umesc ^n mod deosebit tat@lui meu, at$t pentru cuno}tin]ele ^mp@rt@}ite de-a lungul anilor c$t }i pentru ajutorul moral }i material primite pentru a finaliza }i a multiplica aceast@ lucrare.
    [Show full text]
  • Basic Lisp Techniques
    Basic Lisp Techniques David J. Cooper, Jr. September 10, 2000 ii 0Copyright c 2000, Franz Inc. and David J. Cooper, Jr. Foreword1 Computers, and the software applications that power them, permeate every facet of our daily lives. From groceries to airline reservations to dental appointments, our reliance on technology is all- encompassing. And, we want more. Every day, our expectations of technology and software increase: smaller cell phones that surf the net • better search engines that generate information we actually want • voice-activated laptops • cars that know exactly where to go • The list is endless. Unfortunately, there is not an endless supply of programmers and developers to satisfy our insatiable appetites for new features and gadgets. \Cheap talent" to help complete the \grunt work" of an application no longer exists. Further, the days of unlimited funding are over. Investors want to see results, fast. Every day, hundreds of magazine and on-line articles focus on the time and people resources needed to support future technological expectations. Common Lisp (CL) is one of the few languages and development options that can meet these challenges. Powerful, flexible, changeable on the fly | increasingly, CL is playing a leading role in areas with complex problem-solving demands. Engineers in the fields of bioinformatics, scheduling, data mining, document management, B2B, and E-commerce have all turned to CL to complete their applications on time and within budget. But CL is no longer just appropriate for the most complex problems. Applications of modest complexity, but with demanding needs for fast development cycles and customization, are also ideal candidates for CL.
    [Show full text]
  • Robot Programming with Lisp 2
    Artificial Intelligence Robot Programming with Lisp 2. Imperative Programming Gayane Kazhoyan Institute for Artificial Intelligence University of Bremen 25th October, 2018 (LISP $ Lots of Irritating Superfluous Parenthesis) Copyright: XKCD Artificial Intelligence Lisp the Language LISP $ LISt Processing language Theory Assignment Gayane Kazhoyan Robot Programming with Lisp 25th October, 2018 2 Artificial Intelligence Lisp the Language LISP $ LISt Processing language (LISP $ Lots of Irritating Superfluous Parenthesis) Copyright: XKCD Theory Assignment Gayane Kazhoyan Robot Programming with Lisp 25th October, 2018 3 • Garbage collection: first language to have an automated GC • Functions as first-class citizens (e.g. callbacks) • Anonymous functions • Side-effects are allowed, not purely functional as, e.g., Haskell • Run-time code generation • Easily-expandable through the powerful macros mechanism Artificial Intelligence Technical Characteristics • Dynamic typing: specifying the type of a variable is optional Theory Assignment Gayane Kazhoyan Robot Programming with Lisp 25th October, 2018 4 • Functions as first-class citizens (e.g. callbacks) • Anonymous functions • Side-effects are allowed, not purely functional as, e.g., Haskell • Run-time code generation • Easily-expandable through the powerful macros mechanism Artificial Intelligence Technical Characteristics • Dynamic typing: specifying the type of a variable is optional • Garbage collection: first language to have an automated GC Theory Assignment Gayane Kazhoyan Robot Programming with Lisp 25th October, 2018 5 • Anonymous functions • Side-effects are allowed, not purely functional as, e.g., Haskell • Run-time code generation • Easily-expandable through the powerful macros mechanism Artificial Intelligence Technical Characteristics • Dynamic typing: specifying the type of a variable is optional • Garbage collection: first language to have an automated GC • Functions as first-class citizens (e.g.
    [Show full text]
  • Common Lisp Ecosystem and Software Distribution
    Introduction to Common Lisp Compilation and system images System definition and building Software distribution Summary Common Lisp ecosystem and the software distribution model Daniel Kochma´nski TurtleWare July 3, 2016 Daniel Kochma´nski Common Lisp software distribution Introduction to Common Lisp Compilation and system images Historical note System definition and building Distinctive features Software distribution Current state Summary 1936 { Alozno Church invents Lambda Calculus 1960 { John McCarthy presents paper about LISP 1973 { MIT Lisp Machine Project 1984 { AI winter (and the unfortunate marriage with Lisp) 1994 { Various dialects unification with Common Lisp 2000 { Renaissance of the community Daniel Kochma´nski Common Lisp software distribution Introduction to Common Lisp Compilation and system images Historical note System definition and building Distinctive features Software distribution Current state Summary Figure: \John McCarthy presents Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I" { Painting by Ferdinand Bol, 1662 Daniel Kochma´nski Common Lisp software distribution Introduction to Common Lisp Compilation and system images Historical note System definition and building Distinctive features Software distribution Current state Summary Figure: John McCarthy (1927-2011) Daniel Kochma´nski Common Lisp software distribution Introduction to Common Lisp Compilation and system images Historical note System definition and building Distinctive features Software distribution Current state Summary
    [Show full text]
  • Audio System for Technical Readings
    AUDIO SYSTEM FOR TECHNICAL READINGS A Dissertation Presented to the Faculty of the Graduate School of Cornell University in Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy by T. V. Raman May 1994 c T. V. Raman 1994 ALL RIGHTS RESERVED AUDIO SYSTEM FOR TECHNICAL READINGS T. V. Raman, Ph.D. Cornell University 1994 The advent of electronic documents makes information available in more than its visual form —electronic information can now be display-independent. We describe acomputingsystem,ASTER, that audio formats electronic documents to produce audio documents. ASTER can speak both literary texts and highly technical docu- ments (presently in (LA)TEX) that contain complex mathematics. Visual communication is characterized by the eye’s ability to actively access parts of a two-dimensional display. The reader is active, while the display is passive. This active-passive role is reversed by the temporal nature of oral communication: information flows actively past a passive listener. This prohibits multiple views — it is impossible to first obtain a high-level view and then “look” at details. These shortcomings become severe when presenting complex mathematics orally. Audio formatting, which renders information structure in a manner attuned to an auditory display, overcomes these problems. ASTER is interactive, and the ability to browse information structure and obtain multiple views enables active listening. Biographical Sketch T.V. Raman was born and raised in Pune, India. He was partially sighted (sufficient to be able to read and write) until he was 14. Thereafter, he learned with the help of his brother, who spent a great deal of time as his first reader/tutor.
    [Show full text]
  • The Planning and Scheduling Working Group Report on Programming Languages
    The Planning and Scheduling Working Group Report on Programming Languages John Michael Adams∗ Rob Hawkins Carey Myers Chris Sontag Scott Speck Frank Tanner April 4, 2003 ∗[email protected] 1 Contents Analysis and Recommendations 3 The Position of John Michael Adams 21 The Position of Rob Hawkins 51 The Position of Chris Sontag 62 The Position of Scott Speck 64 The Position of Frank Tanner 66 Beating the Averages 69 Revenge of the Nerds 79 2 1 Introduction This reports the results of a study undertaken at the Space Telescope Science Institute by the Planning and Scheduling Working Group (PSG), in order to evaluate the applicability of various programming languages to our astronomical planning and scheduling systems. While there is not universal agreement on all points, the available evidence supports the conclusion that Lisp was and continues to be the best programming language for the Institute's planning and scheduling software systems. This report is structured as a sequence of articles. The first article consti- tutes the main body of the report and must be considered the official position of the working group. Subsequent articles are more detailed. These document individual positions taken by the committee members during the course of our study. Concerning the relative merits of programming language and their applica- bility to specific projects, objective formal data are difficult to find. One may consult the ACM Computing Curricula [3] and language advocacy newsgroups to observe controversy at all levels of the computing community. Given the difficulties, lack of unanimity is not unexpected. Our finding derives from the evidence and analysis supplied by the language subcommittee, synthesized under the guidance and approval of PSG.
    [Show full text]
  • Improving Performance Quality and User Experience in the PULS News Mining System
    Date of acceptance Grade Instructor Improving performance quality and user experience in the PULS News Mining system Mian Du Helsinki September 17, 2012 UNIVERSITY OF HELSINKI Department of Computer Science HELSINGIN YLIOPISTO — HELSINGFORS UNIVERSITET — UNIVERSITY OF HELSINKI Tiedekunta — Fakultet — Faculty Laitos — Institution — Department Faculty of Science Department of Computer Science Tekijä — Författare — Author Mian Du Työn nimi — Arbetets titel — Title Improving performance quality and user experience in the PULS News Mining system Oppiaine — Läroämne — Subject Computer Science Työn laji — Arbetets art — Level Aika — Datum — Month and year Sivumäärä — Sidoantal — Number of pages September 17, 2012 85 pages + 48 appendices Tiivistelmä — Referat — Abstract Pattern-based Understanding and Learning System (PULS) can be considered as one key component of a large distributed news surveillance system. It is formed by the following three parts, 1. an Information Extraction (IE) system running on the back-end, which receives news articles as plain text in RSS feeds arriving continuously in real-time from several partner systems, processes and extracts information from these feeds and stores the information into the database; 2. a Web-based decision support (DS) system running on the front-end, which visualizes the information for decision-making and user evaluation; 3. both of them share the central database, which stores the structured information extracted by IE system and visualized by decision support system. In the IE system, there is an increasing need to extend the capability of extracting information from only English articles in medical and business domain to be able to handle articles in other languages like French, Russian and in other domains.
    [Show full text]