Facile Antigua Release

Bent.Thomsen@ecrc.de (Bent Thomsen)
Thu, 28 Jul 1994 11:39:02 GMT

          From comp.compilers

Related articles
Facile Antigua Release Bent.Thomsen@ecrc.de (1994-07-28)
| List of all articles for this month |

Newsgroups: comp.compilers
From: Bent.Thomsen@ecrc.de (Bent Thomsen)
Keywords: ML, functional, available, parallel, tools
Organization: European Computer-Industry Research Centre GmbH.
Date: Thu, 28 Jul 1994 11:39:02 GMT

|| ||
|| Facile ||
|| ||
|| Antigua Release -- July, 1994 ||
|| ||

The Facile group:

Pierre-Yves Chevalier (pitch@ecrc.de)
Alessandro Giacalone (team-leader) (ag@ecrc.de)
Fritz Knabe (knabe@ecrc.de)
Andre Kramer (akramer@ecrc.de)
Tsung-Min Kuo (kuo@ecrc.de)
Lone Leth (lone@ecrc.de)
Sanjiva Prasad (sanjiva@ecrc.de)
Jean-Pierre Talpin (jp@ecrc.de)
Bent Thomsen (team-leader) (bt@ecrc.de)

at the European Computer-Industry Research Centre is pleased to announce
the first release of the Facile distributed programming environment --
Facile Antigua Release.

1. What is Facile

Facile is a high-level, higher-order programming language for systems that
require a combination of complex data manipulation and concurrent and
distributed computing. It combines Standard ML (SML), with a model of
higher-order concurrent processes based on CCS. Facile is well-suited for
running on loosely connected, physically distributed systems with
distributed memory. It is possible to execute Facile programs on both
local area networks (LANs) and wide area networks (WANs).

The basic computational model of Facile consists of one or more nodes or
virtual processors, on each of which there are zero or more processes
(light weight threads). Processes execute by evaluating expressions, and
they can communicate values between each other by synchronising over typed
channels. All types of values, including user defined types, channels,
functions and process scripts, are transmissible.

Facile inherits several good features from Standard ML, such as:

      - functions as first-class values, including recursive functions
            and higher-order functions;
      - a strong but flexible type system, supporting polymorphism and
            polymorphic type inference, that frees the programmer from having
            to explicitly declare types of expressions;
      - a rich set of types, including function types, records, etc., and
            user-defined datatypes and abstract data types, which may be
            inductively defined;
      - pattern-matching to define functions on data types;
      - a lexical scoping discipline on identifiers;
      - elegant exception handling features;
      - a sophisticated module system, supporting the modular construction
            of programs and separate compilation.

Facile enriches Standard ML with primitives for distribution, concurrency
and communication over typed channels. The additional data types provided
in the language include node identifiers, process scripts and
communication channels. All of these are first-class values that can be
manipulated in an applicative style and, in particular, be communicated.
New nodes and channels can be created dynamically and processes executing
a given script can be spawned dynamically on a given node.

Special care has been given to developing the formal foundations of the
Facile model. The basic philosophy of the Facile project has been to
develop a language comprising a basic set of primitive constructs that are
intuitive for programming, have a clear semantic formalisation and have a
quite efficient implementation. These primitives are powerful enough for
defining a variety of abstractions commonly employed in concurrent and
distributed computing.

For more details, see the reading list in section 8.

Members of the Facile group at ECRC are currently developing significant
applications based on the Facile Antigua Release. The Facile group
intends to release these applications as they emerge. In the near future
we expect to release the Calumet system. Calumet is a groupware for
tele-conferencing between a speaker and remote attendees over the
internet, either on local-area networks or in a wide-area setting.
Presentations in Calumet are based on colour slides consisting of
LaTeX-like formatted text and pictures in TIFF format, graphical dynamic
annotations and phone-quality voice.

2. History of the Facile project

