mirror of https://github.com/tLDP/LDP
3.1 releasea of ai/alife howto
This commit is contained in:
parent
f5bd3f781a
commit
35e5b2ef6b
|
@ -4,7 +4,7 @@
|
|||
|
||||
<title>GNU/Linux AI & Alife HOWTO
|
||||
<author>by <htmlurl url="mailto:jae@zhar.net" name="John Eikenberry">
|
||||
<date>v3.0, 15 Dec 2012
|
||||
<date>v3.1, 31 Mar 2013
|
||||
|
||||
<abstract>
|
||||
This howto mainly contains information about, and links to,
|
||||
|
@ -45,6 +45,20 @@ GNU/Linux specifically in mind.
|
|||
|
||||
<itemize>
|
||||
|
||||
<item>v3.1 -
|
||||
<p>New entries: <ref id="SimpleAI">.
|
||||
|
||||
<p>Deleted the section on "Programming languages". I moved the couple of
|
||||
agent-oriented domain specific languages, <ref id="2APL"> and <ref
|
||||
id="APRIL">, into the sections relevant to the work. I removed the rest as
|
||||
they were all just general purpose languages.
|
||||
|
||||
<p>Changed my Copyright/License to <htmlurl
|
||||
url="http://creativecommons.org/publicdomain/zero/1.0/" name="CC0">. That
|
||||
is no copyright, it is Public Domain. I no longer wish to take part in
|
||||
copyright; <htmlurl url="http://questioncopyright.org/">
|
||||
|
||||
|
||||
<item>v3.0 -
|
||||
|
||||
<p>New entries: <ref id="ORTS">, <ref id="FANN">, <ref id="OpenCV">,
|
||||
|
@ -78,16 +92,15 @@ GNU/Linux specifically in mind.
|
|||
<item>v2.4 -
|
||||
|
||||
<p>New entries: <ref id="Eprover">, <ref id="Player">, <ref id="Logfun">,
|
||||
<ref id="Livingstone2">, <ref id="Quackle">, <ref id="LingPipe">,
|
||||
<ref id="GATE">, <ref id="Infon Battle Arena">, <ref id="CLARAty">,
|
||||
<ref id="Reverend">, <ref id="Shogun">, <ref id="Nanopond">,
|
||||
<ref id="Polyworld">, <ref id="Fluidiom">, <ref id="NEAT">,
|
||||
<ref id="Framsticks">, <ref id="URBI">, <ref id="RobotFlow">,
|
||||
<ref id="Nero">, <ref id="ffnet">, <ref id="Alloy">,
|
||||
<ref id="Pyke">, <ref id="NuPIC">, <ref id="Simbad">, <ref id="Robodeb">,
|
||||
<ref id="Loom">, <ref id="PowerLoom">, <ref id="tinygp">,
|
||||
<ref id="Curry">, <ref id="JGAP">, <ref id="PyCLIPS">,
|
||||
and <ref id="STELLA">.
|
||||
<ref id="Livingstone2">, <ref id="Quackle">, <ref id="LingPipe">, <ref
|
||||
id="GATE">, <ref id="Infon Battle Arena">, <ref id="CLARAty">, <ref
|
||||
id="Reverend">, <ref id="Shogun">, <ref id="Nanopond">, <ref
|
||||
id="Polyworld">, <ref id="Fluidiom">, <ref id="NEAT">, <ref
|
||||
id="Framsticks">, <ref id="URBI">, <ref id="RobotFlow">, <ref id="Nero">,
|
||||
<ref id="ffnet">, Alloy (removed), <ref id="Pyke">, <ref id="NuPIC">, <ref
|
||||
id="Simbad">, <ref id="Robodeb">, <ref id="Loom">, <ref id="PowerLoom">,
|
||||
<ref id="tinygp">, Curry (removed), <ref id="JGAP">, <ref id="PyCLIPS">,
|
||||
and STELLA (removed).
|
||||
|
||||
<p>I chopped the Agents section into two sub-sections, one for <ref
|
||||
id="Software Agents"> and one for <ref id="Robotics and Simulators">. I
|
||||
|
@ -99,15 +112,14 @@ GNU/Linux specifically in mind.
|
|||
|
||||
<item>v2.3 -
|
||||
|
||||
<p>New entries: <ref id="Yampa">, <ref id="pygene">, <ref id="Push">,
|
||||
<ref id="ANNEvolve">, <ref id="dgpf">, <ref id="Golly">,
|
||||
<ref id="IBAL">, <ref id="3APL">, <ref id="OSCAR">,
|
||||
and <ref id="RobocodeNG">.
|
||||
<p>New entries: <ref id="Yampa">, <ref id="pygene">, Push (removed), <ref
|
||||
id="ANNEvolve">, <ref id="dgpf">, <ref id="Golly">, <ref id="IBAL">, <ref
|
||||
id="3APL">, <ref id="OSCAR">, and <ref id="RobocodeNG">.
|
||||
|
||||
<p>Updated information for some entries including <ref id="Yale">,
|
||||
<ref id="Joone">, <ref id="Drone">, <ref id="Biome">, <ref id="ECLiPSe">,
|
||||
<ref id="Xtoys">, <ref id="GECO">,
|
||||
<ref id="Creatures Docking Station"> and others.
|
||||
<p>Updated information for some entries including <ref id="Yale">, <ref
|
||||
id="Joone">, <ref id="Drone">, <ref id="Biome">, ECLiPSe (removed), <ref
|
||||
id="Xtoys">, <ref id="GECO">, <ref id="Creatures Docking Station"> and
|
||||
others.
|
||||
|
||||
<p>I also changed the MIA section to <ref id="Missing & Dead"> which now
|
||||
groups into subsections entries with bad links that I can't find
|
||||
|
@ -122,7 +134,7 @@ GNU/Linux specifically in mind.
|
|||
<ref id="OpenSteer">, <ref id="Pyro">, <ref id="Robocode">,
|
||||
<ref id="Trend"> and <ref id="Open BEAGLE">.
|
||||
|
||||
<item>v2.1 -
|
||||
<item>v2.1 -
|
||||
|
||||
<p>New entries: <ref id="NLTK">, <ref id="NEURObjects">, <ref id="KANREN">,
|
||||
<ref id="Neural Networks at your Fingertips">, <ref id="SimWorld">,
|
||||
|
@ -135,19 +147,19 @@ GNU/Linux specifically in mind.
|
|||
entries (please let me know if you know of a new home for them).
|
||||
|
||||
<p>New entries: <ref id="Yale">, <ref id="DIET Agents">, <ref id="JASA">,
|
||||
<ref id="Jason">, <ref id="Noble Ape">, <ref id="Maude">,
|
||||
<ref id="ECLiPSe">, <ref id="lush">, and <ref id="pygp">
|
||||
<ref id="Jason">, <ref id="Noble Ape">, Maude (removed),
|
||||
ECLiPSe (removed), lush (removed), and <ref id="pygp">
|
||||
|
||||
<item>v1.9 - One new entry (<ref id="Bond">) and fixed the link below
|
||||
to the dynamic list (now defunct).
|
||||
to the dynamic list (now defunct).
|
||||
|
||||
<item>v1.8 - Cleaned up bad links, finding new ones where possible and
|
||||
eliminating those that seem to have disappeared. Quite a few new entries as
|
||||
well.
|
||||
|
||||
<p>New entries: <ref id="Torch">, <ref id="Aleph">, <ref id="AI Kernel">,
|
||||
<ref id="OpenCyc">, <ref id="HTK">, <ref id="FFLL">, <ref id="JCK">,
|
||||
<ref id="Joone">, <ref id="scnANNlib">, <ref id="GAUL">,
|
||||
<ref id="OpenCyc">, <ref id="HTK">, <ref id="FFLL">, <ref id="JCK">,
|
||||
<ref id="Joone">, <ref id="scnANNlib">, <ref id="GAUL">,
|
||||
<ref id="Cougaar">, and <ref id="RoboTournament">
|
||||
|
||||
<item>v1.7 - Another 9 new entries, a bunch of links fixed, and a few items
|
||||
|
@ -202,53 +214,13 @@ will find this document helpful.
|
|||
|
||||
<sect1>Copyright/License
|
||||
<p>
|
||||
Copyright (c) 1996-2009 John A. Eikenberry
|
||||
|
||||
LICENSE
|
||||
<htmlurl url="http://creativecommons.org/publicdomain/zero/1.0/" name="CC0">
|
||||
|
||||
This document may be reproduced and distributed in whole or in part, in
|
||||
any medium physical or electronic, provided that this license notice is
|
||||
displayed in the reproduction. Commercial redistribution is permitted and
|
||||
encouraged. Thirty days advance notice, via email to the author, of
|
||||
redistribution is appreciated, to give the authors time to provide updated
|
||||
documents.
|
||||
<p>
|
||||
To the extent possible under law, John Eikenberry has waived all copyright and
|
||||
related or neighboring rights to . This work is published from: United States.
|
||||
|
||||
A. REQUIREMENTS OF MODIFIED WORKS
|
||||
|
||||
All modified documents, including translations, anthologies, and partial
|
||||
documents, must meet the following requirements:
|
||||
|
||||
<p><itemize>
|
||||
<item>The modified version must be labeled as such.
|
||||
<item>The person making the modifications must be identified.
|
||||
<item>Acknowledgement of the original author must be retained.
|
||||
<item>The location of the original unmodified document be identified.
|
||||
<item>The original author's name(s) may not be used to assert or imply
|
||||
endorsement of the resulting document without the original author's
|
||||
permission.
|
||||
</itemize>
|
||||
|
||||
In addition it is requested (not required) that:
|
||||
|
||||
<itemize>
|
||||
<item>The modifications (including deletions) be noted.
|
||||
<item>The author be notified by email of the modification in advance of
|
||||
redistribution, if an email address is provided in the document.
|
||||
</itemize>
|
||||
|
||||
As a special exception, anthologies of LDP documents may include a single
|
||||
copy of these license terms in a conspicuous location within the anthology
|
||||
and replace other copies of this license with a reference to the single
|
||||
copy of the license without the document being considered "modified" for
|
||||
the purposes of this section.
|
||||
|
||||
Mere aggregation of LDP documents with other documents or programs on the
|
||||
same media shall not cause this license to apply to those other works.
|
||||
|
||||
All translations, derivative documents, or modified documents that
|
||||
incorporate this document may not have more restrictive license terms
|
||||
than these, except that you may require distributors to make the resulting
|
||||
document available in source format.
|
||||
|
||||
<sect>Symbolic Systems (GOFAI)
|
||||
|
||||
|
@ -756,9 +728,9 @@ LICENSE
|
|||
ultra-lightweight worlds to support hypothetical reasoning.
|
||||
|
||||
To implement PowerLoom we developed a new programming language called
|
||||
<ref id="STELLA">, which is a Strongly Typed, Lisp-like LAnguage that
|
||||
can be translated into Lisp, C++ and Java. PowerLoom is written in
|
||||
STELLA and therefore available in Common-Lisp, C++ and Java versions.
|
||||
STELLA, which is a Strongly Typed, Lisp-like LAnguage that can be
|
||||
translated into Lisp, C++ and Java. PowerLoom is written in STELLA and
|
||||
therefore available in Common-Lisp, C++ and Java versions.
|
||||
|
||||
|
||||
<label id="PyCLIPS">
|
||||
|
@ -862,6 +834,28 @@ LICENSE
|
|||
extensions to Common Lisp such as CLOS, CLIM and Iterate.
|
||||
|
||||
|
||||
<label id="SimpleAI">
|
||||
<tag/SimpleAI/
|
||||
<itemize>
|
||||
<item>Web site: <htmlurl
|
||||
url="https://github.com/simpleai-team/simpleai">
|
||||
</itemize>
|
||||
|
||||
Python library that implements many of the artificial intelligence
|
||||
algorithms described on the book "Artificial Intelligence, a Modern
|
||||
Approach", from Stuart Russel and Peter Norvig. Emphasis on creating a
|
||||
stable, modern, and maintainable version. We are testing the majority
|
||||
of the lib, it's available via pip install, has a standard repo and lib
|
||||
architecture, well documented, respects the python pep8 guidelines,
|
||||
provides only working code (no placeholders for future things), etc.
|
||||
Even the internal code is written with readability in mind, not only
|
||||
the external API.
|
||||
|
||||
There is also <htmlurl url="https://code.google.com/p/aima-python/">
|
||||
which implements these algorithms as well. Though it hasn't seen
|
||||
activity in a while.
|
||||
|
||||
|
||||
<label id="SPASS">
|
||||
<tag/SPASS/
|
||||
<itemize>
|
||||
|
@ -3718,6 +3712,23 @@ LICENSE
|
|||
|
||||
<descrip>
|
||||
|
||||
<label id="2APL">
|
||||
<tag/2APL/
|
||||
<itemize>
|
||||
<item>Web site: <htmlurl
|
||||
url="http://apapl.sourceforge.net/">
|
||||
</itemize>
|
||||
|
||||
2APL (pronounced as double-a-p-l) is an agent-oriented programming
|
||||
language that facilitates the implementation of multi-agent systems. At
|
||||
the multi-agent level, it provides programming constructs to specify a
|
||||
multi-agent system in terms of a set of individual agents, a set of
|
||||
environments in which they can perform actions, and the access relation
|
||||
between the individual agents and the environments. At the individual
|
||||
agent level, it provides programming constructs to implement cognitive
|
||||
agents based on the BDI architecture.
|
||||
|
||||
|
||||
<label id="3APL">
|
||||
<tag/3APL/
|
||||
<itemize>
|
||||
|
@ -3775,7 +3786,7 @@ LICENSE
|
|||
<item>Web site: <htmlurl
|
||||
url="http://www.trl.ibm.com/aglets/index_e.htm">
|
||||
</itemize>
|
||||
|
||||
|
||||
An aglet is a Java object that can move from one host on the
|
||||
Internet to another. That is, an aglet that executes on one host can
|
||||
suddenly halt execution, dispatch to a remote host, and resume
|
||||
|
@ -3789,12 +3800,12 @@ LICENSE
|
|||
is simple, flexible, and stable. Application developers can write
|
||||
platform-independent aglets and expect them to run on any host that
|
||||
supports J-AAPI.
|
||||
|
||||
|
||||
|
||||
<label id="AJA">
|
||||
<tag/AJA/
|
||||
<itemize>
|
||||
<item>Web site: <htmlurl
|
||||
<item>Web site: <htmlurl
|
||||
url="http://home.arcor.de/michal.badonsky/AJA/">
|
||||
</itemize>
|
||||
|
||||
|
@ -3809,12 +3820,12 @@ LICENSE
|
|||
<label id="A.L.I.C.E.">
|
||||
<tag/A.L.I.C.E./
|
||||
<itemize>
|
||||
<item>Web site: <htmlurl
|
||||
<item>Web site: <htmlurl
|
||||
url="http://www.alicebot.org/">
|
||||
<item>Other AIML implementations:
|
||||
<htmlurl url="http://pyaiml.sourceforge.net/">
|
||||
</itemize>
|
||||
|
||||
|
||||
The ALICE software implements AIML (Artificial Intelligence Markup
|
||||
Language), a non-standard evolving markup language for creating chat
|
||||
robots. The primary design feature of AIML is minimalism. Compared with
|
||||
|
@ -3824,13 +3835,31 @@ LICENSE
|
|||
implying that it obeys certain grammatical meta-rules. The choice of
|
||||
XML syntax permits integration with other tools such as XML editors.
|
||||
Another motivation for XML is its familiar look and feel, especially to
|
||||
people with HTML experience.
|
||||
people with HTML experience.
|
||||
|
||||
|
||||
<label id="APRIL">
|
||||
<tag/APRIL/
|
||||
<itemize>
|
||||
<item>Web site: <htmlurl
|
||||
url="http://sourceforge.net/projects/networkagent/">
|
||||
</itemize>
|
||||
|
||||
APRIL is a symbolic programming language that is designed for writing
|
||||
mobile, distributed and agent-based systems especially in an Internet
|
||||
environment. It has advanced features such as a macro sub-language,
|
||||
asynchronous message sending and receiving, code mobility, pattern
|
||||
matching, higher-order functions and strong typing. The language is
|
||||
compiled to byte-code which is then interpreted by the APRIL
|
||||
runtime-engine. APRIL now requires the InterAgent Communications Model
|
||||
(ICM) to be installed before it can be installed. [Ed. ICM can be found
|
||||
at the same web site]
|
||||
|
||||
|
||||
<label id="Ara">
|
||||
<tag/Ara/
|
||||
<itemize>
|
||||
<item>Web site: <htmlurl
|
||||
<item>Web site: <htmlurl
|
||||
url="http://wwwagss.informatik.uni-kl.de/Projekte/Ara/index_e.html">
|
||||
</itemize>
|
||||
|
||||
|
@ -4544,12 +4573,12 @@ name="www.csee.umbc.edu/tkqml/">
|
|||
An agent is a process that may migrate through a computer network
|
||||
in order to satisfy requests made by clients. Agents are an attractive
|
||||
way to describe network-wide computations.
|
||||
|
||||
|
||||
The TACOMA project focuses on operating system support for agents and
|
||||
how agents can be used to solve problems traditionally addressed by
|
||||
operating systems. We have implemented a series of prototype systems
|
||||
to support agents.
|
||||
|
||||
|
||||
TACOMA Version 1.2 is based on UNIX and TCP. The system supports
|
||||
agents written in C, Tcl/Tk, Perl, Python, and Scheme (Elk). It is
|
||||
implemented in C. This TACOMA version has been in public domain since
|
||||
|
@ -4562,7 +4591,7 @@ name="www.csee.umbc.edu/tkqml/">
|
|||
and Java. We are now in the process of evaluating this application,
|
||||
and plan to build a new StormCast version to be completed by June
|
||||
1997.
|
||||
|
||||
|
||||
|
||||
<label id="UMPRS Agent">
|
||||
<tag/UMPRS Agent/
|
||||
|
@ -5464,581 +5493,6 @@ name="www.csee.umbc.edu/tkqml/">
|
|||
|
||||
</descrip>
|
||||
|
||||
<sect>Programming languages
|
||||
<label id="Programming languages">
|
||||
<p>
|
||||
|
||||
While any programming language can be used for artificial
|
||||
intelligence/life research, these are programming languages which
|
||||
are used extensively for, if not specifically made for, artificial
|
||||
intelligence programming.
|
||||
|
||||
|
||||
<descrip>
|
||||
|
||||
<label id="2APL">
|
||||
<tag/2APL/
|
||||
<itemize>
|
||||
<item>Web site: <htmlurl
|
||||
url="http://apapl.sourceforge.net/">
|
||||
</itemize>
|
||||
|
||||
2APL (pronounced as double-a-p-l) is an agent-oriented programming
|
||||
language that facilitates the implementation of multi-agent systems. At
|
||||
the multi-agent level, it provides programming constructs to specify a
|
||||
multi-agent system in terms of a set of individual agents, a set of
|
||||
environments in which they can perform actions, and the access relation
|
||||
between the individual agents and the environments. At the individual
|
||||
agent level, it provides programming constructs to implement cognitive
|
||||
agents based on the BDI architecture.
|
||||
|
||||
|
||||
<label id="Alloy">
|
||||
<tag/Alloy/
|
||||
<itemize>
|
||||
<item>Web site: <htmlurl
|
||||
url="http://alloy.mit.edu/">
|
||||
</itemize>
|
||||
|
||||
The Alloy Analyzer is a tool for analyzing models written in Alloy, a
|
||||
simple structural modeling language based on first-order logic. The
|
||||
tool can generate instances of invariants, simulate the execution of
|
||||
operations (even those defined implicitly), and check user-specified
|
||||
properties of a model. Alloy and its analyzer have been used primarily
|
||||
to explore abstract software designs. Its use in analyzing code for
|
||||
conformance to a specification and as an automatic test case generator
|
||||
are being investigated in ongoing research projects.
|
||||
|
||||
|
||||
<label id="APRIL">
|
||||
<tag/APRIL/
|
||||
<itemize>
|
||||
<item>Web site: <htmlurl
|
||||
url="http://sourceforge.net/projects/networkagent/"
|
||||
name="sourceforge.net/projects/networkagent/">
|
||||
</itemize>
|
||||
|
||||
APRIL is a symbolic programming language that is designed for writing
|
||||
mobile, distributed and agent-based systems especially in an Internet
|
||||
environment. It has advanced features such as a macro sub-language,
|
||||
asynchronous message sending and receiving, code mobility, pattern
|
||||
matching, higher-order functions and strong typing. The language is
|
||||
compiled to byte-code which is then interpreted by the APRIL
|
||||
runtime-engine. APRIL now requires the InterAgent Communications Model
|
||||
(ICM) to be installed before it can be installed. [Ed. ICM can be found
|
||||
at the same web site]
|
||||
|
||||
|
||||
<label id="Ciao Prolog">
|
||||
<tag/Ciao Prolog/
|
||||
<itemize>
|
||||
<item>Web site: <htmlurl url="http://www.ciaohome.org/">
|
||||
</itemize>
|
||||
|
||||
Ciao is a complete Prolog system subsuming ISO-Prolog with a novel
|
||||
modular design which allows both restricting and extending the
|
||||
language. Ciao extensions currently include feature terms (records),
|
||||
higher-order, functions, constraints, objects, persistent predicates, a
|
||||
good base for distributed execution (agents), and concurrency.
|
||||
Libraries also support WWW programming, sockets, and external
|
||||
interfaces (C, Java, TCL/Tk, relational databases, etc.). An
|
||||
Emacs-based environment, a stand-alone compiler, and a toplevel shell
|
||||
are also provided.
|
||||
|
||||
|
||||
<label id="Curry">
|
||||
<tag/Curry/
|
||||
<itemize>
|
||||
<item>Web site: <htmlurl
|
||||
url="http://www.informatik.uni-kiel.de/~mh/curry/">
|
||||
</itemize>
|
||||
|
||||
Curry is a universal programming language aiming to amalgamate the most
|
||||
important declarative programming paradigms, namely functional
|
||||
programming and logic programming. Moreover, it also covers the most
|
||||
important operational principles developed in the area of integrated
|
||||
functional logic languages: "residuation" and "narrowing" (there is an
|
||||
older survey and a newer survey on functional logic programming).
|
||||
|
||||
Curry combines in a seamless way features from functional programming
|
||||
(nested expressions, higher-order functions, lazy evaluation), logic
|
||||
programming (logical variables, partial data structures, built-in
|
||||
search), and concurrent programming (concurrent evaluation of
|
||||
expressions with synchronization on logical variables). Moreover, Curry
|
||||
provides additional features in comparison to the pure languages
|
||||
(compared to functional programming: search, computing with partial
|
||||
information; compared to logic programming: more efficient evaluation
|
||||
due to the deterministic and demand-driven evaluation of functions).
|
||||
|
||||
|
||||
<label id="ECLiPSe">
|
||||
<tag/ECLiPSe/
|
||||
<itemize>
|
||||
<item>Web site: <htmlurl
|
||||
url="http://eclipseclp.org/">
|
||||
</itemize>
|
||||
|
||||
ECLiPSe is a software system for the cost-effective development and
|
||||
deployment of constraint programming applications, e.g. in the areas of
|
||||
planning, scheduling, resource allocation, timetabling, transport etc.
|
||||
It is also ideal for teaching most aspects of combinatorial problem
|
||||
solving, e.g. problem modelling, constraint programming, mathematical
|
||||
programming, and search techniques. It contains several constraint
|
||||
solver libraries, a high-level modelling and control language,
|
||||
interfaces to third-party solvers, an integrated development
|
||||
environment and interfaces for embedding into host environments.
|
||||
|
||||
|
||||
<label id="ECoLisp">
|
||||
<tag/ECoLisp/
|
||||
<itemize>
|
||||
<item>Web site (???): <htmlurl
|
||||
url="http://www.di.unipi.it/˜attardi/software.html">
|
||||
</itemize>
|
||||
|
||||
ECoLisp (Embeddable Common Lisp) is an implementation of
|
||||
Common Lisp designed for being embeddable into C based
|
||||
applications. ECL uses standard C calling conventions for Lisp
|
||||
compiled functions, which allows C programs to easily call
|
||||
Lisp functions and viceversa. No foreign function interface is
|
||||
required: data can be exchanged between C and Lisp with no
|
||||
need for conversion. ECL is based on a Common Runtime Support
|
||||
(CRS) which provides basic facilities for memory managment,
|
||||
dynamic loading and dumping of binary images, support for
|
||||
multiple threads of execution. The CRS is built into a library
|
||||
that can be linked with the code of the application. ECL is
|
||||
modular: main modules are the program development tools (top
|
||||
level, debugger, trace, stepper), the compiler, and CLOS. A
|
||||
native implementation of CLOS is available in ECL: one can
|
||||
configure ECL with or without CLOS. A runtime version of ECL
|
||||
can be built with just the modules which are required by the
|
||||
application. The ECL compiler compiles from Lisp to C, and
|
||||
then invokes the GCC compiler to produce binaries.
|
||||
|
||||
|
||||
<label id="ESTEREL">
|
||||
<tag/ESTEREL/
|
||||
<itemize>
|
||||
<item>Web site: <htmlurl
|
||||
url="http://www-sop.inria.fr/meije/esterel/">
|
||||
</itemize>
|
||||
|
||||
Esterel is both a programming language, dedicated to programming
|
||||
reactive systems, and a compiler which translates Esterel programs into
|
||||
finite-state machines. It is particularly well-suited to programming
|
||||
reactive systems, including real-time systems and control automata.
|
||||
|
||||
Only the binary is available for the language compiler. :P
|
||||
|
||||
|
||||
<label id="Godel">
|
||||
<tag/Gödel/
|
||||
<itemize>
|
||||
<item>Web page: <htmlurl
|
||||
url="http://www.cs.bris.ac.uk/˜bowers/goedel.html">
|
||||
</itemize>
|
||||
|
||||
Gödel is a declarative, general-purpose programming language in the
|
||||
family of logic programming languages. It is a strongly typed language,
|
||||
the type system being based on many-sorted logic with parametric
|
||||
polymorphism. It has a module system. Gödel supports infinite
|
||||
precision integers, infinite precision rationals, and also
|
||||
floating-point numbers. It can solve constraints over finite domains of
|
||||
integers and also linear rational constraints. It supports processing of
|
||||
finite sets. It also has a flexible computation rule and a pruning
|
||||
operator which generalizes the commit of the concurrent logic
|
||||
programming languages. Considerable emphasis is placed on Gödel's
|
||||
meta- logical facilities which provide significant support for
|
||||
meta-programs that do analysis, transformation, compilation,
|
||||
verification, debugging, and so on.
|
||||
|
||||
|
||||
<label id="CLisp">
|
||||
<tag/CLisp (Lisp)/
|
||||
<itemize>
|
||||
<item>Web page: <htmlurl
|
||||
url="http://clisp.sourceforge.net/">
|
||||
<item>Alt Web site: <htmlurl url="http://clisp.org/">
|
||||
</itemize>
|
||||
|
||||
CLISP is a Common Lisp implementation by Bruno Haible and Michael
|
||||
Stoll. It mostly supports the Lisp described by
|
||||
<htmlurl
|
||||
url="http://www.cs.cmu.edu/afs/cs.cmu.edu/project/ai-repository/ai/html/cltl/cltl2.html"
|
||||
name="Common LISP: The Language (2nd edition)">
|
||||
and the ANSI Common Lisp
|
||||
standard. CLISP includes an interpreter, a byte-compiler, a large
|
||||
subset of CLOS (Object-Oriented Lisp) , a foreign language interface
|
||||
and, for some machines, a screen editor.
|
||||
|
||||
The user interface language (English, German, French) is chosen at
|
||||
run time. Major packages that run in CLISP include CLX & Garnet.
|
||||
CLISP needs only 2 MB of memory.
|
||||
|
||||
|
||||
<label id="CMU CL">
|
||||
<tag/CMU Common Lisp/
|
||||
<itemize>
|
||||
<item>Web page: <htmlurl
|
||||
url="http://www.cons.org/cmucl/">
|
||||
<item>Linux Installation: <htmlurl
|
||||
url="http://www.telent.net/lisp/howto.html">
|
||||
</itemize>
|
||||
|
||||
CMU Common Lisp is a public domain "industrial strength" Common
|
||||
Lisp programming environment. Many of the X3j13 changes have been
|
||||
incorporated into CMU CL. Wherever possible, this has been done so as
|
||||
to transparently allow the use of either CLtL1 or proposed ANSI
|
||||
CL. Probably the new features most interesting to users are SETF
|
||||
functions, LOOP and the WITH-COMPILATION-UNIT macro.
|
||||
|
||||
|
||||
<label id="Gnu-CL">
|
||||
<tag/GCL (Lisp)/
|
||||
<itemize>
|
||||
<item>FTP site: <htmlurl
|
||||
url="ftp://ftp.ma.utexas.edu/pub/gcl/">
|
||||
</itemize>
|
||||
|
||||
GNU Common Lisp (GCL) has a compiler and interpreter for Common
|
||||
Lisp. It used to be known as Kyoto Common Lisp. It is very portable
|
||||
and extremely efficient on a wide class of applications. It compares
|
||||
favorably in performance with commercial Lisps on several large
|
||||
theorem-prover and symbolic algebra systems. It supports the CLtL1
|
||||
specification but is moving towards the proposed ANSI definition. GCL
|
||||
compiles to C and then uses the native optimizing C compilers (e.g.,
|
||||
GCC). A function with a fixed number of args and one value turns into
|
||||
a C function of the same number of args, returning one value, so GCL
|
||||
is maximally efficient on such calls. It has a conservative garbage
|
||||
collector which allows great freedom for the C compiler to put Lisp
|
||||
values in arbitrary registers.
|
||||
|
||||
It has a source level Lisp debugger for interpreted code, with display
|
||||
of source code in an Emacs window. Its profiling tools (based on the
|
||||
C profiling tools) count function calls and the time spent in each
|
||||
function.
|
||||
|
||||
|
||||
<label id="GNU Prolog">
|
||||
<tag/GNU Prolog/
|
||||
<itemize>
|
||||
<item>Web site: <htmlurl url="http://www.gprolog.org/">
|
||||
</itemize>
|
||||
|
||||
GNU Prolog is a free Prolog compiler with constraint solving over
|
||||
finite domains developed by Daniel Diaz.
|
||||
|
||||
GNU Prolog accepts Prolog+constraint programs and produces native
|
||||
binaries (like gcc does from a C source). The obtained executable is
|
||||
then stand-alone. The size of this executable can be quite small since
|
||||
GNU Prolog can avoid to link the code of most unused built-in
|
||||
predicates. The performances of GNU Prolog are very encouraging
|
||||
(comparable to commercial systems).
|
||||
|
||||
Beside the native-code compilation, GNU Prolog offers a classical
|
||||
interactive interpreter (top-level) with a debugger.
|
||||
|
||||
The Prolog part conforms to the ISO standard for Prolog with many
|
||||
extensions very useful in practice (global variables, OS interface,
|
||||
sockets,...).
|
||||
|
||||
GNU Prolog also includes an efficient constraint solver over Finite
|
||||
Domains (FD). This opens contraint logic pogramming to the user
|
||||
combining the power of constraint programming to the declarativity of
|
||||
logic programming.
|
||||
|
||||
|
||||
<label id="lush">
|
||||
<tag/lush/
|
||||
<itemize>
|
||||
<item>Web site: <htmlurl
|
||||
url="http://lush.sourceforge.net/">
|
||||
</itemize>
|
||||
|
||||
Lush is an object-oriented programming language designed for
|
||||
researchers, experimenters, and engineers interested in large-scale
|
||||
numerical and graphic applications. Lush is designed to be used in
|
||||
situations where one would want to combine the flexibility of a
|
||||
high-level, weakly-typed interpreted language, with the efficiency of a
|
||||
strongly-typed, natively-compiled language, and with the easy
|
||||
integration of code written in C, C++, or other languages.
|
||||
|
||||
|
||||
<label id="Maude">
|
||||
<tag/Maude/
|
||||
<itemize>
|
||||
<item>Web site: <htmlurl
|
||||
url="http://maude.cs.uiuc.edu/">
|
||||
</itemize>
|
||||
|
||||
Maude is a high-performance reflective language and system supporting
|
||||
both equational and rewriting logic specification and programming for a
|
||||
wide range of applications. Maude has been influenced in important ways
|
||||
by the OBJ3 language, which can be regarded as an equational logic
|
||||
sublanguage. Besides supporting equational specification and
|
||||
programming, Maude also supports rewriting logic computation.
|
||||
|
||||
|
||||
<label id="Mercury">
|
||||
<tag/Mercury/
|
||||
<itemize>
|
||||
<item>Web page: <htmlurl
|
||||
url="http://mercurylang.org/">
|
||||
</itemize>
|
||||
|
||||
Mercury is a new, purely declarative logic programming language. Like
|
||||
Prolog and other existing logic programming languages, it is a very
|
||||
high-level language that allows programmers to concentrate on the
|
||||
problem rather than the low-level details such as memory management.
|
||||
Unlike Prolog, which is oriented towards exploratory programming,
|
||||
Mercury is designed for the construction of large, reliable, efficient
|
||||
software systems by teams of programmers. As a consequence, programming
|
||||
in Mercury has a different flavor than programming in Prolog.
|
||||
|
||||
|
||||
<label id="Mozart">
|
||||
<tag/Mozart/
|
||||
<itemize>
|
||||
<item>Web page: <htmlurl url="http://www.mozart-oz.org/">
|
||||
</itemize>
|
||||
|
||||
The Mozart system provides state-of-the-art support in two areas:
|
||||
open distributed computing and constraint-based inference. Mozart
|
||||
implements Oz, a concurrent object-oriented language with dataflow
|
||||
synchronization. Oz combines concurrent and distributed programming
|
||||
with logical constraint-based inference, making it a unique choice
|
||||
for developing multi-agent systems. Mozart is an ideal platform for
|
||||
both general-purpose distributed applications as well as for hard
|
||||
problems requiring sophisticated optimization and inferencing
|
||||
abilities. We have developed applications in scheduling and
|
||||
time-tabling, in placement and configuration, in natural language and
|
||||
knowledge representation, multi-agent systems and sophisticated
|
||||
collaborative tools.
|
||||
|
||||
|
||||
<label id="SWI Prolog">
|
||||
<tag/SWI Prolog/
|
||||
<itemize>
|
||||
<item>Web page: <htmlurl
|
||||
url="http://www.swi-prolog.org/">
|
||||
</itemize>
|
||||
|
||||
SWI is a free version of prolog in the Edinburgh Prolog family. It is
|
||||
licensed under the LGPL with many nice features for an AI researcher,
|
||||
such as; a large library of built-in predicates, a module system,
|
||||
garbage collection, a two-way interface with the C/C++ language,
|
||||
coroutines, multi-threading, multiple constraint library, the XPCE
|
||||
graphics toolkit, plus many more.
|
||||
|
||||
|
||||
<label id="Push">
|
||||
<tag/Push/
|
||||
<itemize>
|
||||
<item>Web site: <htmlurl
|
||||
url="http://hampshire.edu/lspector/push.html">
|
||||
</itemize>
|
||||
|
||||
Push is a programming language intended primarily for use in
|
||||
evolutionary computation systems (such as genetic programming systems),
|
||||
as the language in which evolving programs are expressed. Push has an
|
||||
unusually simple syntax, which facilitates the development (or
|
||||
evolution) of mutation and recombination operators that generate and
|
||||
manipulate programs. Despite this simple syntax, Push provides more
|
||||
expressive power than most other program representations that are used
|
||||
for program evolution.
|
||||
|
||||
Includes several libraries/systems for working with GP (all info on the
|
||||
Push page). PushGP is a genetic programming system that evolves
|
||||
programs in the Push programming language. Pushpop is an
|
||||
"autoconstructive evolution" system that also evolves Push programs.
|
||||
SwarmEvolve 2.0 is an autoconstuctive evolution system in which flying
|
||||
agents, controlled by Push programs, evolve in a 3D environment.
|
||||
|
||||
|
||||
<label id="Kali Scheme">
|
||||
<tag/Kali Scheme/
|
||||
<itemize>
|
||||
<item>Web site: <htmlurl
|
||||
url="http://community.schemewiki.org/kali-scheme/">
|
||||
</itemize>
|
||||
|
||||
Kali Scheme is a distributed implementation of Scheme that
|
||||
permits efficient transmission of higher-order objects such as
|
||||
closures and continuations. The integration of distributed
|
||||
communication facilities within a higher-order programming
|
||||
language engenders a number of new abstractions and paradigms
|
||||
for distributed computing. Among these are user-specified
|
||||
load-balancing and migration policies for threads,
|
||||
incrementally-linked distributed computations, agents, and
|
||||
parameterized client-server applications. Kali Scheme supports
|
||||
concurrency and communication using first-class procedures and
|
||||
continuations. It integrates procedures and continuations into a
|
||||
message-based distributed framework that allows any Scheme
|
||||
object (including code vectors) to be sent and received in a
|
||||
message.
|
||||
|
||||
|
||||
<label id="RScheme">
|
||||
<tag/RScheme/
|
||||
<itemize>
|
||||
<item>Web site:<htmlurl
|
||||
url="http://www.rscheme.org/">
|
||||
</itemize>
|
||||
|
||||
RScheme is an object-oriented, extended version of the Scheme
|
||||
dialect of Lisp. RScheme is freely redistributable, and offers
|
||||
reasonable performance despite being extraordinarily portable.
|
||||
RScheme can be compiled to C, and the C can then compiled with a
|
||||
normal C compiler to generate machine code. By default, however,
|
||||
RScheme compiles to bytecodes which are interpreted by a
|
||||
(runtime) virtual machine. This ensures that compilation is fast
|
||||
and keeps code size down. In general, we recommend using the
|
||||
(default) bytecode code generation system, and only compiling
|
||||
your time-critical code to machine code. This allows a nice
|
||||
adjustment of space/time tradeoffs. (see web site for details)
|
||||
|
||||
|
||||
<label id="Scheme 48">
|
||||
<tag/Scheme 48/
|
||||
<itemize>
|
||||
<item>Web site: <htmlurl url="http://s48.org/">
|
||||
</itemize>
|
||||
|
||||
Scheme 48 is a Scheme implementation based on a virtual machine
|
||||
architecture. Scheme 48 is designed to be straightforward, flexible,
|
||||
reliable, and fast. It should be easily portable to 32-bit
|
||||
byte-addressed machines that have POSIX and ANSI C support. In
|
||||
addition to the usual Scheme built-in procedures and a development
|
||||
environment, library software includes support for hygienic macros (as
|
||||
described in the Revisedˆ4 Scheme report), multitasking, records,
|
||||
exception handling, hash tables, arrays, weak pointers, and FORMAT.
|
||||
Scheme 48 implements and exploits an experimental module system
|
||||
loosely derived from Standard ML and Scheme Xerox. The development
|
||||
environment supports interactive changes to modules and interfaces.
|
||||
|
||||
|
||||
<label id="SCM">
|
||||
<tag>SCM (<bf>Scheme</bf>)
|
||||
<itemize>
|
||||
<item>Web site: <htmlurl
|
||||
url="http://people.csail.mit.edu/jaffer/SCM.html">
|
||||
</itemize>
|
||||
|
||||
SCM conforms to the Revisedˆ4 Report on the Algorithmic Language
|
||||
Scheme and the IEEE P1178 specification. Scm is written in C. It uses
|
||||
the following utilities (all available at the ftp site).
|
||||
<itemize>
|
||||
<item>SLIB (Standard Scheme Library) is a portable Scheme
|
||||
library which is intended to provide compatibility and utility
|
||||
functions for all standard Scheme implementations, including
|
||||
SCM, Chez, Elk, Gambit, MacScheme, MITScheme, scheme->C,
|
||||
Scheme48, T3.1, and VSCM, and is available as the file
|
||||
slib2c0.tar.gz. Written by Aubrey Jaffer.
|
||||
<item>JACAL is a symbolic math system written in Scheme, and is
|
||||
available as the file jacal1a7.tar.gz.
|
||||
<item>Interfaces to standard libraries including REGEX string
|
||||
regular expression matching and the CURSES screen management
|
||||
package.
|
||||
<item>Available add-on packages including an interactive debugger,
|
||||
database, X-window graphics, BGI graphics, Motif, and
|
||||
Open-Windows packages.
|
||||
<item>A compiler (HOBBIT, available separately) and dynamic linking
|
||||
of compiled modules.
|
||||
</itemize>
|
||||
|
||||
|
||||
<label id="Shift">
|
||||
<tag/Shift/
|
||||
<itemize>
|
||||
<item>Web site: <htmlurl url="http://www.path.berkeley.edu/shift/">
|
||||
</itemize>
|
||||
|
||||
Shift is a programming language for describing dynamic
|
||||
networks of hybrid automata. Such systems consist of
|
||||
components which can be created, interconnected and destroyed
|
||||
as the system evolves. Components exhibit hybrid behavior,
|
||||
consisting of continuous-time phases separated by
|
||||
discrete-event transitions. Components may evolve
|
||||
independently, or they may interact through their inputs,
|
||||
outputs and exported events. The interaction network itself
|
||||
may evolve.
|
||||
|
||||
|
||||
<label id="STELLA">
|
||||
<tag/STELLA/
|
||||
<itemize>
|
||||
<item>Web site: <htmlurl
|
||||
url="http://www.isi.edu/isd/LOOM/Stella/">
|
||||
</itemize>
|
||||
|
||||
STELLA is a strongly typed, object-oriented, Lisp-like language,
|
||||
designed to facilitate symbolic programming tasks in artificial
|
||||
intelligence applications. STELLA preserves those features of Common
|
||||
Lisp deemed essential for symbolic programming such as built-in support
|
||||
for dynamic data structures, heterogeneous collections, first-class
|
||||
symbols, powerful iteration constructs, name spaces, an object-oriented
|
||||
type system with a meta-object protocol, exception handling, and
|
||||
language extensibility through macros, but without compromising
|
||||
execution speed, interoperability with non-STELLA programs, and
|
||||
platform independence. STELLA programs are translated into a target
|
||||
language such as C++, Common Lisp, or Java, and then compiled with the
|
||||
native target language compiler to generate executable code. The
|
||||
language constructs of STELLA are restricted to those that can be
|
||||
translated directly into native constructs of the intended target
|
||||
languages, thus enabling the generation of highly efficient as well as
|
||||
readable code.
|
||||
|
||||
|
||||
<label id="YAP Prolog">
|
||||
<tag/YAP Prolog/
|
||||
<itemize>
|
||||
<item>Web site: <htmlurl
|
||||
url="http://www.dcc.fc.up.pt/˜vsc/Yap/">
|
||||
<item>Sourceforge site: <htmlurl
|
||||
url="http://sourceforge.net/projects/yap/">
|
||||
</itemize>
|
||||
|
||||
YAP is a high-performance Prolog compiler developed at
|
||||
LIACC/Universidade do Porto. Its Prolog engine is based in the WAM
|
||||
(Warren Abstract Machine), with several optimizations for better
|
||||
performance. YAP follows the Edinburgh tradition, and is largely
|
||||
compatible with DEC-10 Prolog, Quintus Prolog, and especially
|
||||
with C-Prolog. Work on the more recent version of YAP strives at
|
||||
several goals:
|
||||
|
||||
<itemize>
|
||||
<item>Portability: The whole system is now written in C. YAP
|
||||
compiles in popular 32 bit machines, such as Suns and
|
||||
Linux PCs, and in a 64 bit machines, the Alphas running
|
||||
OSF Unix and Linux.
|
||||
<item>Performance: We have optimised the emulator to obtain
|
||||
performance comparable to or better than well-known Prolog
|
||||
systems. In fact, the current version of YAP performs
|
||||
better than the original one, written in assembly language.
|
||||
<item>Robustness: We have tested the system with a large array
|
||||
of Prolog applications.
|
||||
<item>Extensibility: YAP was designed internally from the
|
||||
beginning to encapsulate manipulation of terms. These
|
||||
principles were used, for example, to implement a simple
|
||||
and powerful C-interface. The new version of YAP extends
|
||||
these principles to accomodate extensions to the
|
||||
unification algorithm, that we believe will be useful to
|
||||
implement extensions such as constraint programming.
|
||||
<item>Completeness: YAP has for a long time provided most
|
||||
builtins expected from a Edinburgh Prolog implementation.
|
||||
These include I/O functionality, data-base operations,
|
||||
and modules. Work on YAP aims now at being compatible with
|
||||
the Prolog standard.
|
||||
<item>Openess: We would like to make new development of YAP
|
||||
open to the user community.
|
||||
<item>Research: YAP has been a vehicle for research within and
|
||||
outside our group. Currently research is going on on
|
||||
parallelisation and tabulation, and we have started work
|
||||
to support constraint handling.
|
||||
</itemize>
|
||||
|
||||
</descrip>
|
||||
|
||||
<sect>Missing & Dead
|
||||
<label id="Missing & Dead">
|
||||
|
||||
|
|
Loading…
Reference in New Issue