All Projects → jmmv → Endbasic

jmmv / Endbasic

Licence: apache-2.0
BASIC environment with a REPL, a web interface, and RPi support written in Rust

Programming Languages

rust
11053 projects
language
365 projects
basic
69 projects

Projects that are alternatives of or similar to Endbasic

endbasic
BASIC environment with a REPL, a web interface, a graphical console, and RPi support written in Rust
Stars: ✭ 220 (+107.55%)
Mutual labels:  interpreter, gpio, repl, learn-to-code
Mico
Mico ("Monkey" in catalan). Monkey language implementation done with C++. https://interpreterbook.com/
Stars: ✭ 19 (-82.08%)
Mutual labels:  parser, interpreter, repl
Goawk
A POSIX-compliant AWK interpreter written in Go
Stars: ✭ 995 (+838.68%)
Mutual labels:  parser, interpreter
Onoff
GPIO access and interrupt detection with Node.js
Stars: ✭ 1,050 (+890.57%)
Mutual labels:  raspberry-pi, gpio
Swiftygpio
A Swift library for hardware projects on Linux/ARM boards with support for GPIOs/SPI/I2C/PWM/UART/1Wire.
Stars: ✭ 1,188 (+1020.75%)
Mutual labels:  raspberry-pi, gpio
Mappy
A functional programming language. Like LISP but focused around maps rather than lists.
Stars: ✭ 10 (-90.57%)
Mutual labels:  interpreter, repl
D Prolog
A Prolog implementation in D language
Stars: ✭ 20 (-81.13%)
Mutual labels:  parser, repl
Parsing With Haskell Parser Combinators
🔍 A step-by-step guide to parsing using Haskell parser combinators.
Stars: ✭ 72 (-32.08%)
Mutual labels:  parser, learn-to-code
Webassemblyjs
Toolchain for WebAssembly
Stars: ✭ 566 (+433.96%)
Mutual labels:  parser, interpreter
Rs Monkey Lang
Monkey Programming Language written in Rust.
Stars: ✭ 80 (-24.53%)
Mutual labels:  parser, interpreter
Mraa
Linux Library for low speed IO Communication in C with bindings for C++, Python, Node.js & Java. Supports generic io platforms, as well as Intel Edison, Intel Joule, Raspberry Pi and many more.
Stars: ✭ 1,220 (+1050.94%)
Mutual labels:  raspberry-pi, gpio
Gopi
Raspberry Pi Go Language Interface
Stars: ✭ 82 (-22.64%)
Mutual labels:  raspberry-pi, gpio
Pigpio
Fast GPIO, PWM, servo control, state change notification and interrupt handling with Node.js on the Raspberry Pi
Stars: ✭ 747 (+604.72%)
Mutual labels:  raspberry-pi, gpio
Cimonitor
Displays CI statuses on a dashboard and triggers fun modules representing the status!
Stars: ✭ 34 (-67.92%)
Mutual labels:  raspberry-pi, gpio
Bic
A C interpreter and API explorer.
Stars: ✭ 719 (+578.3%)
Mutual labels:  interpreter, repl
Littlelang
A little language interpreter written in Go
Stars: ✭ 56 (-47.17%)
Mutual labels:  parser, interpreter
Cutehmi
CuteHMI is an open-source HMI (Human Machine Interface) software written in C++ and QML, using Qt libraries as a framework. GitHub repository is a mirror!
Stars: ✭ 90 (-15.09%)
Mutual labels:  raspberry-pi, gpio
Rppal
A Rust library that provides access to the Raspberry Pi's GPIO, I2C, PWM, SPI and UART peripherals.
Stars: ✭ 463 (+336.79%)
Mutual labels:  raspberry-pi, gpio
Red
Red is a next-generation programming language strongly inspired by Rebol, but with a broader field of usage thanks to its native-code compiler, from system programming to high-level scripting and cross-platform reactive GUI, while providing modern support for concurrency, all in a zero-install, zero-config, single 1MB file!
Stars: ✭ 4,725 (+4357.55%)
Mutual labels:  interpreter, repl
Goto
Goto is an interpreted programming language written in go.
Stars: ✭ 79 (-25.47%)
Mutual labels:  interpreter, repl

The EndBASIC programming language

Build and test Health checks Deploy to staging Deploy to release

EndBASIC is an interpreter for a BASIC-like language and is inspired by Amstrad's Locomotive BASIC 1.1 and Microsoft's QuickBASIC 4.5. Like the former, EndBASIC intends to provide an interactive environment that seamlessly merges coding with immediate visual feedback. Like the latter, EndBASIC offers higher-level programming constructs and strong typing.

EndBASIC offers a simplified and restricted environment to learn the foundations of programming and focuses on features that can quickly reward the programmer. These features include things like a built-in text editor, commands to manipulate the screen, and commands to interact with the hardware of a Raspberry Pi. Implementing this kind of features has priority over others such as performance or a much richer language.

EndBASIC is written in Rust and runs both on the web and locally on a variety of operating systems and platforms, including macOS, Windows, and Linux.

EndBASIC is free software under the Apache 2.0 License.

The latest version of EndBASIC is 0.6.0 and was released on 2021-02-19.

Quick start on the web

Open EndBASIC in your browser by visiting: https://endbasic.jmmv.dev/

This should work on all major desktop browsers and on iOS. Unfortunately, there are known issues on Android at the moment.

The web interpreter runs fully locally: any programs you write are persisted in your browser's local storage and not uploaded to the cloud.

Quick start on your machine

Visit the release page to download prebuilt binaries. Once downloaded, unpack the archive and run the endbasic binary to get started.

Of course, you can also build and install EndBASIC from source by running the following command (assuming you have a Rust toolchain installed): cargo install endbasic.

Gallery

Blog posts: https://jmmv.dev/tags/endbasic/

Sample code:

  • cli/examples contains the EndBASIC demo programs. These are built into the interpreter and can be run with a command like LOAD "DEMO:TOUR": RUN.
  • core/examples and std/examples demonstrate how to embed the EndBASIC interpreter into your own programs.

A little demo of the interactive capabilities:

Video showing the first page of the tour and the guess demo

And a photo of an EndBASIC program controlling a Raspberry Pi:

Raspberry Pi with an EndBASIC program to control its GPIO

More information

The following documents provide more information:

Why EndBASIC?

EndBASIC started as part of my desire to teach programming to my own kids. I remember learning programming on an old Amstrad CPC 6128: the experience was unique in the sense that every command had immediate effect. Changing colors, drawing on the screen, or playing sounds were just a few keystrokes away after booting the computer, without the need to deal with separate editors and terminals. I've noticed a similar excitement in my kids when showing this to them via an emulator, so I thought I would replicate this in a more modern fashion. And here we are.

Because of this inspiration, EndBASIC's name stands for "E. and D.'s BASIC" following my kids first name initials.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].