Symbolic AI www.cems.uwe.ac.uk/~ryang/prolog/top.html weeks of even numbers Lecture Monday 13:00-14:00 (2Q50) Lab Sessions (five groups, all in 2Q52) Monday.

Slides:



Advertisements
Similar presentations
Predicate Logic Colin Campbell. A Formal Language Predicate Logic provides a way to formalize natural language so that ambiguity is removed. Mathematical.
Advertisements

First Order Logic Logic is a mathematical attempt to formalize the way we think. First-order predicate calculus was created in an attempt to mechanize.
Getting started with Prolog
Logic Programming Lecture 1: Course orientation; Getting started with Prolog.
F28PL1 Programming Languages Greg Michaelson/Jamie Gabbay Lecture 0: Overview.
Computational language: week 10 Lexical Knowledge Representation concluded Syntax-based computational language Sentence structure: syntax Context free.
Computational Models The exam. Models of computation. –The Turing machine. –The Von Neumann machine. –The calculus. –The predicate calculus. Turing.
Introduction to Programming in C++ John Galletly.
06/01/101 Functional Programming GC16 / 3011 Chris Clack.
Chapter 8 High-Level Programming Languages. 8-2 Chapter Goals Describe the translation process and distinguish between assembly, compilation, interpretation,
1 Introduction to Prolog References: – – Bratko, I., Prolog Programming.
Knowledge Representation
Knowledge Representation Methods
Comp 205: Comparative Programming Languages Declarative Programming Languages Logic Programming Horn-Clause Logic Prolog Lecture notes, exercises, etc.,
Introduction to Computers and Programming Midterm Review Sana Odeh.
Functional Design and Programming Lecture 1: Functional modeling, design and programming.
1 ) Definition 2) Note on structured and modular programming, and information hiding 3) Example imperative languages 4) Features of imperative languages.
1 CA 208 Logic Logic Prof. Josef van Genabith Textbooks:  The Essence of Logic, John Kelly, Prentice Hall, 1997  Prolog Programming, Third Edition, Ivan.
High-Level Programming Languages
Programming Languages Structure
Symbolic AI Lecture Every Monday 12:30-13:30 Lab Session (two groups) Tuesday 16:30 3P30 Tuesday 17:30 3P30.
Chapter 8 High-Level Programming Languages Nell Dale John Lewis.
Formal Aspects of Computer Science – Week 12 RECAP Lee McCluskey, room 2/07
CSC 111 Course orientation
School of Computing and Engineering, University of Huddersfield Formal Aspects of Computer Science - CIA 2326 Lee McCluskey, room 2/07
Programming Paradigms Imperative programming Functional programming Logic programming Event-driven programming Object-oriented programming A programming.
Chapter 8 High-Level Programming Languages (modified by Erin Chambers)
Formal Models of Computation Part II The Logic Model
Evolution of Programming Languages Generations of PLs.
LANGUAGE TRANSLATORS: WEEK 24 TRANSLATION TO ‘INTERMEDIATE’ CODE (overview) Labs this week: Tutorial Exercises on Code Generation.
Programming Languages –14 David Watt (Glasgow) Steven Wong (Singapore) Moodle : Computing Science → Level 3 → Programming Languages 3 © 2012 David.
Programming Lifecycle
Chapter 8 High-Level Programming Languages. 8-2 Chapter Goals Describe the translation process and distinguish between assembly, compilation, interpretation,
Artificial Intelligence Programming in Prolog Lecture 1: An Introduction 23/09/04.
Chapter 6 Programming Languages © 2007 Pearson Addison-Wesley. All rights reserved.
Introduction To PROLOG World view of imperative languages. World view of relational languages. A PROLOG program. Running a PROLOG program. A PROLOG.
Chapter 6 Programming Languages (1) Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Introduction to computers and programming Instructor: Alex Iskold.
Programming Languages Meeting 14 December 9/10, 2014.
Fortran Fortran – Formula Translation –Developed by John Backus (IBM) in the mid 1950s. –It was a team effort and the design goal was to produce a translation.
CS4026 Formal Models of Computation Part II The Logic Model Lecture 2 – Prolog: History and Introduction.
CSE Winter 2008 Introduction to Program Verification January 31 proofs through simplification.
CS6133 Software Specification and Verification
Logical and Functional Programming
Introduction to Compilers Jianlin Feng School of Software SUN YAT-SEN UNIVERSITY.
MB: 26 Feb 2001CS Lecture 11 Introduction Reading: Read Chapter 1 of Bratko Programming in Logic: Prolog.
C H A P T E R T H R E E Type Systems and Semantics Programming Languages – Principles and Paradigms by Allen Tucker, Robert Noonan.
In The Name Of Allah Lab 03 1Tahani Aldweesh. objectives Searching for the solution’s. Declaration. Query. Comments. Prolog Concepts. Unification. Disjunction.
Programming Language Concepts (CIS 635) Elsa L Gunter 4303 GITC NJIT,
From Conventional Languages to Prolog –What we can do in conventional languages but not in Prolog –What we can do in Prolog but not in conventional languages.
Review A program is… a set of instructions that tell a computer what to do. Programs can also be called… software. Hardware refers to… the physical components.
서울대한양대 ( 안 산 ) 충남대 1년1년 컴퓨터기초 (C) 컴퓨터프로그래밍 (C, Java) 컴퓨터프로그래밍 (C) 2. 봄 프로그래밍 원리 (Scheme, ML) Structure & Interpretation of Computer Programs 프로그래밍 방법론.
Chapter 1. Introduction.
Compilers Principles, Techniques, & Tools Taught by Jing Zhang
Zuse’s Plankalkül – 1945 Never implemented Problems Zuse Solved
Why study programming languages?
PROGRAMMING PARADIGMS
Intro to CSC270 Survey of Programming Languages
Programming Languages
Unit-1 Introduction to Java
CSCE 330 Programming Language Structures Ch.2: Syntax and Semantics
Programming Languages 2nd edition Tucker and Noonan
Principles of Programming Languages
Programming Paradigms and Languages
Chapter 6: Programming Languages
PROGRAMMING PARADIGMS
Chapter 4 Action Routines.
Principles of Programming Languages
Compilers Principles, Techniques, & Tools Taught by Jing Zhang
Programming Paradigms and Languages
Presentation transcript:

