Gentle Introduction to LMNtal: Language Design and ImplementationTutorial
LMNtal (pronounced `elemental’) is a programming and modeling language based on hierarchical graph rewriting that uses (i) immutable variables (interpreted as point-to-point links) to represent connectivity and (ii) membranes to represent hierarchy and locality. It was initially designed to be a substrate language of diverse computational models, especially those addressing concurrency, mobility, and multiset rewriting, including Interaction Nets, Constraint Handling Rules and Bigraphs.
LMNtal provides a graphical view of programs and computation, but unlike many other graph rewriting languages based on the (dominant) algebraic approach, it is formulated in the standard style of programming languages, i.e., term-based abstract syntax and structural operational semantics, to retain its affinity with other programming paradigms. LMNtal is sometimes called a logic programming language because it allows interpretation based on intuitionistic linear logic.
On the practical side, the language comes with full-fledged, compiler-based, open-source implementation, which supports both (i) concurrent execution of rewrite rules and (ii) graph-based parallel model checking that scales up to 10^9 states. In addition, the tool LaViT supports visualization of graphs and visualization of state space of model checking, which both turns out to be extremely useful in understanding key properties of programs.
The tutorial will provide a gentle introduction (with a number of examples and demonstrations) to various aspects of the language and its implementation.
Wed 10 JulDisplayed time zone: Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna change
13:30 - 15:00 | |||
13:30 90mTutorial | Gentle Introduction to LMNtal: Language Design and ImplementationTutorial ICGT Research Papers Link to publication Pre-print |