Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Failed to load latest commit information.|
LuaPi: Concurrent programming made simple ----- (C) 2007-2009 by Frederic Peschanski under the MIT Licence (see COPYRIGHT file) AUTHOR ------- Frederic Peschanski Assistant Professor University of Paris 6 - Pierre et Marie Curie France web: http://www-poleia.lip6.fr/~pesch OVERVIEW -------- LuaPi is a concise and efficient implementation of the Pi-calculus and broadcast-Pi semantics The metaphor employed is that of communicating systems. A LuaPi agent (there should generally be one LuaPi agent per lua instance) runs a set of LuaPi processes in parallel. Processes communicate through send/receive or broadcast primitives using communication channels. A higher-level and quite expressive choice construct allows to implement guarded commands, select-like behaviors and much more. From a practical point of view, LuaPi greatly simplifies the thinking and programming of concurrent behaviors, here in the Lua language. A more Lua-specific aspect is that LuaPi offers an expressive (but thin) layer above the coroutine mechanism so that programmers do not have to deal with the low-level stuff. It also provides an implicit cooperation model so that explicit yield are barely needed. From a scientific point of view, LuaPi is an outcome of our (long-term) research effort of providing integrated modeling, verification and programming techniques for day-to-day programmers (see LINKS). For example, LuaPi programs (well, the concurrent parts) can be converted to the Promela syntax and thus verified using Spin (see the doc/spin/ subdirectory for a tutorial example) INSTALLATION ------------ There is no installation procedure per-se. The only "difficult" part is in expanding the archive, which may look like the following one any Linux/Unix/Mingw/Cygwin/MacOSX environment: > tar xvzf LuaPi-<VERSION>.tar.gz To check the library, you can try the (few) provided examples: > source ./prepare.sh > lua examples/cs.lua ... > lua examples/rdv.lua ... > (etc.) Most examples are (or will be) thoroughly commented, and further documentation should happen at some point. CONTENTS -------- LuaPi-<VERSION>/ : main directory README : this file HISTORY : the history of versions COPYRIGHT : our rights (and few duties) VERSION : the current version AUTHORS : the authors of the software doc/ : tutorial and reference documentation lib/ : the library file(s) lib/pi.lua : the main LuaPi module examples/ : largely commented examples prepare.sh : to test LuaContractor (see INSTALLATION just above) DOCUMENTATION ------------- LuaPi tutorial: see doc/tutorial/LuaPiTut-<VERSION>.pdf CONTACT ------- Please use the project page on LuaForge (or author homepage) LINKS ----- - LuaPi home page: http://luapi.luaforge.net - Lua home page: http://www.lua.org - LuaForge projects: http://www.luaforge.net - Personal home page: http://www-poleia.lip6.fr/~pesch - research work: http://www-poleia.lip6.fr/~pesch/pithreads