Author(s): M.Hermenegildo.
Version: 1.11#222 (2004/5/24, 13:8:7 CEST)
Version of last change: 1.7#133 (2001/11/1, 16:34:6 CET)
This part guides you through some very basic first steps with Ciao on a Un*x-like system. It assumes that Ciao is already installed correctly on your Un*x system. If this is not the case, then follow the instructions in section Installing Ciao from the source distribution first.
We start with by describing the basics of using Ciao from a normal command shell such as sh/bash
, csh/tcsh
, etc. We strongly recommend reading also section An introduction to the Ciao emacs environment (Un*x) for the basics on using Ciao under
emacs
, which is a much simpler and much more powerful way of developing Ciao programs, and has the advantage of offering an almost identical environment under Un*x and Windows.
It is a good idea to start by performing some tests to check that Ciao is installed correctly on your system (these are the same tests that you are instructed to do during installation, so you can obviously skip them if you have done them already at that time). If any of these tests do not succeed either your environment variables are not set properly (see section Un*x user setup for how to fix this):
ciao
(or
ciaosh
) should start the typical Prolog top-level shell.
use_module(library(dec10_io))
--you should get back a prompt with no errors reported.
halt.
as usual, or ^D.
ciaoc
should produce the help message from the Ciao
standalone compiler.
ciao-shell
should produce a message saying that no code was found. This is a Ciao application which can be used to write
scripts written in Prolog, i.e., files which do not need any explicit compilation to be run.
Also, the following documentation-related actions should work:
info
program is installed, typing info
should produce a list of manuals which should include Ciao manual(s) in a separate area (you may need to log out and back in so that your shell variables are reinitialized for this to work).
netscape
) the directory or URL
corresponding to the DOCROOT
setting should show a series of Ciao-related manuals. Note that
style sheets should be activated for correct formatting of the manual.
man ciao
should produce a man page with some very basic general information on Ciao (and pointing to the on-line manuals).
DOCROOT
directory should contain the manual also in the other formats such as postscript
or pdf
which specially useful for printing. See section Printing manuals (Un*x) for instructions.
If the tests above have succeeded, the system is probably installed correctly and your environment variables have been set already. In that case you can skip to the next section.
Otherwise, if you have not already done so, make the following modifications in your startup scripts, so that these files are used (<LIBROOT>
must be replaced with the appropriate value, i.e., where the Ciao library is installed):
csh
,
tcsh
, ...), add to
~/.cshrc
:
if ( -e <LIBROOT>/ciao/DOTcshrc ) then source <LIBROOT>/ciao/DOTcshrc endif
Mac OS X
users should add (or modify) the
path
file in the directory ~/Library/init/tcsh
, adding the lines shown above. Note: while this is recognized by the terminal shell, and therefore by the text-mode Emacs which comes with Mac OS X, the Aqua native Emacs 21 does not recognize that initialization. It is thus necessary, at this moment, to set manually the Ciao shell (ciaosh) and Ciao library location by hand. This can be done from the Ciao menu within Emacs after a Ciao Prolog file has been loaded. We suppose that the reason is that Mac OS X does not actually consult the per-user initialization files on startup. It should also be possible to put the right initializations in the .emacs file using the setenv
function of Emacs-lisp, as in
(setenv "CIAOLIB" "<LIBROOT>/ciao")The same can be done for the rest of the variables initialized in
<LIBROOT>/ciao/DOTcshrc
sh
,
bash
, ...), add to
~/.profile
:
if [ -f <LIBROOT>/ciao/DOTprofile ]; then . <LIBROOT>/ciao/DOTprofile fiThis will set up things so that the Ciao executables are found and you can access the Ciao system manuals using the
info
command. Note that, depending on your shell, you may have to log out and back in for the changes to take effect.
emacs
(highly recommended) add this line to your
~/.emacs
file:
(load-file "<LIBROOT>/ciao/DOTemacs.el")
If after following these steps things do not work properly, then the installation was probably not completed properly and you may want to try reinstalling the system.
The basic methods for starting/exiting the top-level shell have been discussed above. If upon typing ciao
you get a "command not found" error or you get a longer message from Ciao before starting, it means that either Ciao was not installed correctly or you environment variables are not set up properly. Follow the instructions on the message printed by Ciao or refer to the installation instructions regarding user-setup for details.
The basic methods for accessing the manual on-line have also been discussed above. Use the table of contents and the indices of predicates, libraries, concepts, etc. to find what you are looking for.
Context-sensitive help is available within the
emacs
environment (see below).
Once the shell is started, you can compile and execute Prolog modules inside the interactive top-level shell in the standard way. E.g., type use_module(file).
, use_module(library(file)).
for library modules, ensure_loaded(file).
for files which are not modules, and use_package(file).
for library packages (these are syntactic/semantic packages that extend the Ciao Prolog language in many different ways). Note that the use of
compile/1
and
consult/1
is discouraged in Ciao.
For example, you may want to type use_package(iso)
to ensure Ciao has loaded all the ISO builtins (whether this is done by default or not depends on your
.ciaorc
file). Do not worry about any "module already in executable" messages --these are normal and simply mean that a certain module is already pre-loaded in the top-level shell. At this point, typing write(hello).
should work.
Note that some predicates that may be built-ins in other Prologs are available through libraries in Ciao. This facilitates making small executables.
To change the working directory to, say, the examples
directory in the Ciao root directory, first do:
?- use_module(library(system)).
(loading the
system
library makes a number of system-related predicates such as
cd/1
accessible) and then:
?- cd('$/examples').
(in Ciao the sequence $/
at the beginning of a path name is replaced by the path of the Ciao root directory).
For more information see section The interactive top-level shell.
Executables can be generated from the top-level shell (using
make_exec/2
) or using the standalone compiler (
ciaoc
). To be able to make an executable, the file should define the predicate
main/1
(or
main/0
), which will be called upon startup (see the corresponding manual section for details). In its simplest use, given a top-level foo.pl
file for an application, the compilation process produces an executable foo
, automatically detecting which other files used by foo.pl
need recompilation.
For example, within the
examples
directory, you can type:
?- make_exec(hw,_).
which should produce an executable. Typing hw
in a shell (or double-clicking on the icon from a graphical window) should execute it.
For more information see section The interactive top-level shell and section The stand-alone command-line compiler.
Ciao allows writing
Prolog scripts. These are files containing Prolog source but which get executed without having to explicitly compile them (in the same way as, e.g., .bat
files or programs in scripting languages). As an example, you can run the file
hw
in the
examples
directory of the Ciao distribution and look at the source with an editor. You can try changing the Hello world
message and running the program again (no need to recompile!).
As you can see, the file should define the predicate
main/1
(not
main/0
), which will be called upon startup. The two header lines are necessary in Un*x in. In Windows you can leave them in or you can take them out, but you need to rename the script to
hw.pls
. Leaving the lines in has the advantage that the script will also work in Un*x without any change.
For more information see section The script interpreter.
The Ciao toplevel can be made to execute upon startup a number of commands (such as, e.g., loading certain files or setting certain Prolog flags) contained in an initialization file. This file should be called
.ciaorc
and placed in your home directory (e.g., ~
, the same in which the
.emacs
file is put). You may need to set the environment variable HOME
to the path of this directory for the Ciao toplevel shell to be able to locate this file on startup.
As mentioned before, the manual is available in several formats in the reference
directory within the doc
directory in the Ciao distribution, including postscript
or pdf
, which are specially useful for printing. These files are also available in the DOCROOT
directory specified during installation. Printing can be done using an application such as
ghostview
(freely available from http://www.cs.wisc.edu/~ghost/index.html) or
acrobat reader
(http://www.adobe.com, only pdf
).
While it is easy to use Ciao with any editor of your choice, using it within the
emacs
editor/program development system is highly recommended: Ciao includes an
emacs
mode which provides a very complete
application development environment which greatly simplifies many program development tasks. See @xref{Using Ciao inside GNU emacs} for details on the capabilities of
ciao
/
emacs
combination.
If the (freely available)
emacs
editor/environment is not installed in your system, we highly recommend that you also install it at this point (there are instructions for where to find
emacs
and how to install it in the Ciao installation instructions). After having done this you can try for example the following things:
Help->Manuals->Browse Manuals with Info
) should open a list of manuals in info format in which the Ciao manual(s) should appear.
.pl
or .pls
ending, using ^X^Ffilename
(or using the menus) the code should appear highlighted according to syntax (e.g., comments in red), and Ciao/Prolog
menus should appear in the menu bar on top of the
emacs
window.
Ciao/Prolog
menu (or typing ^C l) should start in another emacs buffer the Ciao toplevel shell and load the file. You should now be able to switch the the toplevel shell and make queries from within
emacs
.
emacs
it is very convenient to swap the locations of the (normally not very useful) Caps Lock key and the (very useful in
emacs
) Ctrl key on the keyboard. How to do this is explained in the
emacs
frequently asked questions FAQs (see the
emacs
download instructions for their location).
(if these things do not work the system or emacs may not be installed properly).
Ciao/Prolog
menu, as well as compile individual files, or generate active modules.
Ciao/Prolog
menu (or typing ^C d) and then issuing a query should start the source-level debugger and move a marker on the code in a window while execution is stepped through in the window running the Ciao top level.
main/1
into a script from the Ciao/Prolog menu or by typing ^C I S.
.pl
files.
We encourage you once more to read @xref{Using Ciao inside GNU emacs} to discover the many other functionalities of this environment.
You may want to read section Beyond installation for instructions on how to sign up on the Ciao user's mailing list, receive announcements regarding new versions, download new versions, report bugs, etc.
Go to the first, previous, next, last section, table of contents.