Skip to content

haysch/ROOPLPP

 
 

Repository files navigation

ROOPLPP

ROOPLPP is an extension of the Reversible Object Oriented Programming Language++ (ROOPL++) by Martin Cservenka's ROOPLPPC repository.

ROOPLPP supports compilation, interpretation and program inversion of ROOPL++ source code.

The interpreter and program inverter is created as part of a university project. The goal was to improve the usability of ROOPL.

For ease of use when building/testing, see the included Makefile.

Requirements

ROOPLPP uses Stack to manage all dependencies and requirements.

Building

Simply invoke

stack build

which compiles an executable into the .stack-work folder

Usage

TODO To run the ROOPL interpreter, do the following

stack exec roopl input.rplpp

which interprets the input program and execute it directly.

Examples

To see usage examples, please refer to test/ for example programs.

Web Interface

The solution contains a web service for running the interpreter, inverter and for compiling without the need of having to build and install the dependencies.

The web interface, in web/, is based on the web interface for the Janus interpreter from the project jana. The web interface contains a different license, which can be found in the web/ folder.

To ease of setting up and ensuring reproducability of the web service, this solution contains a Dockerfile. The Dockerfile builds the ROOPLPP project and then copies the executable to the web interface, along with the test examples.

About

ROOPL++ reversible language

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Haskell 88.8%
  • JavaScript 6.9%
  • HTML 2.3%
  • PHP 0.9%
  • CSS 0.5%
  • Makefile 0.4%
  • Dockerfile 0.2%