All Projects → larsbrinkhoff → Lbforth

larsbrinkhoff / Lbforth

Licence: gpl-3.0
Self-hosting metacompiled Forth, bootstrapping from a few lines of C; targets Linux, Windows, ARM, RISC-V, 68000, PDP-11, asm.js.

Programming Languages

forth
179 projects

Projects that are alternatives of or similar to Lbforth

mdepx
MDEPX — A BSD-style RTOS
Stars: ✭ 17 (-94.2%)
Mutual labels:  arm, cortex-m, riscv, risc-v
Shecc
A self-hosting and educational C compiler
Stars: ✭ 286 (-2.39%)
Mutual labels:  compiler, arm, risc-v, riscv
Awesome Cpus
All CPU and MCU documentation in one place
Stars: ✭ 1,602 (+446.76%)
Mutual labels:  arm, risc-v, avr
Xpcc
DEPRECATED, use our successor library https://modm.io instead
Stars: ✭ 177 (-39.59%)
Mutual labels:  arm, avr, cortex-m
Ppci
A compiler for ARM, X86, MSP430, xtensa and more implemented in pure Python
Stars: ✭ 210 (-28.33%)
Mutual labels:  compiler, arm, riscv
interp
Interpreter experiment. Testing dispatch methods: Switching, Direct/Indirect Threaded Code, Tail-Calls and Inlining
Stars: ✭ 32 (-89.08%)
Mutual labels:  arm, interpreter, riscv
Reko
Reko is a binary decompiler.
Stars: ✭ 942 (+221.5%)
Mutual labels:  arm, x86, risc-v
Ataraxia
Simple and lightweight source-based multi-platform Linux distribution with musl libc.
Stars: ✭ 226 (-22.87%)
Mutual labels:  arm, x86, risc-v
Renode
Renode - Antmicro's virtual development framework for complex embedded systems
Stars: ✭ 525 (+79.18%)
Mutual labels:  arm, x86, risc-v
sdfirm
Ultra light weight small device firmware. Well architected to support MMU, SMP, low power idle. Can be run on various CPU architectures.
Stars: ✭ 2 (-99.32%)
Mutual labels:  avr, cortex-m, riscv
DemOS
Free, simple, extremely lightweight, stackless, cooperative, co-routine system (OS) for microcontrollers
Stars: ✭ 18 (-93.86%)
Mutual labels:  avr, arm, cortex-m
bx-github-ci
This tutorial provides one example on how a CI (Continuous Integration) workflow with the IAR Build Tools for Linux can be set up on GitHub. The IAR Build Tools on Linux are available for Arm, RISC-V and Renesas (RH850, RL78 and RX).
Stars: ✭ 20 (-93.17%)
Mutual labels:  arm, cortex-m, risc-v
Rt Thread
RT-Thread is an open source IoT operating system.
Stars: ✭ 6,466 (+2106.83%)
Mutual labels:  arm, risc-v, cortex-m
Platformio Core
PlatformIO is a professional collaborative platform for embedded development 👽 A place where Developers and Teams have true Freedom! No more vendor lock-in!
Stars: ✭ 5,539 (+1790.44%)
Mutual labels:  arm, risc-v, avr
Erika3
ERIKA Enterprise v3 RTOS
Stars: ✭ 98 (-66.55%)
Mutual labels:  arm, avr, cortex-m
Capstone
Capstone disassembly/disassembler framework: Core (Arm, Arm64, BPF, EVM, M68K, M680X, MOS65xx, Mips, PPC, RISCV, Sparc, SystemZ, TMS320C64x, Web Assembly, X86, X86_64, XCore) + bindings.
Stars: ✭ 5,374 (+1734.13%)
Mutual labels:  arm, x86, riscv
Unicorn
Unicorn CPU emulator framework (ARM, AArch64, M68K, Mips, Sparc, PowerPC, RiscV, X86)
Stars: ✭ 4,934 (+1583.96%)
Mutual labels:  arm, x86, riscv
CorePartition
Universal Cooperative Multithread Lib with real time Scheduler that was designed to work, virtually, into any modern micro controller or Microchip and, also, for user space applications for modern OS (Mac, Linux, Windows) or on FreeRTOS as well. Supports C and C++
Stars: ✭ 18 (-93.86%)
Mutual labels:  avr, arm, risc-v
Tock
A secure embedded operating system for microcontrollers
Stars: ✭ 3,258 (+1011.95%)
Mutual labels:  arm, risc-v, cortex-m
Maxine Vm
Maxine VM: A meta-circular research VM
Stars: ✭ 274 (-6.48%)
Mutual labels:  x86, risc-v, riscv

( Subset of Forth94 )

This is a self-hosted implementation of Forth, which can regenerate itself from Forth source code. The bootstrapping process uses a metacompiler written in Lisp to target a small inner interpreter and a handful of code words written in C. A new metacompiler written in Forth generates an x86 executable using using assembly language code words.

There are also ARM, RISC-V, Motorola 68000, PDP-11, and asm.js targets. There is a cross compiler for 6502, 8051, AVR, Cortex-M, MSP430, PDP-8, PIC, and STM8.

( Continuous integration )

The code is continuously built and tested in Linux, MacOS X, and Windows using several cloud-based continuous integration services. This is documented in build.md.

( Further reading )

INSTALL \ How to build.
doc \ Classic (and recent) texts not related to this project.
lib/README \ Information about libraries.
targets/README.md \ Information about current and possibly future targets.

( Implementation guide )

The Forth kernel contains everything needed to read and compile the rest of the system from source code, and not much else. It's composed of two parts: a target-specific file nucleus.fth containing all primitive CODE words, and a target-independent kernel.fth. These two are compiled by the metacompiler.

The C target nucleus used for bootstrapping has only twelve proper primitives. There is also the COLD word which compiles to main(), and four I/O words.

When the kernel starts, it jumps to the word called WARM. This is responsible for loading the rest of the system and entering the text interpreter. The first file loaded by WARM is core.fth, which implements the CORE wordset. Because the kernel only has a bare minimum of words, the start of core.fth looks a little strange.

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].