REWERSE-RP-2007-110

Rémy Haemmerlé, François Fages, Sylvain Soliman:
Closures and Modules within Linear Logic Concurrent Constraint Programming.


Complete Text [
.pdf, 239KB]
In: Proceedings of 27th Conference on Foundations of Software Technology and Theoretical Computer Science (FSTTCS 2007), New Delhi, India (11th - 15th December 2007), LNCS 4855, 544--556, December 2007
© Springer

Abstract
There are two somewhat contradictory ways of looking at modules in a given programming language. On the one hand, module systems are largely independent of the particulars of programming languages. On the other hand, the module constructs may interfere with the programming constructs, and may be redundant with the other scope mechanisms of a specific programming language, such as closures for instance. There is therefore a need to unify the programming concepts that are similar, and retain a minimum number of essential constructs to avoid arbitrary programming choices. In this paper, we realize this aim in the framework of linear logic concurrent constraint programming (LCC) languages. We first show how declarations and closures can be internalized as agents in a variant of LCC for which we provide precise operational and logical semantics in linear logic. Then, we show how a complete module system can be represented within LCC, and prove for it a general code protection property. Finally we study the instanciation of this scheme to the implementation of a safe module system for constraint logic programs, and conclude on the generality of this approach to programming languages with logical variables.

URL:
http://rewerse.net/publications/rewerse-publications.html#REWERSE-RP-2007-110

BibTeX:

@inproceedings{REWERSE-RP-2007-110,
	author = {R\'{e}my Haemmerl\'{e} and Fran\c{c}ois Fages and Sylvain Soliman},
	title = {Closures and Modules within Linear Logic Concurrent Constraint Programming},
	booktitle = {Proceedings of 27th Conference on Foundations of Software Technology and Theoretical Computer Science, New Delhi, India (11th--15th December 2007)},
	year = {2007},
	volume = {4855},
	series = {LNCS},
	pages = {544---556},
	url = {http://rewerse.net/publications/rewerse-publications.html#REWERSE-RP-2007-110}
}