LMNtal

I did a search and could not find any references on LtU about "LMNtal":
http://www.ueda.info.waseda.ac.jp/~ueda/pub/chrworkshop-ueda.pdf

Abstract. LMNtal (pronounced “elemental”) is a simple language model
based on hierarchical graph rewriting that uses logical variables to represent
connectivity and membranes to represent hierarchy. LMNtal is an
outcome of the attempt to unify constraint-based concurrency and Constraint
Handling Rules (CHR), the two notable extensions to concurrent
logic programming. LMNtal is intended to be a substrate language of
various computational models, especially those addressing concurrency,
mobility and multiset rewriting. Another important goal of LMNtal has
been to put hierarchical graph rewriting into practice and demonstrate
its versatility by designing and implementing a full-fledged, monolithic
programming language. In this paper, we demonstrate the practical aspects
of LMNtal using a number of examples taken from diverse areas
of computer science. Also, we discuss the relationship between LMNtal
and CHR, which exhibit both commonalities and differences in various
respects.

It supports hierarchical structures using "membranes" and graph structures using "links", and concurrency via concurrent constraint programming and (some part of) constraint handling rules.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Membranes and Logic Variables

Has anyone got any experience with programming using membranes? What do you think of them as an abstraction? It looks quite useful as an abstraction for managing object ownership.

What seems nice is that with membranes managing ownership, and logic-variables representing links, you have two abstractions that can manage memory. There would appear to be a relationship between membranes and RAII style memory management, and between the logic-variables and plain-pointers.

I also like the implicit parallelism of constraint handling rules. This is a parallel committed choice logic programming language, and is intended as a stand alone language, unlike CHR which seems to always require a host language.

Is the fifth generation project finally bearing some fruit, or is it too little to late?

Spooky actions at distance

I've wrote a few of these kind of systems, and while the code is elegant, debugging that code is a pain, even printf is of limited use. Linguistic constructs that can't be supported well in an environment will just languish, data binding is a good example where it could go both ways.

earlier boundary logic too

A membrane metaphor generally pervades much of my approach to computing problems: separated spaces that talk to each other while holding inconsistent world views. I tend to mistakenly assume others hold the same unspoken basic perspective. My view of actors and concurrent processes is mainly one of interacting cells that might not share resources while being able to message one another.

(Lately my day job involves adding incremental config for daemons managing key exchange for encryption, so there's a membrane metaphor at multiple levels, in IPsec endpoints as well as tunnel managing intermediaries. A common static world view is not the norm.)

What do you think of them as an abstraction?

Papers about membranes I look at now go almost directly into math I don't care about. So I don't know if you mean just the basic metaphor, or also various intricate scaffolds built atop the general idea.

I guess P Systems are named after Gheorghe Păun who developed them in 1998, since generalized into membrane systems using the biology inspired cell metaphor.

There's an earlier similar effort called boundary logic based on Spencer Brown's Laws of Form, axiomatized separately by Bricken and Kauffman. It looks like Wikipedia talk pages are trying to decide where boundary logic goes in math articles. In the early 90's there was some cross disciplinary talk about using boundary logic to apply biology metaphors to things like virtual reality designs -- see the 1993 VEOS project (William Bricken and Geoffrey Coco). Seems to me this is an earlier incarnation of the same sort of membrane metaphor applied to computing. I spent some time in 1994 talking to a guy about virtual reality design and boundary logic, because I was still a little obsessive about universal spatial metaphors at the time.

The main fruitful takeaway is that local differs from global, and that local has a nested cell structure when there is order as opposed to chaos. But most people are not good at allowing more than one global context to exist in mental models. So theory is almost totally undeveloped, except to the extent some folks like actor oriented systems when they intuitively understand something is going on with membranes and local contexts.