User Tools

Site Tools


«– HUMANOBS.ORG front page | Project Documents Page | HUMANOBS Main Wiki Page

Humanobs header


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:

  • Lack of support for distributed logic
  • Slow speed of execution of logical operations
  • Lack of support for induction and abduction as first-class logical operations
  • Complexity of managing auto-generated knowledge
  • Lack of support for self-generated code
  • Complexity of syntax, prohibiting self-inspection and self-modification of code
  • Lack of ability to model own behavior, at a high level of detail

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 Features At-a-Glance
  • Data-driven execution, via pattern matching
  • Goal-directed processing
  • Explicit handling of time
  • Extensive support for forward and inverse models
  • Integrated reasoning and introspective capabilities
  • Support for automatic code generation


Tutorial #0: Basics

* Replicode at a glance

* Downloading and compiling the Replicode source code

* Getting started

Tutorial #1: Hello World example

* Hello World example explained step by step

* Concepts, commands and syntax are explained as they occur

* How to interpret the output

Tutorial #2: Ping Pong example

* Ping Pong example explained step by step

* Focus on interaction of programs

Tutorial #3: Dynamic Code Production example

* 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

Source files

Source files with additional comments

graphical representation of the code and its execution

public/replicode/replicode-main.txt · Last modified: 2015/10/29 16:06 by thorisson