apple tree logo
apple tree logo
Systems & Languages

Good Places to Start

Readings Online

Related Web Sites

Related Pages

More Readings
(see FAQ)

Recent News about THE TOPICS (annotated)



 

 
audience looking at stage
"It is an interesting time to be an AI researcher. Computer speeds and capacities have increased to the point that tasks that used to take days can now be done in seconds. The pervasive role of computers in everyday life has emphasized the need for people and computers to co-exist and, one hopes, complement rather than hinder each other. Within the field of AI itself, we now have a solid understanding of many of he core issues. AI concepts like search, planning, learning, natural language, and so on have mature theoretical underpinnings and extensive practical histories. In many cases we understand just how hard some of these problems are to solve, and in these cases we often have a good understanding of how approximate solutions can be found and what the tradeoffs are in using them.Supported by these two trends, it is now possible to build AI systems that actually perform tasks that people find difficult (and that require intelligence, however exactly you de-fine it) in reasonable amounts of time."
-
George Ferguson and James Allen

An AI system is an orchestrated performance, not unlike a Broadway musical. Both come to life as the result of the choreographed interplay of diverse parts. In the theater, the music and words, scenery nd lighting, actors and dancers, all interact to create a purposeful experience. Similarly, the system hardware of your desktop PC sets the stage on which software technologies such as voice recognition, web access, text-to-speech, and 3-D image generators, perform their roles as directed by a complex computer program. The choice of a programming language also has its theatrical counterpart. The decision as to whether the concept should be embodied within a musical, an opera, or drama, obviously sets parameters for what can and cannot be done.

The choice to write it in English, French, Spanish or Italian will determine how many of the cast, crew and audience will understand it without translation, and if translation is provided, will meaning be lost. A programmer faces similar decisions when choosing a programming language. The language must be capable of representing the necessary concepts and it must be able to be understood by the other system components. After all, you wouldn't use a language developed for robot navigation to program a system designed to decode music...or would you ?

And just as advancements in construction and acoustics changed the shape of theater architecture, and the introduction of wireless microphones made possible new staging options, the universe of systems and languages is evolving on every level such that it offers increasingly spectacular performances. For example:

  • the personal computer, which greatly expanded the audience;finger pushing power button
  • time sharing, which allows truly interactive programs;
  • list processing languages, which expanded the scope of programs from numerical calculation to symbolic reasoning;
  • cheap memory, which allows programs to become very large;
  • interactive graphics chips, which make computer games and virtual reality possible;
  • standard image formats, which allow incorporating images in programs; and,
  • inexpensive mass storage, which allows programs to store and access huge amounts of data.
AI scientists are key players in this dynamic environment, where yesterday's dreams are today's realities, and today's dreams are being worked on.

Good Places to Start

Systems, Systematically Speaking. A Letter from the Editor, James Hendler. IEEE Intelligent Systems (May / June 2005; 20 (3): 2-4). "Think of the difference between the system of equations describing computation,the computing system hardware designed to bring those to reality,and the operating system software that makes the whole thing run. These different meanings are connected to a problem we computer scientists face when explaining what we do to those outside our field. ... Where does this confusion come from? I think the word 'systems' is partly to blame. It entered our field through our roots in cybernetics and control, before the computer, as we know it today, came into existence. As a result, we refer to 'systems' at virtually every level of our endeavor from 'systems administrator' to 'systems theory.' ... [I]f we look closely at these articles [in this issue], at least one theme emerges. It arises from the understanding that a system is, as dictionary.com defines it, 'A group of interacting, interrelated, or interdependent elements forming a complex whole.' In each article,we see not the explicit interaction of these parts but the demonstration of techniques that can be used not just in the system being described but also more widely."

FAQ 1-10: What are good programming languages for AI ? From the Artificial Intelligence FAQ's collection that moved from CMU to UCLA and is maintained by Amit Dubey and Ric Crabbe; written by Ric Crabbe, Amit Dubey, and Mark Kantrowitz. hands at the keyboard

