forego - A Forth implementation in Go ===================================== Why? ---- For ego. This is me learning the language. Both of them. Someone once said that everybody who learns Forth and likes it thinks "oh nice, that'd be cool to write a Forth VM". This happened to me, but I had no actual reason to do it until I started searching for a Go learning project. And? ---- Lessons learned: writing a VM without performance constrains or a crude assembler is easy, wrapping your head around multiple run times of Forth compiling words is less so. So What Is It? -------------- Forego is a naive implementation of a Forth virtual machine in Go that I hacked up in a month or so. Here are its main features and misfeatures: The Good: - The compiler, assembler, parser, main loop and disassembler are now written in Forth. It has (my understanding of) the full CORE wordset and then some, like: .( .r u.r :noname compile, parse parse-name refill source-id to value within \ pick roll ?do again case endcase of endof .s ? dump words ;code ahead bye state /string cmove cmove> sliteral ...and those are written in Forth. Type "words" at the prompt to see the whole list. The Ambiguous: - It has no file support and no interaction with the outside world except key and emit, so untrusted code will have to overflow a buffer in xterm or something to exploit your box. The Bad: - The VM does not resemble real hardware at all. - The "kernel" ("machine" code) is hardcoded in the package. - It's probably damn slow. - The README is incomplete.
Forth virtual machine in Go
Owner
Vadim Vygonets
Similar Resources
Virtual Operating System Using Golang
Virtual Operating System Virtual Operating System Using Golang And Fyne Installation 1.Install Go 2.Install Gcc 3.Install Fyne Using This Command:- g
OperatingSys-GO - A Virtual Operating System made by using GOLANG and FYNE
Operating-System This is a Virtual Operating System made by using GOLANG and FYN
A basic Forth parser written in Go.
GoForth ======= I got really interested in Forth and thus I began making a parser, of sorts, in Go. Though I don't intend for it to catch on, it's st
A stack oriented esoteric programming language inspired by poetry and forth
paperStack A stack oriented esoteric programming language inspired by poetry and forth What is paperStack A stack oriented language An esoteric progra
T# Programming Language. Something like Porth, Forth but written in Go. Stack-oriented programming language.
The T# Programming Language WARNING! THIS LANGUAGE IS A WORK IN PROGRESS! ANYTHING CAN CHANGE AT ANY MOMENT WITHOUT ANY NOTICE! Something like Forth a
Virtual-Operating-System - Virtual Operating System Using Golang And Fyne Implemented Gallery app
Virtual Operating System Virtual Operating System Using Golang And Fyne Implemen
An embeddable implementation of the Ngaro Virtual Machine for Go programs
Ngaro Go Overview This is an embeddable Go implementation of the Ngaro Virtual Machine. This repository contains the embeddable virtual machine, a rud
A bytecode-based virtual machine to implement scripting/filtering support in your golang project.
eval-filter Implementation Scripting Facilities Types Built-In Functions Conditionals Loops Functions Case/Switch Use Cases Security Denial of service
A customisable virtual machine written in Go
== About GoLightly == GoLightly is a lightweight virtual machine library implemented in Go, designed for flexibility and reuse. Traditionally popular
A simple virtual machine - compiler & interpreter - written in golang
go.vm Installation Build without Go Modules (Go before 1.11) Build with Go Modules (Go 1.11 or higher) Usage Opcodes Notes The compiler The interprete
An Experimental Wasm Virtual Machine for Gophers
gasm A minimal implementation of v1 WASM spec compatible virtual machine purely written in go. The vm can be embedded in your go program without any d
A bytecode-based virtual machine to implement scripting/filtering support in your golang project.
eval-filter Implementation Scripting Facilities Types Built-In Functions Conditionals Loops Functions Case/Switch Use Cases Security Denial of service
Expr – a tiny stack-based virtual machine written in Go
Expr – a tiny stack-based virtual machine written in Go The executor is designed to interpret a simple expression language and it's useful in delegati
A Cloud Native Buildpack that contributes SDKMAN and uses it to install dependencies like the Java Virtual Machine
gcr.io/paketo-buildpacks/sdkman A Cloud Native Buildpack that contributes SDKMAN and uses it to install dependencies like the Java Virtual Machine. Be
Weave Ignite is an open source Virtual Machine (VM) manager with a container UX and built-in GitOps management.
Weave Ignite is an open source Virtual Machine (VM) manager with a container UX and built-in GitOps management.
Exploratory implementation of the Eva virtual machine
Eva Exploratory implementation of the Eva virtual machine in pure Go. Eva is a simple virtual machine designed for educational use. This is not intend
WIP Go implementation of CSIRAC as a virtual machine.
CSIRAC A work-in-progress Go implementation of CSIRAC, as described in The Last of the First - CSIRAC: Australia's First Computer. The intention is to
Mimic - a eBPF virtual machine and emulator which runs in userspace
Mimic is a eBPF virtual machine and emulator which runs in userspace. Mimic attempts to 'mimic' the eBPF machinery we find in the Linux kernel, as well as other possible implementation/environments.
Pluggable, extensible virtual file system for Go
vfs Package vfs provides a pluggable, extensible, and opinionated set of file system functionality for Go across a number of file system types such as
Related tags
T# Programming Language. Something like Porth, Forth but written in Go. Stack-oriented programming language.
The T# Programming Language WARNING! THIS LANGUAGE IS A WORK IN PROGRESS! ANYTHING CAN CHANGE AT ANY MOMENT WITHOUT ANY NOTICE! Something like Forth a
Virtual-Operating-System - Virtual Operating System Using Golang And Fyne Implemented Gallery app
Virtual Operating System Virtual Operating System Using Golang And Fyne Implemen
A bytecode-based virtual machine to implement scripting/filtering support in your golang project.
eval-filter Implementation Scripting Facilities Types Built-In Functions Conditionals Loops Functions Case/Switch Use Cases Security Denial of service
A customisable virtual machine written in Go
== About GoLightly == GoLightly is a lightweight virtual machine library implemented in Go, designed for flexibility and reuse. Traditionally popular
A simple virtual machine - compiler & interpreter - written in golang
go.vm Installation Build without Go Modules (Go before 1.11) Build with Go Modules (Go 1.11 or higher) Usage Opcodes Notes The compiler The interprete
Expr – a tiny stack-based virtual machine written in Go
Expr – a tiny stack-based virtual machine written in Go The executor is designed to interpret a simple expression language and it's useful in delegati
Weave Ignite is an open source Virtual Machine (VM) manager with a container UX and built-in GitOps management.
Weave Ignite is an open source Virtual Machine (VM) manager with a container UX and built-in GitOps management.
Create virtual machines and run Linux-based operating systems in Go using Apple Virtualization.framework.
vz - Go binding with Apple Virtualization.framework vz provides the power of the Apple Virtualization.framework in Go.
This is a Virtual Operating System made by using GOLANG and FYNE.
Virtual-Operating-System This is a Virtual Operating System made by using GOLANG and FYNE. Hello! All In this project I have made a virtual Operating
Lima: Linux virtual machines (on macOS, in most cases)
Linux virtual machines, on macOS (aka "Linux-on-Mac", "macOS subsystem for Linux", "containerd for Mac", unofficially)