Category:Hopper
This programming language may be used to instruct a computer to perform a task.
Official website |
---|
Garbage collected: | Yes |
---|---|
Parameter passing methods: | By reference, By value |
Type safety: | Safe |
Type strength: | Strong |
Type expression: | Explicit |
Type checking: | Static |
|
Hopper is a Java-like programming language designed for microcontrollers. A curly-brace semi-colon syntax and bytecode virtual machine runtime implementations.
The Hopper Interactive Development Environment (IDE) runs on Windows, with outputs targetting Hopper Runtimes for
- 6502, an older 8bit microcontroller unit, (MCU).
- RP2040, a newer 32bit dual core Cortex M0+ MCU with General Purpose Input Output (GPIO) pins and modern internal peripherals, designed by the Raspberry Pi Foundation, (RPi).
- Pico
- Pico W
- Challenger RP2040 WiFi
- more to come
Github repository: https://github.com/sillycowvalley/Hopper
All Hopper Runtimes support a Hopper Monitor shell that implements feedback IO and a command language, the elements of which are Hopper programs. The Hopper Runtime virtual machine can also be used directly from the Hopper IDE on desktop PC, with the bootstrap Windows VM written in C# and the rest is self-hosted in Hopper. For the RP2040 at least.
The 6502 Runtime is bootstrapped from assembly language sources, for both first run hopper and firmware, then hosted in Hopper VM bytecode and the development toolchain.
Hopper is written in Hopper, with .hexe bytecode files in the Bin/ directory of the IDE setup.
- Preprocess, Compile, Optimize, Codegen, DASM (Disassembler)
- Translate (Hopper to C)
In support of the system shell and .cmd scripting, there is also: (non exhaustive list)
- show, shell, debug (more on this below), cd, cls, dir, del
- see help for more
The author has put early documentation efforts into a large set of YouTube videos, with the main page (and search) at:
https://www.youtube.com/@biggertigger
In development by Michael Cartwright, with working samples for MOS Technology 6502 and Raspberry Pi RP2040. There are various RunTime UF2's pre-built for quick starts. (UF2 is a hex file format for microcontroller firmware uploads):
- Pico, Pico W (with WiFi networking implemented), Challenger RP2040 Wifi
- as is, the Pico firmware will at least minimally work on a fair number of RPi RP2040 development boards
- along with drivers (written in Hopper) for many MCU related display devices and module peripherals.
Hopper Debugger
The debugger is an important part of Hopper development. TODO