A Survey Article on Popular Artificial Intelligence Programming Languages
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
GNU/Linux AI & Alife HOWTO
GNU/Linux AI & Alife HOWTO GNU/Linux AI & Alife HOWTO Table of Contents GNU/Linux AI & Alife HOWTO......................................................................................................................1 by John Eikenberry..................................................................................................................................1 1. Introduction..........................................................................................................................................1 2. Symbolic Systems (GOFAI)................................................................................................................1 3. Connectionism.....................................................................................................................................1 4. Evolutionary Computing......................................................................................................................1 5. Alife & Complex Systems...................................................................................................................1 6. Agents & Robotics...............................................................................................................................1 7. Statistical & Machine Learning...........................................................................................................2 8. Missing & Dead...................................................................................................................................2 1. Introduction.........................................................................................................................................2 -
X-Machines for Agent-Based Modeling FLAME Perspectives CHAPMAN & HALL/CRC COMPUTER and INFORMATION SCIENCE SERIES
X-Machines for Agent-Based Modeling FLAME Perspectives CHAPMAN & HALL/CRC COMPUTER and INFORMATION SCIENCE SERIES Series Editor: Sartaj Sahni PUBLISHED TITLES ADVERSARIAL REASONING: COMPUTATIONAL APPROACHES TO READING THE OPPONENT’S MIND Alexander Kott and William M. McEneaney COMPUTER-AIDED GRAPHING AND SIMULATION TOOLS FOR AUTOCAD USERS P. A. Simionescu DELAUNAY MESH GENERATION Siu-Wing Cheng, Tamal Krishna Dey, and Jonathan Richard Shewchuk DISTRIBUTED SENSOR NETWORKS, SECOND EDITION S. Sitharama Iyengar and Richard R. Brooks DISTRIBUTED SYSTEMS: AN ALGORITHMIC APPROACH, SECOND EDITION Sukumar Ghosh ENERGY-AWARE MEMORY MANAGEMENT FOR EMBEDDED MULTIMEDIA SYSTEMS: A COMPUTER-AIDED DESIGN APPROACH Florin Balasa and Dhiraj K. Pradhan ENERGY EFFICIENT HARDWARE-SOFTWARE CO-SYNTHESIS USING RECONFIGURABLE HARDWARE Jingzhao Ou and Viktor K. Prasanna FROM ACTION SYSTEMS TO DISTRIBUTED SYSTEMS: THE REFINEMENT APPROACH Luigia Petre and Emil Sekerinski FUNDAMENTALS OF NATURAL COMPUTING: BASIC CONCEPTS, ALGORITHMS, AND APPLICATIONS Leandro Nunes de Castro HANDBOOK OF ALGORITHMS FOR WIRELESS NETWORKING AND MOBILE COMPUTING Azzedine Boukerche HANDBOOK OF APPROXIMATION ALGORITHMS AND METAHEURISTICS Teofilo F. Gonzalez HANDBOOK OF BIOINSPIRED ALGORITHMS AND APPLICATIONS Stephan Olariu and Albert Y. Zomaya HANDBOOK OF COMPUTATIONAL MOLECULAR BIOLOGY Srinivas Aluru HANDBOOK OF DATA STRUCTURES AND APPLICATIONS Dinesh P. Mehta and Sartaj Sahni PUBLISHED TITLES CONTINUED HANDBOOK OF DYNAMIC SYSTEM MODELING Paul A. Fishwick HANDBOOK OF ENERGY-AWARE AND GREEN COMPUTING Ishfaq Ahmad and Sanjay Ranka HANDBOOK OF GRAPH THEORY, COMBINATORIAL OPTIMIZATION, AND ALGORITHMS Krishnaiyan “KT” Thulasiraman, Subramanian Arumugam, Andreas Brandstädt, and Takao Nishizeki HANDBOOK OF PARALLEL COMPUTING: MODELS, ALGORITHMS AND APPLICATIONS Sanguthevar Rajasekaran and John Reif HANDBOOK OF REAL-TIME AND EMBEDDED SYSTEMS Insup Lee, Joseph Y-T. -
ALGORITHMS for ARTIFICIAL INTELLIGENCE in Apl2 By
MAY 1986 REVISED Nov 1986 TR 03·281 ALGORITHMS FOR ARTIFICIAL INTELLIGENCE IN APl2 By DR JAMES A· BROWN ED EUSEBI JANICE COOK lEO H GRONER INTERNATIONAL BUSINESS MACHINES CORPORATION GENERAL PRODUCTS DIVISION SANTA TERESA LABORATORY SAN JOSE~ CALIFORNIA ABSTRACT Many great advances in science and mathematics were preceded by notational improvements. While a g1yen algorithm can be implemented in any general purpose programming language, discovery of algorithms is heavily influenced by the notation used to Lnve s t Lq a t.e them. APL2 c o nce p t.ua Lly applies f unc t Lons in parallel to arrays of data and so is a natural notation in which to investigate' parallel algorithins. No c LaLm is made that APL2 1s an advance in notation that will precede a breakthrough in Artificial Intelligence but it 1s a new notation that allows a new view of the pr-obl.ems in AI and their solutions. APL2 can be used ill problems tractitionally programmed in LISP, and is a possible implementation language for PROLOG-like languages. This paper introduces a subset of the APL2 notation and explores how it can be applied to Artificial Intelligence. 111 CONTENTS Introduction. • • • • • • • • • • 1 Part 1: Artificial Intelligence. • • • 2 Part 2: Logic... · • 8 Part 3: APL2 ..... · 22 Part 4: The Implementations . · .40 Part 5: Going Beyond the Fundamentals .. • 61 Summary. .74 Conclus i ons , . · .75 Acknowledgements. • • 76 References. · 77 Appendix 1 : Implementations of the Algorithms.. 79 Appendix 2 : Glossary. • • • • • • • • • • • • • • • • 89 Appendix 3 : A Summary of Predicate Calculus. · 95 Appendix 4 : Tautologies. · 97 Appendix 5 : The DPY Function. -
Event Management for the Development of Multi-Agent Systems Using Logic Programming
Event Management for the Development of Multi-agent Systems using Logic Programming Natalia L. Weinbachy Alejandro J. Garc´ıa [email protected] [email protected] Laboratorio de Investigacio´n y Desarrollo en Inteligencia Artificial (LIDIA) Departamento de Ciencias e Ingenier´ıa de la Computacio´n Universidad Nacional del Sur Av. Alem 1253, (8000) Bah´ıa Blanca, Argentina Tel: (0291) 459-5135 / Fax: (0291) 459-5136 Abstract In this paper we present an extension of logic programming including events. We will first describe our proposal for specifying events in a logic program, and then we will present an implementation that uses an interesting communication mechanism called \signals & slots". The idea is to provide the application programmer with a mechanism for handling events. In our design we consider how to define an event, how to indicate the occurrence of an event, and how to associate an event with a service predicate or handler. Keywords: Event Management. Event-Driven Programming. Multi-agent Systems. Logic Programming. 1 Introduction An event represents the occurrence of something interesting for a process. Events are useful in those applications where pieces of code can be executed automatically when some condition is true. Therefore, event management is helpful to develop agents that react to certain occurrences produced by changes in the environment or caused by another agents. Our aim is to support event management in logic programming. An event can be emitted as a result of the execution of certain predicates, and will result in the execution of the service predicate or handler. For example, when programming a robot behaviour, an event could be associated with the discovery of an obstacle in its trajectory; when this event occurs (generated by some robot sensor), the robot might be able to react to it executing some kind of evasive algorithm. -
Oliver Knill: March 2000 Literature: Peter Norvig, Paradigns of Artificial Intelligence Programming Daniel Juravsky and James Martin, Speech and Language Processing
ENTRY ARTIFICIAL INTELLIGENCE [ENTRY ARTIFICIAL INTELLIGENCE] Authors: Oliver Knill: March 2000 Literature: Peter Norvig, Paradigns of Artificial Intelligence Programming Daniel Juravsky and James Martin, Speech and Language Processing Adaptive Simulated Annealing [Adaptive Simulated Annealing] A language interface to a neural net simulator. artificial intelligence [artificial intelligence] (AI) is a field of computer science concerned with the concepts and methods of symbolic knowledge representation. AI attempts to model aspects of human thought on computers. Aspectrs of AI: computer vision • language processing • pattern recognition • expert systems • problem solving • roboting • optical character recognition • artificial life • grammars • game theory • Babelfish [Babelfish] Online translation system from Systran. Chomsky [Chomsky] Noam Chomsky is a pioneer in formal language theory. He is MIT Professor of Linguistics, Linguistic Theory, Syntax, Semantics and Philosophy of Language. Eliza [Eliza] One of the first programs to feature English output as well as input. It was developed by Joseph Weizenbaum at MIT. The paper appears in the January 1966 issue of the "Communications of the Association of Computing Machinery". Google [Google] A search engine emerging at the end of the 20'th century. It has AI features, allows not only to answer questions by pointing to relevant webpages but can also do simple tasks like doing arithmetic computations, convert units, read the news or find pictures with some content. GPS [GPS] General Problem Solver. A program developed in 1957 by Alan Newell and Herbert Simon. The aim was to write a single computer program which could solve any problem. One reason why GPS was destined to fail is now at the core of computer science. -
The Points of Viewing Theory for Engaged Learning with Digital Media
The Points of Viewing Theory for Engaged Learning with Digital Media Ricki Goldman New York University John Black Columbia University John W. Maxwell Simon Fraser University Jan J. L. Plass New York University Mark J. Keitges University of Illinois, Urbana Champaign - 1 - Introduction Theories are dangerous things. All the same we must risk making one this afternoon since we are going to discuss modern tendencies. Directly we speak of tendencies or movements we commit to, the belief that there is some force, influence, outer pressure that is strong enough to stamp itself upon a whole group of different writers so that all their writing has a certain common likeness. — Virginia Woolff, The Leaning Tower, lecture delivered to the Workers' Educational Association, Brighton (May 1940). With full acknowledgement of the warning from the 1940 lecture by Virginia Woolf, this chapter begins by presenting a theory of mind, knowing only too well, that “a whole group of different” learning theorists cannot find adequate coverage under one umbrella. Nor should they. However, there is a movement occurring, a form of social activism created by the affordances of social media, an infrastructure that was built incrementally during two to three decades of hard scholarly research that brought us to this historic time and place. To honor the convergence of theories and technologies, this paper proposes the Points of Viewing Theory to provide researchers, teachers, and the public with an opportunity to discuss and perhaps change the epistemology of education from its formal structures to more do-it-yourself learning environments that dig deeper and better into content knowledge. -
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. -
A View of the Fifth Generation and Its Impact
AI Magazine Volume 3 Number 4 (1982) (© AAAI) Techniques and Methodology A View of the Fifth Generation And Its Impact David H. D. Warren SRI International Art$icial Intellagence Center Computer Scaence and Technology Davzsaon Menlo Park, Calafornia 94025 Abstract is partly secondhand. I apologise for any mistakes or misin- terpretations I may therefore have made. In October 1981, .Japan announced a national project to develop highly innovative computer systems for the 199Os, with the title “Fifth Genera- tion Computer Systems ” This paper is a personal view of that project, The fifth generation plan its significance, and reactions to it. In late 1978 the Japanese Ministry of International Trade THIS PAPER PRESENTS a personal view of the <Japanese and Industry (MITI) gave ETL the task of defining a project Fifth Generation Computer Systems project. My main to develop computer syst,ems for the 199Os, wit,h t,he title sources of information were the following: “Filth Generation.” The prqject should avoid competing with IBM head-on. In addition to the commercial aspects, The final proceedings of the Int,ernational Conference it should also enhance Japan’s international prestige. After on Fifth Generat,ion Computer Systems, held in Tokyo in October 1981, and the associated Fifth Generation various committees had deliberated, it was finally decided research reports distributed by the Japan Information to actually go ahead with a “Fifth Generation Computer Processing Development Center (JIPDEC); Systems” project in 1981. The project formally started in April, 1982. Presentations by Koichi Furukawa of Electrotechnical The general technical content of the plan seems to be Laboratory (ETL) at the Prolog Programming Environ- largely due to people at ETL and, in particular, to Kazuhiro ments Workshop, held in Linkoping, Sweden, in March 1982; Fuchi. -
CSC384: Intro to Artificial Intelligence Brief Introduction to Prolog
CSC384: Intro to Artificial Intelligence Brief Introduction to Prolog Part 1/2: Basic material Part 2/2 : More advanced material 1 Hojjat Ghaderi and Fahiem Bacchus, University of Toronto CSC384: Intro to Artificial Intelligence Resources Check the course website for several online tutorials and examples. There is also a comprehensive textbook: Prolog Programming for Artificial Intelligence by Ivan Bratko. 2 Hojjat Ghaderi and Fahiem Bacchus, University of Toronto What‟s Prolog? Prolog is a language that is useful for doing symbolic and logic-based computation. It‟s declarative: very different from imperative style programming like Java, C++, Python,… A program is partly like a database but much more powerful since we can also have general rules to infer new facts! A Prolog interpreter can follow these facts/rules and answer queries by sophisticated search. Ready for a quick ride? Buckle up! 3 Hojjat Ghaderi and Fahiem Bacchus, University of Toronto What‟s Prolog? Let‟s do a test drive! Here is a simple Prolog program saved in a file named family.pl male(albert). %a fact stating albert is a male male(edward). female(alice). %a fact stating alice is a female female(victoria). parent(albert,edward). %a fact: albert is parent of edward parent(victoria,edward). father(X,Y) :- %a rule: X is father of Y if X if a male parent of Y parent(X,Y), male(X). %body of above rule, can be on same line. mother(X,Y) :- parent(X,Y), female(X). %a similar rule for X being mother of Y A fact/rule (statement) ends with “.” and white space ignored read :- after rule head as “if”. -
An Architecture for Making Object-Oriented Systems Available from Prolog
An Architecture for Making Object-Oriented Systems Available from Prolog Jan Wielemaker and Anjo Anjewierden Social Science Informatics (SWI), University of Amsterdam, Roetersstraat 15, 1018 WB Amsterdam, The Netherlands, {jan,anjo}@swi.psy.uva.nl August 2, 2002 Abstract It is next to impossible to develop real-life applications in just pure Prolog. With XPCE [5] we realised a mechanism for integrating Prolog with an external object-oriented system that turns this OO system into a natural extension to Prolog. We describe the design and how it can be applied to other external OO systems. 1 Introduction A wealth of functionality is available in object-oriented systems and libraries. This paper addresses the issue of how such libraries can be made available in Prolog, in particular libraries for creating user interfaces. Almost any modern Prolog system can call routines in C and be called from C (or other impera- tive languages). Also, most systems provide ready-to-use libraries to handle network communication. These primitives are used to build bridges between Prolog and external libraries for (graphical) user- interfacing (GUIs), connecting to databases, embedding in (web-)servers, etc. Some, especially most GUI systems, are object-oriented (OO). The rest of this paper concentrates on GUIs, though the argu- ments apply to other systems too. GUIs consist of a large set of entities such as windows and controls that define a large number of operations. These operations often involve destructive state changes and the behaviour of GUI components normally involves handling spontaneous input in the form of events. OO techniques are very well suited to handle this complexity. -
Ofthe European Communities
ISSN 0378-6978 Official Journal L 81 Volume 27 of the European Communities 24 March 1984 English edition Legislation Contents I Acts whose publication is obligatory II Acts whose publication is not obligatory Council 84/ 157/EEC : * Council Decision of 28 February 1984 adopting the 1984 work programme for a European programme for research and development in information technologies (ESPRIT) 2 Acts whose titles are printed in light type are those relating to day-to-day management of agricultural matters, and are generally valid for a limited period . The titles of all other Acts are printed in bold type and preceded by an asterisk . 24 . 3 . 84 Official Journal of the European Communities No L81 / 1 II (Acts whose publication is not obligatory) COUNCIL COUNCIL DECISION of 28 February 1984 adopting the 1984 work programme for a European programme for research and development in information technologies (ESPRIT) (84/ 157/EEC) THE COUNCIL OF THE EUROPEAN HAS DECIDED AS FOLLOWS : COMMUNITIES, Having regard to the Treaty establishing the Article 1 European Economic Community, J The ESPRIT work programme as set out in the Having regard to Council Decision 84/ 130/EEC of Annex is hereby adopted for 1984 . 28 February 1984 concerning a European pro gramme for research and development in informa tion technologies ( ESPRIT) ('), and in particular Article 2 Article 3 (2) thereof, This Decision shall take effect on the day of its Having regard to the draft work programme submit publication in the Official Journal of the European ted by the Commission , Communities . Whereas, at talks organized by the Commission ser vices , industry and the academic world have given Done at Brussels , 28 February 1984 . -
Logic Programming Lecture 19 Tuesday, April 5, 2016 1 Logic Programming 2 Prolog
Harvard School of Engineering and Applied Sciences — CS 152: Programming Languages Logic programming Lecture 19 Tuesday, April 5, 2016 1 Logic programming Logic programming has its roots in automated theorem proving. Logic programming differs from theorem proving in that logic programming uses the framework of a logic to specify and perform computation. Essentially, a logic program computes values, using mechanisms that are also useful for deduction. Logic programming typically restricts itself to well-behaved fragments of logic. We can think of logic programs as having two interpretations. In the declarative interpretation, a logic pro- gram declares what is being computed. In the procedural interpretation, a logic program program describes how a computation takes place. In the declarative interpretation, one can reason about the correctness of a program without needing to think about underlying computation mechanisms; this makes declarative programs easier to understand, and to develop. A lot of the time, once we have developed a declarative program using a logic programming language, we also have an executable specification, that is, a procedu- ral interpretation that tells us how to compute what we described. This is one of the appealing features of logic programming. (In practice, executable specifications obtained this way are often inefficient; an under- standing of the underlying computational mechanism is needed to make the execution of the declarative program efficient.) We’ll consider some of the concepts of logic programming by considering the programming language Prolog, which was developed in the early 70s, initially as a programming language for natural language processing. 2 Prolog We start by introducing some terminology and syntax.