All Projects → macournoyer → Tinyrb

macournoyer / Tinyrb

A tiny subset of Ruby with a Lua'esc VM

Programming Languages

c
50402 projects - #5 most used programming language
language
365 projects
bytecode
52 projects

Projects that are alternatives of or similar to Tinyrb

Radon
A scripting language.
Stars: ✭ 22 (-95.13%)
Mutual labels:  compiler, parser, vm
Saltwater
A C compiler written in Rust, with a focus on good error messages.
Stars: ✭ 219 (-51.55%)
Mutual labels:  compiler, parser
Customasm
💻 An assembler for custom, user-defined instruction sets! https://hlorenzi.github.io/customasm/web/
Stars: ✭ 211 (-53.32%)
Mutual labels:  compiler, vm
Pyverilog
Python-based Hardware Design Processing Toolkit for Verilog HDL
Stars: ✭ 267 (-40.93%)
Mutual labels:  compiler, parser
Tiny Compiler
A tiny compiler for a language featuring LL(2) with Lexer, Parser, ASM-like codegen and VM. Complex enough to give you a flavour of how the "real" thing works whilst not being a mere toy example
Stars: ✭ 425 (-5.97%)
Mutual labels:  compiler, parser
Cub
The Cub Programming Language
Stars: ✭ 198 (-56.19%)
Mutual labels:  compiler, parser
Smlvm
Smallrepo Virtual Machine
Stars: ✭ 265 (-41.37%)
Mutual labels:  compiler, vm
Lioness
The Lioness Programming Language
Stars: ✭ 155 (-65.71%)
Mutual labels:  compiler, parser
Ark
ArkScript is a small, fast, functional and scripting language for C++ projects
Stars: ✭ 312 (-30.97%)
Mutual labels:  compiler, vm
Kgt
BNF wrangling and railroad diagrams
Stars: ✭ 312 (-30.97%)
Mutual labels:  compiler, parser
Craftinginterpreters
Repository for the book "Crafting Interpreters"
Stars: ✭ 4,298 (+850.88%)
Mutual labels:  compiler, parser
Tengo
A fast script language for Go
Stars: ✭ 2,528 (+459.29%)
Mutual labels:  compiler, vm
Ape
Ape Programming Language
Stars: ✭ 195 (-56.86%)
Mutual labels:  compiler, vm
Xdpw
XD Pascal: A small embeddable self-hosting Pascal compiler for Windows. Supports Go-style methods and interfaces
Stars: ✭ 199 (-55.97%)
Mutual labels:  compiler, parser
Snapdragon
snapdragon is an extremely pluggable, powerful and easy-to-use parser-renderer factory.
Stars: ✭ 180 (-60.18%)
Mutual labels:  compiler, parser
Mtail
extract internal monitoring data from application logs for collection in a timeseries database
Stars: ✭ 3,028 (+569.91%)
Mutual labels:  compiler, vm
Ratel Core
High performance JavaScript to JavaScript compiler with a Rust core
Stars: ✭ 367 (-18.81%)
Mutual labels:  compiler, parser
Forge
A lightweight, elegant scripting language with built-in Rust-FFI.
Stars: ✭ 153 (-66.15%)
Mutual labels:  compiler, parser
Quickjs
QuickJS是一个小型并且可嵌入的Javascript引擎,它支持ES2020规范,包括模块,异步生成器和代理器。
Stars: ✭ 2,199 (+386.5%)
Mutual labels:  compiler, vm
Exprtk
C++ Mathematical Expression Parsing And Evaluation Library
Stars: ✭ 301 (-33.41%)
Mutual labels:  compiler, parser

= tinyrb

A tiny subset of Ruby with a Lua'esc VM.

Everything in TinyRb should run in the big Ruby. (except bugs and things that don't comply to the principle of least surprise.) But not everything in the big Ruby should run in tinyrb.

This is a work in progress and not usable for "real things" yet. See TODO for a couple of those things that need to be done.

http://github.com/macournoyer/tinyrb #tinyrb on freenode

== Install

make make test # optional ./tinyrb -h

== What WON'T be in tinyrb (tiny patches accepted)

  • for
  • redo, retry
  • if ... do, while ... do, etc
  • alias keyword (see alias_method)
  • undef keyword (see undefine_method)
  • throw, catch
  • Alternate string delimiters (%q, %Q, etc.)
  • heredoc strings
  • Parallel assignment (a, b = 1, 2)
  • :: as . (Class::new)
  • Character code literal (?c)
  • protected, private, public (yes everything is public, mind you)
  • ObjectSpace
  • $SAFE (but Sandbox mode at the VM level)
  • ... others to come for sure.

== Credits Inspired by:

kvec.h and khash.h (c) 2008, by Attractive Chaos [email protected] GC Copyright 1988, 1989 Hans-J. Boehm, Alan J. Demers PCRE Copyright (c) 1997-2008 University of Cambridge released under BSD license

tinyrb is Copyright (c) Marc-Andre Cournoyer [email protected] and released under Ruby license

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