Giter VIP home page Giter VIP logo

wamcc's Introduction

                            WAMCC version 2.2
                            -----------------




I- Introduction
---------------

wamcc is a Prolog Compiler which translates Prolog to C via the WAM.
wamcc has a syntax conform to the proposed ISO standard.
wamcc offers the most usual built-in predicates (but not all), a
top-level, a Prolog debugger and a WAM debugger, dynamic and compiled
code, modules, global variables...).
wamcc is designed to be easily extended (e.g. clp(FD) is a constraint
logic language over Finite Domains designed on wamcc). 
From an efficiency point of view, wamcc is between SICStus "emulated"
and SICStus "native code" on Sparc machines (1.5 times faster than SICStus
emulated, 1.5 times slower than SICStus "native code").




II- Requirements
----------------

wamcc reguires the GNU C compiler (gcc) version 2.4.5 or higher and is
available for:

   - Sun Sparc under SunOS (4.3.1)
   - dec ultrix,
   - sony mips (R3000) 
   - PC i386/i486 under linux (many thanks to Bill Hogan).



III- Installation
-----------------

Create a directory

   % mkdir wamcc (or anything else)

select it as the current directory

   % cd wamcc

get the file wamcc2.2.tar.Z (ftp)
uncompress it

   % zcat wamcc2.2.tar.Z | tar xvf -


The installation procedure first installs wamcc locally in the path
give by ROOTPATH in Makefile (default: $(HOME)/wamcc), after it copies
the appropriate files in 3 directories given by 

   INCPATH: includes  for compilations  (default: $(ROOTPATH)/include)
   LIBPATH: libraries for compilations  (default: $(ROOTPATH)/lib) 
   BINPATH: executables (compiler...)   (default: $(ROOTPATH)/bin) 

Only these 3 directories are necessary after the installation.

So modifiy these vairiables if necessary in the Makefile according to
which can of installation you want (if you only want a local
installation for do not modify anything).

   ex: ROOTPATH=/usr/local/lib/wamcc

or

   ex: ROOTPATH=$(HOME)/prolog
       INCPATH=/usr/local/lib/include
       LIBPATH=/usr/local/lib
       INCPATH=/usr/local/bin



then install the compiler

   % make


add to your PATH environment variable (usually in ~/.login) the
directory corresponding to BINPATH if necessary (see Makefile)

   ex: setenv PATH "$PATH":/usr/local/lib/wamcc/bin


Note: the file src/Makefile nherites INCPATH and LIBPATH from the
      "root" Makefile. So if you run directly this Makefile do not
      forget to pass with the command line the appropriate paths
      (e.g. make INCPATH=...  LIBPATH=...). You can also modify in
      src/Makefile the default definitions of INCPATH and LIBPATH
      to be the same as in Makefile (the root Makefile).



Problems:

If the installation fails (e.g. with old versions of gcc) you can try
to clean the current installation (make clean) and to reinstall it
after modifying CFLAGS in the src/Makefile as follows:

   CFLAGS = -O2 -DNO_REGS


If you have a problem with a library when compiling a Prolog file
(message like "libwamcc.a: warning: table of contents for archive is
 out of date; rerun ranlib(1)")

use % ranlib LIBPATH/libwamcc.a
and % ranlib LIBPATH/libwamcc_pp.a

(where LIBPATH is defined in the Makefile)



IV- Documentation
-----------------

The directory doc contains a user's manual (LaTeX file).

wamc tries tries to be conform to the (future) ISO standard Prolog.
The draft ISO standard for Prolog is available by anonymous ftp from
ai.uga.edu:/pub/prolog.standard/ [128.192.12.9]. An unofficial summary
of the draft ISO Prolog standard is available from the same location
as isoprolog.tex or isoprolog.ps.Z.



V- Examples:
------------

If you have get the file prg.tar.Z you can expand it as follows:

   % cd wamcc
   % zcat prg.tar.Z | tar xvf -

This creates a directory Examples which containts some examples of
wamcc programs. 
To execute the programme xxx.pl use:

   % cd Examples
   % make -f xxx.mk
   % xxx

you can also interpret it under the top level (but it is longer):

   % wamcc
   ...
   | ?- [xxx].
   ...


If you have a stack overflow message, consult the documentation.




VI- Bugs
--------

Please report (detailled) bugs to [email protected]



VII- Ports
----------

wamcc can be easily ported on other machines. If you want to do this
do not hesitate to contact me ([email protected]).





wamcc's People

Contributors

thezerobit avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.