Newsgroups: comp.lang.prolog
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!agate!library.ucla.edu!news.bc.net!newsserver.sfu.ca!fornax!tarau
From: tarau@cs.sfu.ca (Paul Tarau)
Subject: ANNOUNCEMENT: BinProlog 3.45
Message-ID: <1995Jun5.125223.5629@cs.sfu.ca>
Keywords: Prolog compiler for Unix and 32 bit DOS/Windows
Organization: University of Moncton
Date: Mon, 5 Jun 1995 12:52:23 GMT
Lines: 175

BinProlog 3.45 is now available by ftp from

  clement.info.umoncton.ca  (139.103.16.2)

(on WWW at ftp://clement.info.umoncton.ca/BinProlog).

The full distribution is in the file: 
   
  BinProlog3.45.tar.gz

32 bit DOS and Windows 3.1 executables are available in file

  bp345.zip

BinProlog is a fairly complete and efficient Prolog compiler featuring
both C-emulated execution and generation of standalone applications by
translation to C. It is developed by Paul Tarau and based on his
compact and efficient BinWAM abstract machine, a specialization of the
WAM for the execution of continuation passing binary logic programs.

New features in version 3.45
      
    - robust 32 bit extended DOS and Windows 3.1 all-in-one-file 
      executables generated with Watcom C/C++ 10.0 compiler

    - multiple engines callable either from Prolog or C
      -- each engine has configurable heap-stack-trail sizes
         and delivers its answers on demand
      -- engines are reusable for execution of multiple goals
      -- resource overflows of an engine do not affect its caller
      -- alternative answers of an engine (i.e. produced by distinct
         OR-branches) are available to the caller on the same
         AND-branch
      -- engines share static code and the dynamic database

    - improved C-interface (see directory c_inter)
      -- the C-interface and BinProlog's C-translator are integrated
         to generate a standalone executable
      -- multiple Prolog engines can be used directly from C 
         (see file c_inter/c.c)

    - Hidden Accumulator Grammars (a form of Extended DCGs 
      based on backtrackable destructive assignment, requiring
      no preprocessing)

    - assert-like linear and intuitionistic assumptions
      (assumel/1 and assumei/1) scoped over the
      current continuation (easier to use than implications)

    - high level `Answer<=Producer=>Consumer' primitive allowing
      answers from Producer (running on its own engine) to be seen
      as linear assumptions by Consumer (see library/engines.pl). 
  
    - some new library files 
        engines.pl - utilities to play with multiple Prolog engines
        format.pl  - formatted output
        tree.pl    - tree printing
        media.pl   - basic multi-media + mail handling from Prolog
        objects.pl - dynamic objects
        bin2iso.pl - some ISO predicates
        monad.pl   - list operations, monadic style

    - some new demo programs
        mud.pl     - a toy mud-like simulation, with plain English
                     (with `no grammar' operator-precedence parsing), 
                     based on linear and intuitionistic assumptions
        lmoney.pl  - SEND+MORE=MONEY puzzle with linear implication
        lgraph.pl  - graph walking with linear implication
        color.pl   - fast graph-coloring program

Some other features:

  - dynamic code, intuitionistic and linear implication,
  - compilation to C, with compact and portable generated C-code
  - ability to fine-tune optimization for speed or size of
    the resulting C-code (directory pl2c)
  - very small (dynamically linked) standalone executables (6K) 
    for Solaris 2.x (directory dyn2pl)
  - improved (fileevent based) Tcl/Tk interface now running under
    tcl7.4b2 and tk4.0b2 (directory TCL)
  - help/1 detecting near-matching predicate definitions
  - examples of graph problems and constraint  solving with linear
    implication (progs/lgraph.pl, progs/lmap.pl progs/lconstr.pl)
  - new builtin change_arg/3 supporting efficient failure driven
    loops and higher-order Haskell-style operators (library/high.pl
    and library/matrix.pl)
  - logical and permanent global variables, 
  - backtrackable destructive assignment,
  - circular term unification, 
  - continuation manipulation primitives, 
  - a garbage-collected hashing based global dictionary for constant-time
    sparse arrays and graphs,
  - efficient higher-order programming builtins,
  - C-compatible (double) floating point operations, 
  - source-level modules

This distribution contains the Prolog source of the compiler and
executables for:

  - Sparc - Solaris 2.x, SunOS 4.x; 
  - DEC Alpha - 64 bit version; 
  - DEC MIPS; 
  - 68k - NeXT, SUN3;
  - IBM RS6000 ;
  - HP PA-RISC (two variants)
  - 386 or better PC - Linux
  - 386 or better PC - 32 bit Windows and 32 bit DOS (Watcom C/C++ based)
  - 386 or better PC - go32 DOS-extender ver. 1.10 based

Multi-BinProlog 3.45 is a multi-threaded Linda-style parallel extension
to BinProlog for Solaris 2.4 developed by Koen De Bosschere.  Koen's
ISO C-parser and C-writer with full C-sources are also available for
considerably faster I/O and stream-support.

Some research papers explaining the implementations, example programs,
benchmarks and a User's Guide can be found at the same site.

             BinProlog 3.45 minimal configuration:

Uncompressed versions of BinProlog 3.45 are also available on

  clement.info.umoncton.ca  (139.103.16.2)

in directory BinProlog/UNCOMPRESSED. If you do not want the full
distribution you can get only the binary for your particular
architecture/operating system from the directory:

  BinProlog/UNCOMPRESSED/bin

i.e. one of the following:
        
bp.68k.next.gz        bp.r6000.ibm.gz        
bp.parisc.hp.gz       bp.sparc.solaris.gz
bp.parisc.hp1.gz      bp.mips.dec.gz         
bp.68k.sun3.gz        bp.alpha.dec.gz
bp.o.68k.sun3.gz      bp.sparc.sunos.gz      
bp.pc.linux.gz        bp345.zip (32 bit Windows+DOS)

and BinProlog/UNCOMPRESSED/doc/art.ps (UserGuide).

After getting the files and uncompressing with "gunzip" type something
like

  bp.alpha.dec

to run BinProlog 3.45.

For DOS/Windows 3.1 executables only, uncompress (with pkunzip) the file:

  bp345.zip

Use of BinProlog executables and user-generated standalone applications
is FREE for research and other non-profit purposes.  BinProlog SUPPORT,
use of the software for industrial applications, licensing of full
C-sources with ability to use the full BinProlog system as an embedded
logic engine, need a separate agreement (see files BINARY.LICENSING and
SOURCE.LICENSING in the distribution).

Please send comments, bug reports and requests for industrial licensing
information to:

    binprolog@info.umoncton.ca.


Paul Tarau



----------------------------------------------------------------------
Paul Tarau, PhD.
Associate professor
Dept. of Computer Science  
University of Moncton 
Moncton N.B., CANADA E1A-3E9
e-mail: tarau@info.umoncton.ca