Symbolic AI weeks of even numbers Lecture Monday 13:00-14:00 (2Q50) Lab Sessions (five groups, all in 2Q52) Monday 14:00, 15:00 Tuesday 11:00, 15:00, 16:00

Assessment Method Coursework 40% (Coding in Prolog) Examination 60% (4-5 questions in AI 1 question in Prolog) How to Pass the coursework Don’t miss lectures, and always finish practical work on time.

A Preliminary Plan for this Term Lecture 1: Introduction, Logic Formulas, Logical Inferences Lecture 2: Syntax and Semantics of Prolog Lecture 3: Unification, Proof Tree Lecture 4: Lists, Recursions Lecture 5: More on Lists, Some Prolog Built-ins Lecture 6: A Case Study Lecture 7: Modifying Programs Dynamically/Controlling Backtracking Lecture 8: Natural Language processing Lecture 9: Input and Output Closed World Assumption Lecture 11: Comparing with Others Languages Lecture 12: Revision (out of date, be aware of changing)

Books Prolog Programming by Paul BrnaProlog ProgrammingPaul Brna (a free copy available for everyone) Logic Programming and Prolog by Ulf Nilsson and Jan MatuszynskiLogic Programming and Prolog Prolog – Programming for AI by Ivan Bratko

Programming Languages Imperative  Procedure oriented C, Fortran  Object oriented C++, Java Declarative  Functional langauge Haskell  Logic language Prolog (PROgramming in LOGic)

Background - Logic Logic: a tool for reasoning Logical formulas: a formal way to describe things Logical Operators: ‘and’, ‘or’, ‘not’, ‘imply’

Logical Formulas Examples Mary loves Tom => Every mother loves her children => loves(mary, tom) VX VY(loves(X,Y) <- mother_of(X,Y))

Logical Formulas (more examples) using: boy_names(Name, Year, Pos) The most popular boy’s name in 1800 is John. The second popular boy’s name in 1800 is Thomas. A popular boy’s name within a year means that the name is listed in the top 50 list. ( :- means <- ) boy_names( john, 1800, 1). boy_names( thomas, 1800, 2). pop_boy_names(X,Year) :- boy_names(X,Year,P), P =< 50.

A Famous `Equation` Algorithm = Logic + control (by Rob Kowalski ) Example: What is the length of a list? Find who is Fred’s grandparents

Imperative Languages Prolog programmer has to express control sequence explicitly control is built into the system data and program have different structure data and program have same structure program can't change itself as it runs program can be changed as it runs variable= a memory store / destructive assignment variable= logical variable single assignment