———————

bw.pl

> restart.

> put_on2(c,a).

> listing(on/2), list(move/3).

> put_on3(c, a, [on(a,b),on(b,c), on(c,table)],S).

> start(X), put_on3(c,a,X,S).

———————

# Logic Programming

- Not really a general purpose technique
- difficult to do the things easier in other programming paradigms

- Some things are easier:
- implications
- backtracking is built in
- pattern matching -> fining possible solutions

- Things there are hard:
- strings manipulations
- not much support for graphics, etc.
- Math (other than the most simple stuff)

- In general, think of logic programming as an option for when it is appropriate
- Bridge between Prolog and another languages
- Non-Prolog tools
- inference engines
- use implications to prove facts
- very similar in effect to prolog

- available for other kinds of logic => Bayesian Logic

- inference engines
- Mix

# Domain Specific Languages

We’ve been looking at general purpose programming languages

- designed to be used for many problems
- for some, almost any conceivable programming problem

- implies Turing completeness
- equivalent to a Turing machine
- in theory, can solve any problems that another Turing -complicate language can

Domain specific languages are designed to solve one kind of problem very well.

- not necessarily programming language in the traditional sense
- output can be a technical design, graphical objects, data, etc.
- Can be very useful when you have a problem that fits