← All repos

BPjs

Environment for running behavioral programs written in JavaScript.

behavioral-programmingengine
Browse cluster: Haskell tooling and libraries
714commits
21contributors
2languages

Tech stack & purpose

BPjs is a Java framework for executing and verifying behavioral programs—concurrent JavaScript programs (b-threads) that synchronize via events at designated sync points. The framework supports two modes: execution, which runs a single program trace, and verification, which uses depth-first search to explore all possible traces and detect violations. Built on the Rhino JavaScript engine (version 1.9.1) and written for Java 11, BPjs bridges JavaScript and Java through a proxy object exposed as `bp` in scripts, allowing b-threads to request, wait for, and block events while an event selection strategy determines which event fires next. The project originated at BGU (Bar-Ilan University, as indicated by the GitHub organization bThink-BGU).

Community & reference links

Languages

Java
86.7%
JavaScript
13.3%

Contributors