AI Language Overview. From PC AI. C++, Dylan, Eiffel, Lisp, and many more.

Webopedia: LISP and Prolog. You'll not only find good definitions on each page, but also links to some very good resources.

Artificial Intelligence development environments. Professor Aaron Sloman. "This was a lecture to first year AI students at Birmingham, Dec 4th 2001, on how AI programming is both like and unlike other forms of software engineering and how this influences design of AI languages and development environments." Be sure to see slides 13 - 15: "Some characteristics of AI languages."

A bit of Prolog History from Roman Bartak's Introduction to Guide to Prolog Programming.

Timeline exhibit at the Computer History Museum. "This timeline explores the history of computing from 1945 to 1990. Each year features illustrated descriptions of significant innovations in hardware and software technology, as well as milestones in areas such as commercial applications and artificial intelligence. When appropriate, biographical sketches of the pioneers responsible for the advances are included."

  • Components - for example, from 1986: "Compaq beat IBM to the market when it announced the Deskpro 386, the first computer on the market to use Intel´s new 80386 chip, a 32-bit microprocessor with 275,000 transistors on each chip. At 4 million operations per second and 4 kilobytes of memory, the 80386 gave PCs as much speed and power as older mainframes and minicomputers. The 386 chip brought with it the introduction of a 32-bit architecture, a significant improvement over the 16-bit architecture of previous microprocessors. It had two operating modes, one that mirrored the segmented memory of older x86 chips, allowing full backward compatibility, and one that took full advantage of its more advanced technology. The new chip made graphical operating environments for IBM PC and PC-compatible computers practical."
  • Computers - wonderful photos, specs and more about ENIAC, AVIDAC, Manchester Mark I, Pilot ACE, MIT Whirlwind, UNIVAC I, Micral, and many others.
  • Software & Languages - here are just two examples from this exciting collection:
    • "Claude Shannon's 'The Mathematical Theory of Communication' showed engineers how to code data so they could check for accuracy after transmission between computers. Shannon identified the bit as the fundamental unit of data and, coincidentally, the basic unit of computation."
    • " LISP made its debut as the first computer language designed for writing artificial intelligence programs. Created by John McCarthy, LISP offered programmers flexibility in organization."

An Introduction to the LISP Programming Language: LISP Tutorial. By Marc Schwarz. From the forthcoming text: Natural Language Computing Workbook, by Ray C. Dougherty and Marc Schwarz. "LISP is among the oldest high level programming languages. It was first developed in 1958 by John McCarthy. It was later adopted as the primary research language of Artificial Intelligence (AI), which was born at a research conference in 1956. Despite later developments of such languages as FORTRAN, BASIC, ALGOL, APL, and C, LISP remains the predominant language in AI. There are a number of reasons...."

  • "The NYU Natural Language Computing Project maintains a number of online tutorials, in addition to the software available for free downloading. These guides are geared primarily towards first-year graduate students in Computer Science and Linguistics who may have had limited experience with either Unix, or functional programming languages. At the same time, the tutorials do not presume that the reader is either a Computer Science or Linguistics professional; no formal background in either field is required to make proper use of these online manuals. In addition, the tutorials do not presume any prior experience in the respective topics covered. An Introduction to LISP is currently available for browsing."

An Introduction and Tutorial for Common Lisp. By Marty Hall. Sections include: Lisp-Related Books; Online Lisp References; Issues for Lisp Beginners and Advanced Beginners; Issues for Intermediate/Advanced Lisp Programmers; CLOS [Common Lisp Object System]; Internet Lisp Resources; and Lisp-Related Papers.

  • Also see: CLISP - an ANSI Common Lisp.

See Our FAQ -> Q: After strolling around on your website the other day, I came across a frequently asked questions page on Machine Learning. One of the questions was, are the computers today powerful enough for Artificial Intelligence? And the answer was, I believe the computers of 30 years ago were powerful enough if only we knew how to program them. which leads me to my question. In current research, is AI research being programmed on top of exisiting operating systems, and basically are programs running on top of other programs? I've started work on a kernel, which IS the AI program, not a program on top of a kernel." For the rest of the inquiry and the response from one of our AI experts, go to our FAQ page.

