All Projects → loyso → LuaCSP

loyso / LuaCSP

Licence: other
Communicating Sequential Processes in Lua

Programming Languages

c
50402 projects - #5 most used programming language
HTML
75241 projects
C++
36643 projects - #6 most used programming language
lua
6591 projects
Makefile
30231 projects
Roff
2310 projects
CSS
56736 projects

Projects that are alternatives of or similar to LuaCSP

zab
C++20 liburing backed coroutine executor and event loop framework.
Stars: ✭ 54 (+35%)
Mutual labels:  coroutines, asynchronous-programming
gsc
embeddable (game) scripting language in C
Stars: ✭ 25 (-37.5%)
Mutual labels:  coroutines, yield
Behaviac
behaviac is a framework of the game AI development, and it also can be used as a rapid game prototype design tool. behaviac supports the behavior tree, finite state machine and hierarchical task network(BT, FSM, HTN)
Stars: ✭ 2,294 (+5635%)
Mutual labels:  fsm, game-ai
snap
Snap Programming Language
Stars: ✭ 20 (-50%)
Mutual labels:  coroutines, asynchronous-programming
Tascalate Async Await
Async / Await asynchronous programming model for Java similar to the functionality available in C# 5. The implementation is based on continuations for Java (see my other projects).
Stars: ✭ 60 (+50%)
Mutual labels:  coroutines, asynchronous-programming
Unityfx.async
Asynchronous operations (promises) for Unity3d.
Stars: ✭ 143 (+257.5%)
Mutual labels:  coroutines, asynchronous-programming
async
Asynchronous programming for R -- async/await and generators/yield
Stars: ✭ 37 (-7.5%)
Mutual labels:  asynchronous-programming, yield
Concurrencpp
Modern concurrency for C++. Tasks, executors, timers and C++20 coroutines to rule them all
Stars: ✭ 340 (+750%)
Mutual labels:  coroutines, asynchronous-programming
pastafarian
A tiny event-based finite state machine
Stars: ✭ 20 (-50%)
Mutual labels:  fsms, fsm
Cppcoro
A library of C++ coroutine abstractions for the coroutines TS
Stars: ✭ 2,118 (+5195%)
Mutual labels:  coroutines, asynchronous-programming
UnityHFSM
A simple yet powerful class based hierarchical finite state machine for Unity3D
Stars: ✭ 243 (+507.5%)
Mutual labels:  fsm, coroutines
Htframework
Unity HTFramework, a rapid development framework of client to the unity.
Stars: ✭ 179 (+347.5%)
Mutual labels:  fsm
dbussy
Python binding for D-Bus using asyncio
Stars: ✭ 88 (+120%)
Mutual labels:  coroutines
Statemachine
A feature-rich, yet simple finite state machine (FSM) implementation in C
Stars: ✭ 168 (+320%)
Mutual labels:  fsm
Rosmaro
Visual automata-based programming in functional JavaScript
Stars: ✭ 176 (+340%)
Mutual labels:  fsm
pihut-xmas-asyncio
Demonstration driving The Pi Hut Raspberry Pi 3D Xmas tree using Python Asyncio
Stars: ✭ 15 (-62.5%)
Mutual labels:  coroutines
Nanostate
🚦- Small Finite State Machines
Stars: ✭ 151 (+277.5%)
Mutual labels:  fsm
Django Fsm
Django friendly finite state machine support
Stars: ✭ 1,898 (+4645%)
Mutual labels:  fsm
debugging-async-operations-in-nodejs
Example code to accompany my blog post on debugging async operations in Node.js.
Stars: ✭ 22 (-45%)
Mutual labels:  asynchronous-programming
LinkHub
LinkHub is a simple and effective link management application that can help you to easily manage your app with no ads!
Stars: ✭ 90 (+125%)
Mutual labels:  coroutines

LuaCSP

Communicating Sequential Processes in Lua: an extension.

LuaCSP library is a framework that allows you to create pseudo-concurrent programming language embeddable in your application.

Read the comprehensive documentation (an article) here.

See the introductional slides here.

Why?

  • The world is parallel. Typical simulation and robotics projects deal with many entities acting and interacting concurrently.

  • Event-oriented systems (command+callback, finite state machines - FSMs) can be implemented very efficiently but the resulting model logic is quite fragmented, as the scheduling and the evaluation of conditions are scattered throughout the event routines.

  • Callbacks and FSMs are way too low-level. FSMs are non-composable.

  • Asyncronous "push" multi-threaded systems are hard to program and understand. Whould be nice to orchestrate them at a higher level in synchronous way: back to natural control flow - stack and sequence are very powerful abstractions.

We should resolve these complexity and maintainability issues.

How?

We introduce next level you model in: embeddable Lua-based programming language with concurrent control-flow semantics.

So, LuaCSP:

  • Uses the Occam programming language ideas by Tony Hoare (the author of Quicksort).
  • Follows the principle of compositionality.
  • Introduces restrictions and rules, how entities behave and interact.
  • Extends Lua in standard way, includes it as a subset.

LuaCSP can be used under GNU General Public License (GPL), version 2.

http://www.gnu.org/licenses/old-licenses/gpl-2.0.html

Please, contact Alexey Baskakov if you want to use LuaCSP under any other license.

Copyright (c) 2012-2014 Alexey Baskakov. Feel free to contact the author for additional features, consulting and support.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].