ebuchman / pi2go

Compile pi calculus expressions to golang

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

pi2go

Compile pi calculus expressions to golang

We use a syncronous pi calculus with parametric recursion. The grammar is taken from SLMC

lower = ['a'-'z']
upper = ['A'-'Z']
letter = lower | upper
digit  = ['0'-'9']
name = lower (letter | digit | '_')*
namelist := 	epsilon | name (',' name)*
prefix 	:=	name!(namelist)
	|	name?(namelist)
	|	[name = name]
	|	[name != name]
	| 	tau
process := 	0
	|	process | process
	| 	'new' namelist 'in' process
	|	prefix.process
	| 	select{ prefix.process (';' prefix.process)* }
	|	CapsID(namelist)
	| 	( process )
cmd := 'defproc' CapsID(namelist) = process ['and' CapsID(namelist) = process]*;

Roadmap

  • parse multiple lines (sequence of processes)
  • compiler

About

Compile pi calculus expressions to golang

License:GNU General Public License v3.0


Languages

Language:Go 100.0%