Facile originated at SUNY Stony Brook in the late eighties. The initial
work focused on the formal foundations of the functional/concurrent
language integration and on abstract implementation models. The
operational semantics of the core language is formalised in the structural
style using labeled transition systems. Based on the operational
semantics, a notion of equivalence of programs with respect to an
interface of observation was proposed by Giacalone, Mishra and Prasad
using an extension of the bisimulation technique. This work was
influenced by Thomsen's research on the semantics of higher-order
processes and research on mobile processes by Engberg and Nielsen, Leth
and Milner, Parrow and Walker.

>From the start of the Facile project at ECRC in 1991 the main thrust has
been on distributed programming --- developing an efficient distributed
implementation and investigating semantic issues of distribution.

The implementation strategy has been to modify an existing language
platform rather than developing a full implementation from scratch.
Different platforms were considered. Standard ML was selected for various
reasons. It represented the closest fit with the functional component of
Facile, and furthermore brought a sophisticated polymorphic type inference
system that supports user-defined and abstract data types. The choice was
also motivated by the availability of the SML system developed by AT&T
Bell Laboratories, commonly referred to as SML/NJ. SML/NJ provides one of
the most advanced, robust and efficient implementations of SML and is
freely available.

The Facile Antigua Release, which modifies the Standard ML of New Jersey
implementation (SML/NJ), is the first released implementation of the
language. The release manifests the efforts of the Facile team at ECRC in
developing Facile from the state of a calculus or a toy language to a
full-fledged distributed programming language.

3. Copyright notice

Facile Antigua Release, is Copyright 1994 by ECRC GmbH, Munich, Germany.

The Facile Antigua Release software is built by utilising parts of, and
by modifying and extending the Standard ML of New Jersey software

The SML/NJ software is subject to the following copyright notice,
license and disclaimer:

        * *
        * *
        * Copyright 1989, 1990, 1991, 1992, 1993 by AT&T Bell Laboratories *
        * *
        * Permission to use, copy, modify, and distribute this software and *
        * its documentation for any purpose and without fee is hereby granted,*
        * provided that the above copyright notice appear in all copies and *
        * that both the copyright notice and this permission notice and *
        * warranty disclaimer appear in supporting documentation, and that *
        * the name of AT&T Bell Laboratories or any AT&T entity not be used *
        * in advertising or publicity pertaining to distribution of the *
        * software without specific, written prior permission. *
        * *
        * AT&T disclaims all warranties with regard to this software, *
        * including all implied warranties of merchantability and fitness. *
        * In no event shall AT&T be liable for any special, indirect or *
        * consequential damages or any damages whatsoever resulting from *
        * loss of use, data or profits, whether in an action of contract, *
        * negligence or other tortious action, arising out of or in *
        * connection with the use or performance of this software. *
        * *

4. Facile, Antigua Release -- LICENSE

        The Facile Antigua Release Software is subject to written license

5. Facile, Antigua Release -- WARRANTY DISCLAIMER

        Neither the European Computer-Industry Research Centre GmbH
        (Forschungszentrum) nor its shareholders Bull, ICL, Siemens, nor the
        individuals responsible for the development and/or maintenance of
        this software accept any liability of any kind in releasing the

6. Facile, Antigua Release -- INFORMATION REQUEST

        ECRC would greatly appreciate being informed about which individuals
        and/or organizations have acquired the Facile software, about how
        Facile is used and about comments and bug reports. This information
        will also be useful for announcing future releases and other
        information. Finally, the Facile group at ECRC may be interested in
        direct cooperation on interesting applications.

        -> Send e-mail to: facile@ecrc.de

        -> Send paper mail to: Facile Project -- Antigua
Arabellastrasse 17
81925 Munich, Germany

7. How to obtain the Facile Antigua Release