Robotics gains in prestige, in part due to military conflicts. By Charles Sheehan. Associated Press / available from USA Today (April 8, 2004). "Researchers in robotics have traditionally faced two debilitating obstacles: terribly expensive parts and difficulty attracting funding from anyone outside of a small corps of true believers. But the field could be in line for a major jolt. Robotics experts see a 'perfect storm' heading their way, thanks in no small part to the human ravages of war. Just as the constant march of technology is driving down the cost of key components, top universities in robotics are reporting major increases in federal funding, with the Defense Department the biggest spender. ... At the same time, the materials that comprise the most technologically advanced components in robots, from optics to software, are becoming 'dirt cheap,' said Dan Kara, who covers the industry for Robotics Trends. Technology that lets robots perceive and overcome obstacles has made unparalleled bounds largely because the cost of charge-coupled devices (the core of every camera), microprocessors and varied sensors has fallen away as rapidly as computing power and memory have expanded."

Readings Online

LISP Primer. Colin Allen & Maneesh Dhagat. "This text has been written to provide a quick introduction to the basic elements of Common LISP for both experienced and novice programmers. ... This text has been used successfully with honors undergraduate students at Texas A&M; University. We now make it available on the World Wide Web in the hope that it will provide useful to the LISP community at large."

A Brief History of Programming Languages. BYTE. September 1995. "We've come a long way from computers programmed with wires and punch cards. Maybe not as far as some would like, though. Here are the innovations in programming."

The Future of Computing. By Michael L. Dertouzos. Scientific American (August 1999). "Oxygen, then, is an integrated collection of eight new technologies: handhelds, wall and trunk computers, a novel net, built-in speech understanding, knowledge access, collaboration, automation and customization. The power of Oxygen lies not in any one piece but in the totality of these human-oriented technologies together."

TRIPS: An Intelligent Integrated Problem-Solving Assistant. By George Ferguson and James Allen. In Proceedings of the Fifteenth National Conference on Artificial Intelligence (AAAI-98), pages 567-573. "This paper argues first for the utility of building end-to end systems that integrate a variety of capabilities in the performance of some task. ... We start with what it means to be an integrated AI system. The AI part seems straightforward: the system should perform some task or tasks that people find to require intelligence. As for integration, we feel that there are two important dimensions to consider. First, the system can integrate the functionality of multiple more specialized components in the performance of the task. In an integrated AI system, these components are things like planners, natural language parsers, learning algorithms, speech recognizers, temporal reasoners, logic engines, and so on. These are AI technologies that do not themselves solve a task, but that provide services necessary to do so. The second, less obvious, dimension to consider is the integration between the AI system and the person or people using it. Most, if not all, fielded AI systems have to interact with people at some time. It is in our interests to make this interaction as natural for the people as possible, both to increase the acceptance of the AI technology and to leverage people’s skills in the performance of the task. So an integrated system, to us, is one that both integrates multiple capabilities in service of a task and integrates its functions with those of its human users."

Lisp as an alternative to Java. Point of View by Erann Gat. Intelligence 11(4): 21-24 (2000). "Our results beg two questions: 1) Why does Lisp seem to do as well as it does and 2) If these results are real why isn't Lisp used more than it is?"

On Lisp. By Paul Graham. Prentice Hall (1993). You can now download the enite text for free from the author's website. "[A] comprehensive study of advanced Lisp techniques, with bottom-up programming as the unifying theme. ... As well as an indispensable reference, On Lisp is a source of software. Its examples form a library of functions and macros that readers will be able to use in their own Lisp programs."

  • Also see his essay, The Roots of LISP: "In 1960, John McCarthy published a remarkable paper in which he did for programming something like what Euclid did for geometry. He showed how, given a handful of simple operators and a notation for functions, you can build a whole programming language. He called this language Lisp, for 'List Processing,' because one of his key ideas was to use a simple data structure called a list for both code and data. It's worth understanding what McCarthy discovered, not just as a landmark in the history of computers, but as a model for what programming is tending to become in our own time."

