savannah-register-public
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Savannah-register-public] [task #6966] Submission of Emulated Flat Conc


From: William Silverman
Subject: [Savannah-register-public] [task #6966] Submission of Emulated Flat Concurrent Prolog
Date: Fri, 01 Jun 2007 08:07:34 +0000
User-agent: Opera/9.02 (Windows NT 5.1; U; en)

URL:
  <http://savannah.nongnu.org/task/?6966>

                 Summary: Submission of Emulated Flat Concurrent Prolog
                 Project: Savannah Administration
            Submitted by: zevkaspi
            Submitted on: Friday 06/01/2007 at 08:07
         Should Start On: Friday 06/01/2007 at 00:00
   Should be Finished on: Monday 06/11/2007 at 00:00
                Category: Project Approval
                Priority: 5 - Normal
                  Status: None
                 Privacy: Public
        Percent Complete: 0%
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
                  Effort: 0.00

    _______________________________________________________

Details:

A new project has been registered at Savannah 
This project account will remain inactive until a site admin approves or
discards the registration.


= Registration Administration =

While this item will be useful to track the registration process, *approving
or discarding the registration must be done using the specific Group
Administration
<https://savannah.nongnu.org/siteadmin/groupedit.php?group_id=9318> page*,
accessible only to site administrators, effectively *logged as site
administrators* (superuser):

* Group Administration
<https://savannah.nongnu.org/siteadmin/groupedit.php?group_id=9318>


= Registration Details =

* Name: *Emulated Flat Concurrent Prolog*
* System Name:  *efcp*
* Type: non-GNU software & documentation
* License: GNU General Public License V2 or later

----

==== Description: ====
EFCP is an implementation of the language Flat Concurrent Prolog (FCP).  The
system consists of an emulator of the language, and Logix, a system written
entirely in extended FCP (see 
http://www.weizmann.ac.il/home/biospi/LogixDocs/logix.ps ). 
For an executable version, download 
http://www.weizmann.ac.il/home/biospi/aspic-release.tar.gz .

The Emulator operates on a virtual machine, originally a Warren Abstract
Machine (see Houri A. and Shapiro E. (1989) A sequential abstract machine for
Flat Concurrent Prolog, J. Logic Programming 7, 85–123) .  Currently it
operates on a more complex instruction set (see S. Kliger. Compiling
Concurrent Logic Programming Languages. PhD thesis, The Weizmann Institute of
Science, Rehovot, October 1992).

The Emulator operates on Variables, Constants (integer, real, string, nil),
Compound objects (list, tuple, vector), Modules, Procedures and Instructions
(see http://www.weizmann.ac.il/~biospi/supplement.mss , Terminology,
Appendices). Modules are collections of Procedures.  Procedures are
referenced syntactically by extended Horn Clauses. The primary Emulation loop
selects a Procedure which is ready to be reduced.  Each clause of the
procedure consists of a guard and a body.  The guard is a sequential list of
predicates, each of which is represented by a sequential list of
Instructions.  The clauses are examined (sequentially), resulting in success,
suspension or failure.  A clause succeeds if each of its guard predicates
succeed.  In case of success, changes due to the guard are committed, and the
the procedure calls are queued for reduction.  A clause suspends if some guard
predicate cannot be reduced due to an as yet uninstantiated variable; changes
due to the guard are rescinded.  A Procedure suspends, if no clause succeeds,
but some clause suspends.  A suspended Procedure is held until some variable
on which it depends changes status (e.g. it is instantiated).  A clause fails
if some predicate in the guard fails; changes due to the guard are rescinded. 
A Procedure fails if every clause fails.  In case a Procedure fails, a message
containing the procedure call is queued to a failure list.

The Emulator is extended to include support for non-logical functions (e.g.
file, interface, math, timer, tty) – see the corresponding C programs. 
Extensions have been added to support instructions which involve complex
operations (e.g. ctl, freeze_term).  Extensions may be added to accelerate
operations which might be performed less efficiently by Procedures or may
require synchronization (e.g. concatenate, spicomm).  The doors extension
supports internet communication.

The Logix system provides a kernel operating system and various support
procedures, such as file access, an interactive shell, parsers, translators,
compilers, debuggers, formatters, etc.  It consists of a hierarchy of
directories containing modules (sets of Procedures) of the system.  A user is
logically attached as a sub-hierarchy of the system directory.  The user may
call his own or Logix Procedures in other modules, using the syntax <module
name>#<procedure call> (see http://www.weizmann.ac.il/~biospi/supplement.mss
, Services, System Service, Other Utilities).  The user at a console
interacts with his Procedures and with the system via a tty interface, which
is normally served by a shell.

In addition to the basic FCP language, various extensions of the language,
including colon, compound, implicit extend the syntax and simplify notation
(see http://www.weizmann.ac.il/~biospi/supplement.mss , Language).  The
language syntax may be used to define new operators or to redefine existing
operator syntax and/or priority.  The language evaluate may be used to add
syntactic macros to any of the languages.   Another kind of extension extends
any of the languages to include new functionality (e.g. Distributed Flat
Concurrent Prolog, dfcp , Stochastic Pi Calculus, spifcp ) – these
languages usually employ an emulator extension.  Language extensions are
accomplished by module transformation – multiple transformations may be
applied to a module (e.g. [evaluate, compound, colon] ).



==== Other Comments: ====
Some perl scripts used for the spifcp extensionare available in
http://www.weizmann.ac.il/~biospi/bin .  A small executable version of the
system is in the the e-mail'ed Logix.tar.gz .  Please supply an e-mail
address for me to send Logix.tar.gz, Documentation.tar.gz, Source.tar.gz .






    _______________________________________________________

Reply to this item at:

  <http://savannah.nongnu.org/task/?6966>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.nongnu.org/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]