Replicode is a language designed to encode parallel programs and executable models, and is centered on the notions of extensive pattern-matching. The language is domain-independent and has been designed to build systems that are model-based and model-driven, as production systems that can modify their own code. More over, Replicode supports the distribution of knowledge and computation across clusters of computing nodes.
Replicode is a fully-fledged programming language. It is based on production system principles - dynamic code production - makes extensive use of pattern-matching, and provides strong support for handling of time. Patterns target arbitrarily complex time series of objects; patterns can be matched by any code in a given system, and at any depth in any objects’ structure. Replicode supports the distribution of computation across clusters of computing nodes.
The language was created as part of the HUMANOBS project to specifically address one or more of the following shortcomings of all existing programming languages:
One of the key principles behind the design of Replicode is the need for a system to model the temporal aspects of its own behavior, down to a fine level of granularity. The language provides a new foundation for all work aiming at autonomous artificial intelligence, self-expanding architectures, symbolic learning, and various other cognitive computation for real-world AI. It is also highly relevant to the simulation of complex dynamic systems, e.g. societies, biological processes, ecosystems, etc. The language is domain-independent and has been designed for easily encoding systems that are model-based and model-driven, using its own distributed reasoning system and mechanisms. The HUMANOBS Consortium members are using it to develop a new cognitive architecture that can learn complex behaviors by observation.
* Replicode at a glance
* Downloading and compiling the Replicode source code
* Getting started
* Hello World example explained step by step
* Concepts, commands and syntax are explained as they occur
* How to interpret the output
* Ping Pong example explained step by step
* Focus on interaction of programs
* An example of dynamic code production (creating new program templates at run-time) is analyzed
* Markers are introduced
Tutorial 4: Forward/Backward chaining
* An example of forward/backward chaining