newspaper with link to news index God Is the Machine. In the beginning there was 0. and then there was 1. A mind-bending meditation on the transcendent power of digital computation. By Kevin Kelly. Wired Magazine (December 2002).

Languages and Environments for AI. Section 1.2.7 of Chapter One (available online) of George F. Luger's textbook, Artificial Intelligence: Structures and Strategies for Complex Problem Solving, 5th Edition (Addison-Wesley; 2005). "Some of the most important by-products of artificial intelligence research have been advances in programming languages and software development environments. For a number of reasons, including the size of many AI application programs, the importance of a prototyping methodology, the tendency of search algorithms to generate huge spaces, and the difficulty of predicting the behavior of heuristically driven programs, AI programmers have been forced to develop a powerful set of programming methodologies."

Recursive Functions of Symbolic Expressions and their Computation by Machine (Part I). By John McCarthy. "This was the original paper on LISP. It is copied with minor notational changes from CACM, April 1960. If you want the exact typography, look there. A few typographical changes have been made, but the notation has not been modernized. There are also some new explanatory footnotes. Part II, which never appeared, was to have had some Lisp programs for algebraic computation." - from his list of Papers on Programming Languages

  • Also see: History of LISP. By John McCarthy. "LISP History according to McCarthy's memory in 1978. This paper was presented at the ACM SIGPLAN History of Programming Languages Conference, June 1-3, 1978. It was pubished in History of Programming Languages, edited by Richard Wexelblat, Academic Press 1981. At the time, there was essentially no challenge to my memory." - from his list of Historical Interest papers.

When will computer hardware match the human brain? By Hans Moravec. Journal of Transhumanism (now known as the Journal of Evolution and Technology). (Volume 1, March 1998). "This paper describes how the performance of AI machines tends to improve at the same pace that AI researchers get access to faster hardware. The processing power and memory capacity necessary to match general intellectual performance of the human brain are estimated. Based on extrapolation of past trends and on examination of technologies under development, it is predicted that the required hardware will be available in cheap machines in the 2020s."

The Challenges of Real-Time AI. By David J. Musliner, James A. Hendler, Ashok K. Agrawala, Edmund H. Durfee, Jay K. Strosnider, and C. J. Paul. (1995). "The research agendas of two major areas of computer science are converging: Artificial Intelligence (AI) methods are moving towards more realistic domains requiring real-time responses, and real-time systems are moving toward more complex applications requiring intelligent behavior. Together, they meet at the crossroads of interest in 'real-time intelligent control,' or 'real-time AI'".

Excerpt from Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp, by Peter Norvig (1992).

The Isaac Newton of logic - It was 150 years ago that George Boole published his classic The Laws of Thought, in which he outlined concepts that form the underpinnings of the modern high-speed computer. By Siobhan Roberts. The Globe and Mail (March 27, 2004; page F9). "It was 150 years ago that George Boole published his literary classic The Laws of Thought, wherein he devised a mathematical language for dealing with mental machinations of logic. It was a symbolic language of thought -- an algebra of logic (algebra is the branch of mathematics that uses letters and other general symbols to represent numbers and quantities in formulas and equations)."

Ambient Intelligence. By Nigel Shadbolt. IEEE Intelligent Systems (July/August 2003: pages 2 - 3). "Films portraying the future often contain visions of homes of the future. Fitted out with an array of intelligent devices, these homes can anticipate your every need. They are usually depicted as existing within wider smart infrastructures. These infrastructures boast intelligent transportation systems and seamlessly integrate services from health to shopping and from entertainment to law enforcement. This probably differs just a little from our everyday experience of public services. But help is at hand -- numerous research efforts are underway that aim to deliver environments rich in what the Europeans call ambient intelligence. Ambient intelligence involves the convergence of several computing areas."

