Download Universitetet i Linköping Institutionen för datavetenskap

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Universitetet i Linköping
Institutionen för datavetenskap
Anders Haraldsson
Universitetet i Linköping
Institutionen för datavetenskap
Anders Haraldsson
Artificial Intelligence and Lisp
Lisp-part
code: TDDC65
Anders Haraldsson ([email protected])
lecturer Lisp
Jenny Dalenius (@ida.liu.se)
lab assistant
More info http://www.ida.liu.se/~TDDC65
Universitetet i Linköping
Institutionen för datavetenskap
Anders Haraldsson
The course is divided in two parts:
First period HT1:
Lisp programming
basic structures in the language
recursion (functions and problems)
exercises oriented towards AI, pattern
matching, search
Second period HT2:
Artificial intelligence
broad overview
logics intro
knowledge representation (lab)
agents (lab)
search (lab)
planning (lab)
learning
robotics
natural language
Universitetet i Linköping
Institutionen för datavetenskap
Anders Haraldsson
Course material
Why Lisp in an AI course
See www-page.
Historically they grew together from ca 1960.
Book in Swedish: Haraldsson, Programmering i
Lisp, Studentlitteratur
To build AI systems most languages are appropriate.
Resources on the web. A number of web-based
books are available.
Material for using unix, emacs and the Allegro
Common Lisp system.
Lisp has interesting properties suited for AI:
Symbolic representation of data.
List structures in an external parenthesized form.
Garbage collector.
Experimental. A top loop. Give an expression - get an
answer.
Dynamic. Declarations not necessary. Code can be
changed easily.
Assignments and lab groups
There are three assignments during period 1.
Interpreter and evaluator function. Compiler available.
First lab Friday 28 Aug in Su00, Su01, Su02 in the
B-house.
Code can be manipulated. Code is represented in
lists. No difference between program and data. Code
can be created.
Two students per lab group.
We use the dialect Common Lisp in this course.
Universitetet i Linköping
Institutionen för datavetenskap
Anders Haraldsson
But Lisp may also be interested to studied in
a programming and language aspect.
Universitetet i Linköping
Institutionen för datavetenskap
Anders Haraldsson
History of Lisp
Lisp / Scheme is still used on a large number of universities as the first programming language to use
in the first programming course. We use it in
Linköping in Computer Science / Engineering (D
and C) and Electrical Engineering curricula (Y).
1959 John McCarthy - Lisp 1.5
MIT uses it together with the book; Abelson, Sussman, Structure and Interpretation of Programming
Languages.
list structures
garbage collector
eval function (the internal evaluator)
recursion
Today (after 40 years) a number of “modern” programming languages include construct coming
from the Lisp. In Python, Ruby and also in C++
there are coming:
Build in symbols (Python), lists (Python, Ruby).
Functions as data objects, lambda-expressions
and closures (Python, Ruby, C++)
Top loop (Python, Ruby)
LISP = LISt Processing language
The language was first to use:
Developed in parallel with AI.
Time sharing
Lisp machines
Windows-like user interface
Two dialects of Lisp:
Common Lisp and Scheme