*LMNtal
*LMNtal, a unifying language and tool

LMNtal (pronounced "elemental") is a concurrent language based on
hierarchical graph rewriting.  It features:
LMNtal (pronounced "elemental") is a programming and modeling language based on '''hierarchical graph rewriting'''.  It was designed to be a substrate language of diverse computational models, especially those addressing concurrency, mobility and multiset rewriting, including (Colored) Petri Nets, Interaction Nets, the Pi-Calculus, Chemical Abstract Machines, Constraint Handling Rules, and Bigraphs.  It features

-rule-based multiset rewriting,
-connectivity represented using 1-to-1 links,
-hierarchy represented using membranes,
-locality of rewrite rules,
-dynamic process/rule migration,
-graphical view of programs and computation,
-uniform treatment of processes and data,
-and so on.
-point-to-point ''links'' to represent connectivity,
-''membranes'' to represent hierarchy,
// -rule-based multiset rewriting,
// -locality of rewrite rules,
-dynamic migration of processes and rewrite rules, and
-graphical view of programs and computation (see Figure below).
// -uniform treatment of processes and data,
// -and so on.

An implementation (a translator into intermediate code and
a runtime system) running on a Java platform is available.
It features 
The language has been fully implemented using Java and C.  Various unique features have been integrated into ''LMNtalEditor'', the Integrated Development Environment of LMNtal.  LMNtalEditor comes with

-arithmetics,
-modules,
-nondeterministic execution (exhaustive search),
-foreign-language interface to Java,
-visualizer,
-read-eval-print loop,
-optimizer,
-redex/rule selection strategies, and
-libraries.
- ''nondeterministic state-space search'',
- state-space visualizer,
- ''LTL model checker'' (using LMNtal as the modeling language), and
- graph visualizer.

The following figures illustrate some diagrams that can be
represented and handled nicely in LMNtal:
**Model checking with LMNtal IDE

http://www.ueda.info.waseda.ac.jp/lmntal/image/diagrams-low.png 
Model checking combined with state-space visualization demonstrates that LMNtalEditor is extremely useful for '''understanding''' as well as '''debugging''' your models and programs.  LMNtalEitor can be and has been used to run and visualize diverse examples taken from the fields of model checking, concurrency and AI search.

The language and the implemenation has been developed since 2002 by
the LMNtal team, Dept. of Computer Science, Waseda University.
// An implementation (a translator into intermediate code and
// a runtime system) running on a Java platform is available.
// It features 

//-arithmetics,
//-modules,
//-nondeterministic execution (exhaustive search),
//-foreign-language interface to Java,
//-visualizer,
//-read-eval-print loop,
//-optimizer,
//-redex/rule selection strategies, and
//-libraries.

LMNtal allows extremely terse representation of some transition systems.  For example, with only one rule, the state space of the Tower of Hanoi can be explored and visualized.

#ref(hanoi5.png,center,40%,around);

**Programming/modeling with links and membranes

The power of LMNtal comes from two structuring mechanisms, links and membranes.  The figure below illustrates how hierarchical graphs allow you to represent various concepts appearing in computer science. 

#ref(diagrams.png,center,20%,around);
// http://www.ueda.info.waseda.ac.jp/lmntal/image/diagrams-low.png

The language and the implementation has been developed since 2002 by
the LMNtal team, Dept. of Computer Science and Engineering, Waseda University.

//**Sample Input 1
//    a,a,a,a,a,a, (a,a :- {a}), ({$p,a},{$q} :- $p,$q) 
//
//**Sample Input 2
//[[Download]] (append.lmn)

mailto: lmntal _AtSign_ ueda.info.waseda.ac.jp


//--started to copy contents -- [[nakajima]] &new{2004-01-30 (Fri) 22:13:40};
//--edited the menubar to hide titles written in EUC-JP -- [[nakajima]] &new{2004-02-01 (Sun) 21:33:05};
//--added edit auth -- [[nakajima]] &new{2004-02-03 (Tue) 17:47:44};
//--new skin installed -- [[nakajima]] &new{2004-02-13 (Fri) 17:19:23};
//#comment


Front page List of pages Search Recent changes Backup   Help   RSS of recent changes