Nanotechnology: Small wonders. By Mike Toner. The Atlanta Journal-Constitution (December 5, 2004). "Nanotechnology has been touted as the second industrial revolution --- a brave new world of atomic-scale engineering in which the ability to assemble individual atoms like Lego blocks will transform science, medicine and even our golf game. ... The National Science Foundation predicts that within a decade nanotechnology will be a $1 trillion market --- and provide as many as 2 million new jobs. ... Nano comes from the Greek for dwarf. Nanotechnology is the manipulation of materials, devices or processes that are 100 nanometers or less in at least one dimension. One nanometer is a billionth of a meter, about 80,000 times less than the width of a human hair. ... In his oft-cited 'Engines of Creation,' nanotech pioneer K. Eric Drexler --- formerly a researcher at MIT's artificial intelligence lab --- warned that 'replicating assemblers and thinking machines pose basic threats to people and life on Earth' --- threatening to turn everything on the planet into an amorphous 'gray goo.' Michael Crichton breathed new life into the notion a few years ago with 'Prey,' a sci-fi thriller about the escape of microscopic, self-replicating assemblers from a secret desert research lab. ... Drexler, who now heads the nonprofit educational Foresight Institute, has recanted much of his original claim, but he insists that the industry should have a policy prohibiting 'the construction of anything resembling a dangerous self-replicating nanomachine.'"

  • Also see:
    • Related materials on our Ethical & Social Implications page, including: Future technologies, today's choices - Nanotechnology, Artificial Intelligence and Robotics: A technical, political and institutional map of emerging technologies. Greenpeace UK (July 2003). "[W]hile Greenpeace accepts and relies upon the merits of many new technologies, we campaign against other technologies that have a potentially profound negative impact on the environment. This prompted Greenpeace to commission a comprehensive review of nanotechnology and artificial intelligence/robotics developments from an organisation with a reputation for technological expertise - Imperial College London. We asked them to document existing applications and to analyse current research and development (R&D;), the main players behind these developments, and the associated incentives and risks."
    • Congressional hearing addresses public concerns about nanotech. By Amara D. Angelica. KurzweilAI.net (April 14, 2003). "The convergence of information technology, biotechnology, and nanotechnology could result in self-replicating, nanoscale robots with potentially destructive consequences, according to computer-scientist Bill Joy, writing in Wired magazine, and others. These concerns led the U.S. House Committee on Science of the U.S. House of Representatives to hold a hearing on April 9, 2003 to 'examine the societal implications of nanotechnology and H.R. 766, the Nanotechnology Research and Development Act of 2002.'"
    • New Scientist Magazine's Special Report on Nanotechnology

Cryptic languages pronounced with a bit of a Lisp. By Tony Valsamidis. The Times Higher Education Supplement (December 24, 2004; subscription req'd.). "Not many years ago, a review of artificial intelligence systems reported that the majority were coded in Lisp, a programming language that is particularly suited to their implementation. Lisp, which was devised in the earliest days of computers, survives in many systems today in various forms despite its clumsy syntax involving the extensive use of nested brackets. Thomas Dean, an AI specialist, is an aficionado of Lisp, and most of the examples in his book [Talking with Computers] are given in Scheme, a dialect of Lisp. That is not to say that he excludes more fashionable languages such as Java, indeed he points out that many programming languages vary only in minor syntactical ways from each other."

The Quantum Computer - An Introduction. By Jacob West (April 28, 2000). "In a quantum computer, the fundamental unit of information (called a quantum bit or qubit), is not binary but rather more quaternary in nature. This qubit property arises as a direct consequence of its adherence to the laws of quantum mechanics which differ radically from the laws of classical physics. A qubit can exist not only in a state corresponding to the logical state 0 or 1 as in a classical bit, but also in states corresponding to a blend or superposition of these classical states. In other words, a qubit can exist as a zero, a one, or simultaneously as both 0 and 1, with a numerical coefficient representing the probability for each state."

Related Web Sites

AI on the Web: AI Programming: Lisp, C++ and Java, Prolog, and Python). A resource companion to Stuart Russell and Peter Norvig's "Artificial Intelligence: A Modern Approach" with links to reference material, people, research groups, books, companies and much more.

