For more informations ProLOGO Home Page
ProLOGO is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License.
ProLOGO needs swi-prolog and XPCE libraries. These packages ara available for Linux and Windows and can be downloaded at swi-prolog homepage
For Debian-users:
apt-get install swi-prolog swi-prolog-doc swi-prolog-xpce
ProLOGO is distributed as a Prolog source, in two versions:
The first version comes with all the images of the turtle (359 images for 359 different headings)
The second version ("reduced") provides a Perl Script that creates the images. To make it work you have to install the program mogrify (ImageMagick). You can create all the images running the commands
./ruota.pl turtle.gif; ./ruota.pl pinguino.gif
At the prompt of prolog compile the program (by the command [logo].).
In Linux you have to start prolog by the command xpce which loads the XPCE libraries.
$ xpce
XPCE 6.0.1, February 2002 for i386-linux and X11R6
Copyright (C) 1993-2002 University of Amsterdam.
XPCE comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to redistribute it under certain conditions.
The host-language is SWI-Prolog version 5.0.0
For HELP on prolog, please type help. or apropos(topic).
on xpce, please type manpce.
?- [logo].
Warning: (/home/lor/prolog/logo/logo.pl:37):
Singleton variables: [C]
Warning: (/home/lor/prolog/logo/logo.pl:38):
Singleton variables: [A, B]
Warning: (/home/lor/prolog/logo/logo.pl:300):
Singleton variables: [L]
Warning: (/home/lor/prolog/logo/logo.pl:301):
Singleton variables: [Head]
Warning: (/home/lor/prolog/logo/logo.pl:302):
Singleton variables: [Nome]
Warning: (/home/lor/prolog/logo/logo.pl:306):
Singleton variables: [OldValue]
Warning: (/home/lor/prolog/logo/logo.pl:318):
Singleton variables: [Env]
Warning: (/home/lor/prolog/logo/logo.pl:345):
Singleton variables: [Env]
Warning: (/home/lor/prolog/logo/logo.pl:350):
Singleton variables: [X, F]
Warning: (/home/lor/prolog/logo/logo.pl:356):
Singleton variables: [X, Parziale]
Warning: (/home/lor/prolog/logo/logo.pl:359):
Singleton variables: [X, Parziale]
Warning: (/home/lor/prolog/logo/logo.pl:360):
Singleton variables: [Env]
Warning: (/home/lor/prolog/logo/logo.pl:368):
Singleton variables: [Env]
Warning: (/home/lor/prolog/logo/logo.pl:369):
Singleton variables: [Env]
Warning: (/home/lor/prolog/logo/logo.pl:372):
Singleton variables: [Env]
Warning: (/home/lor/prolog/logo/logo.pl:382):
Singleton variables: [Env]
Warning: (/home/lor/prolog/logo/logo.pl:383):
Singleton variables: [Env]
Warning: (/home/lor/prolog/logo/logo.pl:384):
Singleton variables: [Env]
Warning: (/home/lor/prolog/logo/logo.pl:400):
Singleton variables: [Env]
Warning: (/home/lor/prolog/logo/logo.pl:405):
Singleton variables: [Env]
Warning: (/home/lor/prolog/logo/logo.pl:406):
Singleton variables: [Env]
Warning: (/home/lor/prolog/logo/logo.pl:423):
Singleton variables: [Env]
Warning: (/home/lor/prolog/logo/logo.pl:429):
Singleton variables: [T]
Warning: (/home/lor/prolog/logo/logo.pl:430):
Singleton variables: [F]
Warning: (/home/lor/prolog/logo/logo.pl:445):
Singleton variables: [Env]
Warning: (/home/lor/prolog/logo/logo.pl:446):
Singleton variables: [Env]
Warning: (/home/lor/prolog/logo/logo.pl:456):
Singleton variables: [Nome, X]
Warning: (/home/lor/prolog/logo/logo.pl:457):
Singleton variables: [Nome, X]
Warning: (/home/lor/prolog/logo/logo.pl:522):
Clauses of instr/4 are not together in the source-file
Warning: (/home/lor/prolog/logo/logo.pl:536):
Singleton variables: [Env]
Warning: (/home/lor/prolog/logo/logo.pl:543):
Singleton variables: [I]
Warning: (/home/lor/prolog/logo/logo.pl:550):
Singleton variables: [Lcs]
Warning: (/home/lor/prolog/logo/logo.pl:550):
Clauses of instr/4 are not together in the source-file
Warning: (/home/lor/prolog/logo/logo.pl:563):
Singleton variables: [L5]
Warning: (/home/lor/prolog/logo/logo.pl:612):
Singleton variables: [Angle]
Warning: (/home/lor/prolog/logo/logo.pl:627):
Singleton variables: [Angle]
Warning: (/home/lor/prolog/logo/logo.pl:661):
Singleton variables: [X, Y, Angle]
Warning: (/home/lor/prolog/logo/logo.pl:663):
Singleton variables: [File]
Warning: (/home/lor/prolog/logo/logo.pl:686):
Singleton variables: [H]
Warning: (/home/lor/prolog/logo/logo.pl:713):
Singleton variables: [Answer]
Warning: (/home/lor/prolog/logo/logo.pl:723):
Singleton variables: [X]
Warning: (/home/lor/prolog/logo/logo.pl:737):
Singleton variables: [X]
Warning: (/home/lor/prolog/logo/logo.pl:757):
Singleton variables: [Turtle]
Warning: (/home/lor/prolog/logo/logo.pl:796):
Singleton variables: [X]
Warning: (/home/lor/prolog/logo/logo.pl:801):
Singleton variables: [X]
% logo compiled 0.03 sec, 78,084 bytes
Yes
?- logo.
0 black 1 blue 2 green 3 cyan 4 red 5 magenta 6 yellow 7 white |
Data types are integers, words, lists and booleans.
Allowed operators: +, -, *, / (integer divisions), % (remainder)
These are integer expressions as well:
Lists are written into square parenthesys.
Expressions inside lists are not valutated. For example [1+2] is a list of three elements, 1, + and 2 and is not equal to [ 3 ]
You can use the operators push and concat to insert elements into lists and to append two lists.
In LOGO a word is a string without spaces
A word is written as a string beginning with ". Ex: "string
It is possible to use first, last and butfirst on the words.
A boolean expression can be true or false or the use of the operators =,<,<=,>,>=,!= on integer expressions, or empty <list>. Booleans can be connected by and, or, not