This is a Python-based online interpreter for the MATL programming language, a golfing language based on MATLAB and Octave. A live version of this application is hosted at matl.io.
The core of the application is the lightweight Python web framework,
Flask. Two-way communication between the JavaScript front-end and the
application is handled by SocketIO. MATL code and input arguments
are submitted to the server and celery assigns the task to one of many
available worker processes. Each worker process uses the
octave_kernel
library to communicate with an underlying
Octave instance to evaluate the provided code. All Octave
output from the process (including text and graphics) is streamed in real-time
back to the browser via SocketIO.
Technologies:
The easiest way to run the application locally is to use Docker
Compose which will start the web service, celery worker, redis
instance, and postgres database. Prior to running docker-compose
, be sure to
build the local docker image:
docker-compose up --build
You will then be able to access the application at http://localhost:5000.
- Ability to run multiple test cases sequentially
- Analytics of all MATL answers on the Programming Puzzle and Code Golf Stack Exchange site including top users, top questions, and common usage patterns.
We welcome contributions from any member of the user community. Free free to submit a pull request or open an issue with your contributions.
This software is licensed under the MIT License.