"Association of Lisp Users is an international organization dedicated to promoting and representing the international Lisp communities. The ALU maintains this website and holds annual international Lisp conferences in major cities around the world." Be sure to see their History of Lisp page.

Autonomic Computing at IBM. "There are a number of immediate needs that require us to adjust our thinking and reinterpret our approach to computing in general, and specifically to the interaction between computer hardware, software and networks. The current strain on I/T services demands that we turn our best minds to developing computer systems to be more automated and less reliant on human intervention." - from Academic Focus

  • Autonomic Computing: "An approach to self-managed computing systems with a minimum of human interference. The term derives from the body's autonomic nervous system, which controls key functions without conscious awareness or involvement."
  • Artificial Intelligence (AI): "The capacity of a computer or system to perform tasks commonly associated with the higher intellectual processes characteristic of humans. AI can be seen as an attempt to model aspects of human thought on computers. Although certain aspects of AI will undoubtedly make contributions to autonomic computing, autonomic computing does not have as its primary objective the emulation of human thought."

Autonomous Systems Laboratory at CSIRO, Australia's Commonwealth Scientific and Industrial Research Organisation. "Autonomous systems will bring enormous sociological and economic benefits through improved human safety, increased equipment utilisation, reduced maintenance costs and increased production. These systems comprise sensors intelligently linked to control and actuation, and may communicate and co-operate to achieve complex tasks. They are designed to perform tasks that humans do not wish to do, or that they cannot do safely or well."

Dynamic Languages Group. MIT Computer Science and Artificial Intelligence Laboratory (CSAIL). "We are exploring the design and implementation of next generation programming languages to support intelligent, adaptive, complex software systems."

Human-Centered Computing at the The University of West Florida's Institute for Human and Machine Cognition (IHMC). "The emerging concept of human-centered computing (HCC) represents a significant shift in thinking about intelligent systems, and indeed about information technology in general. This shift in perspective places human/machine interaction issues at the center of the subject. HCC can be defined as the discipline of matching hardware and software with human performance and capabilities toward the accomplishment of a specific task. HCC embodies a “systems view,” in which human thought and action and technological systems are seen as inextricably linked and equally important aspects of analysis, design, and evaluation. The “system” in question isn’t only “the computer” but instead includes cognitive and social systems, computational tools, and the physical facilities and environment. Thus, HCC provides a new research outlook, with new research agendas and goals. HCC research is inherently interdisciplinary, combining research in cognitive science, computer science, medical sciences, and the social sciences."

Nanocomputing and Nanoprocessors. From ArtificialBrains.com - maintained by James Pearn. "Nanocomputing, also known as nanoelectronics, is all about the building of incredibly tiny electronic circuits and microprocessors (or "nanoprocessors"). A nanometre is one billionth of a metre. ... Nanocomputing is of huge importance to advancement in artificial intelligence because it will enable the building of computers which are orders of magnitude smaller and more powerful than those available today."

Free Versions of POPLOG Including POP-11, LISP, PROLOG and ML. From the School of Computer Science, University of Birmingham, in collaboration with School of Cognitive and Computing Sciences, University of Sussex. Also offered at this site are lots of other resources such as primers, tutorials, demos, and Sim agent toolkits.

The Prolog Dictionary. Compiled by Bill Wilson, Associate Professor in the Artificial Intelligence Group, School of Computer Science and Engineering, University of NSW. "You should use The Prolog Dictionary to clarify or revise concepts that you have already met. The Prolog Dictionary is not a suitable way to begin to learn about Prolog."

Prolog resources from the web site of the Computer Based Learning Unit at the University of Leeds:

Related Pages

More Readings

Neuromorphic Microchips - Compact, efficient electronics based on the brain's neural system could yield implantable silicon retinas to restore vision, as well as robotic eyes and other smart sensors. By Kwabena Boahen. Scientific American (May 2005; subscription req'd.).

  • Find out more at the the Brains in Silicon web site from the Neuroengineering Research Laboratory of the University of Pennsylvania.