As mentioned above the Facile Antigua Release is subject to a written
license agreement. The software is free of charge for research and
educational purposes. To obtain the Facile Antigua Release ftp a copy of
the license agreement from ftp.ecrc.de ( Log in as "anonymous"
and copy the file "/pub/magic/license.ps.Z". Return two signed copies and
an email address to: Facile Project -- Antigua ECRC GmbH Arabellastrasse
17 81925 Munich, Germany When we receive the signed license agreements we
will instruct you how to obtain the software via ftp.

8. Reading more about Facile

If you are interested in learning more about the Facile Antigua Release
we suggest you start by reading:

Thomsen, B., Leth, L., Prasad, S., Kuo, T.-S., Kramer, A., Knabe, F.,
Giacalone, A.:
"Facile Antigua Release -- Programming Guide",
Technical report ECRC-93-20, 1993.

This report and other ECRC technical reports can be obtained via ftp
from ftp.ecrc.de ( Log in as "anonymous". The report
ECRC-93-20 is stored under the directory "pub/ECRC_tech_reports/reports"
as ECRC-93.20.ps.Z. There is a README file (in directory
"pub/ECRC_tech_reports") containing some further information.

Further readings include:

Published papers:

Giacalone, A., Mishra, P., and Prasad, S.:
"Facile: A Symmetric Integration of Concurrent and Functional
in Proc. of 1989 TAPSOFT Conference,
LNCS 352, Springer-Verlag, 1989.

Giacalone, A., Mishra, P., and Prasad, S.:
"Facile: A Symmetric Integration of Concurrent and Functional
International Journal of Parallel Programming, Vol. 18, No. 2, 1989.

Prasad, S., Giacalone, A., Mishra, P.:
"Operational and Algebraic Semantics for Facile: A Symmetric
Integration of Functional and Concurrent Programming",
Proceedings of the 1990 International Colloquium on Automata
Languages and Programming,
LNCS 443, Springer-Verlag, 1990.

Glauert, J.:
"Asynchronous Mobile Processes and Graph Rewriting",
Proceedings of the PARLE'92 Conference,
LNCS 605, Springer-Verlag, 1992.

Knabe, F.:
"A Distributed Protocol for Channel-Based Communication with Choice",
Proceedings of the PARLE'92 Conference, Poster presentations,
LNCS 605, Springer-Verlag, 1992.

Knabe, F.:
"A Distributed Protocol for Channel-Based Communication with Choice",
in journal of "Computers and Artificial Intelligence",
1993, volume 12, number 5, pp. 475--490.

Glauert, J., Leth, L., Thomsen, B.:
"A New Process Model for Functions",
Chapter 18 in Term Graph Rewriting: Theory and Practice,
eds. M. R. Sleep, M. J. Plasmeijer and M. C. van Eekelen,
John Wiley & Sons Ltd, 1992.
Preliminary version in Proceedings of SEMAGRAPH, 1991

Glauert, J., Leth, L., Thomsen, B.:
"A New Process Model for Functions",
Proceedings of SEMAGRAPH, 1991.

Thomsen, B., Leth, L., Giacalone, A.:
"Some Issues in the Semantics of Facile Distributed Programming",
Proceedings of the 1992 REX Workshop on
"Semantics: Foundations and Applications",
LNCS 666, Springer-Verlag, 1992.

ECRC technical reports:

Leth, L., Thomsen, B.:
"Some Facile Chemistry",
Technical report ECRC-92-14, 1992.

Knabe, F.:
"A Distributed Protocol for Channel-Based Communication with Choice",
Technical report ECRC-92-16, 1992.

Thomsen, B., Leth, L., Giacalone, A.:
"Some Issues in the Semantics of Facile Distributed Programming",
Technical report ECRC-92-32, 1992.

Thomsen, B.:
"Polymorphic Sorts and Types for Concurrent Functional Programs",
Technical report ECRC-93-10, 1993.

Amadio R. M.:
``Translating Core Facile'',
Technical report ECRC-94-3, 1994.

Talpin, J.-P.:
``The Calumet Experiment - Part I: An Implementation of
    Group-Communication Protocols in Facile'',
Technical report ECRC-94-4, 1994.

9. Acknowledgement

The current Facile group would like to thank Francois Cosquer, John
Glauert and Pierre Cregut for their contributions to the development of
the Facile Antigua Release.

The development of the Facile Antigua Release has been partially
supported by ESPRIT Basic Research Action "CONFER" 6564.

Members of the Facile group also take part in
ESPRIT working group "SEMAGRAPH II" 6345,
ESPRIT Basic Research Action "CONCUR2" 7166,
ESPRIT Basic Research Action "COORDINATION" 9102 and
ESPRIT Basic Research Action "LOMAPS" 8130.

Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.