'Ola AH' Programming Language Randezvous System.


this is a prototype attempt,

i had 'Ada Randezvous' at Uni when we learned concurrency, but no real work experience so far.

semantics might change in future, syntax will be added later.

Why Tasks & Randezvous' ?

in Real World, 'tasks' are 'interleaved actions', not 'objects that can be run'.

this semantics allows 'actions' to be considered in 'verb' terms, as something that occurs with time.

better 'process model' means 'better understanding' & the 'finer control' over 'concurrent program execution'.


a 'method object' can have one or more of 'tasks units', a 'program units' that are executed concurrently with the rest of an 'Ola AH' program.

task is similar to a thread, as for example in Java Threads.

a method can consist of many of a threads.


task can have 'entries', 'points in execution' where task communicates with outside, accepts requests with input, accepts requests for output ... as in a client-server model, where server is task with an entry, client is a calling task.

if the called task is not ready to service a call on an entry immediately, the calling task waits in a (FIFO) queue associated with the entry.

this interaction between calling task and called task is known as a 'rendezvous'.

Acceptance Types.

a wait on entries can be 'selective', that is, when a task opens for many entries waiting to interact with any of these,

a wait on a selective entry can be 'guarded', when an opening state of each of these entries depends on boolean precondiction(s) that can change as the time flies,

a wait on entry can be 'conditional', after a specified delay another of instructions are executed, acceptance state is left, for a while at least.

see also, if You wish or need, ... : 'Ola AH' Programming Language, Petri Nets & Randezvous Concurrency, an Idiom.


'Ola AH' Programming Language's Interpreter in Java.

Current State.

... it's a pilot project, a 'proof of concept' is already done ... real work will start since April 2017, starting from scratch if neccessary.

for now i prefer to be open for ideas, for new features, etc.

Differencies from Compiler.

since it's written in java, there will be:
- garbage collection, instead of manual memory deallocation,
- lack of 'sizeof' instruction,
- perhaps more.

Overall Interpreter's Architecture.

'Ola AH' Programming Language interpreter consists of two parts:
- Parser,
- Instruction Executer.

Parser consists of two parts:
- Tokenizer,
- Abstract Syntax Tree Builder.

Probably later there will be code parts responsible for optimization.

Parser - Tokenizer.

it's incomplete, but 'a design part' done already.

i've decided to do parser manually instead of using automated tool ... code is prettier that way.

higher quality, better code understanding, easier & faster changes in future.

Ola AH interpreter's parser,

a snapshot version of 0.0.1-alpha-15.

an Expression Tree,
in simplest form,

a snapshot version of 0.0.1-alpha-38.


'Ola AH' Programming Language interpreter's unfinished code in Java,
version 0.0.1-alpha-38 is available for download.

warning: code is very ugly as i experiment with code.

to be redesigned & rewritten later.

instructions parsed & executed,

in a version of 0.0.1-alpha-21.

see also, if You wish or need, ... : 'Ola AH' Programming Language, 'Ola AH' Programming Language Syntax.