All Projects → nikodemus → foolang

nikodemus / foolang

Licence: MIT license
A toy programming language.

Programming Languages

smalltalk
420 projects
c
50402 projects - #5 most used programming language
rust
11053 projects
C++
36643 projects - #6 most used programming language
emacs lisp
2029 projects
shell
77523 projects
Makefile
30231 projects

Projects that are alternatives of or similar to foolang

BashClass
BashClass is an Object Oriented Programming language that compiles to BASH 4.4
Stars: ✭ 40 (+21.21%)
Mutual labels:  transpiler, object-oriented
Lbforth
Self-hosting metacompiled Forth, bootstrapping from a few lines of C; targets Linux, Windows, ARM, RISC-V, 68000, PDP-11, asm.js.
Stars: ✭ 293 (+787.88%)
Mutual labels:  interpreter, self-hosted
gifcc
Tiny c compiler
Stars: ✭ 51 (+54.55%)
Mutual labels:  self-hosted, toy-project
snap
Snap Programming Language
Stars: ✭ 20 (-39.39%)
Mutual labels:  interpreter, object-oriented
Magpie
🐦 Successor of my monkey Interpreter(support for class, linq, sql, net, http, fmt, json and A realtime syntax highlighting REPL).
Stars: ✭ 88 (+166.67%)
Mutual labels:  interpreter, object-oriented
sidef
A modern object-oriented programming language implemented in Perl.
Stars: ✭ 109 (+230.3%)
Mutual labels:  transpiler, object-oriented
js-slang
Implementations of the Source languages, which are small sublanguages of JavaScript designed for SICP JS
Stars: ✭ 41 (+24.24%)
Mutual labels:  interpreter, transpiler
bfpile
Optimizing Brainfuck compiler, transpiler and interpreter
Stars: ✭ 19 (-42.42%)
Mutual labels:  interpreter, transpiler
Gravity
Gravity Programming Language
Stars: ✭ 3,968 (+11924.24%)
Mutual labels:  interpreter, object-oriented
Monkey
Interpreter with support for class, linq, sql, net, http, fmt, json and A realtime syntax highlighting REPL.
Stars: ✭ 347 (+951.52%)
Mutual labels:  interpreter, object-oriented
Goby
Goby - Yet another programming language written in Go
Stars: ✭ 3,296 (+9887.88%)
Mutual labels:  interpreter, object-oriented
Kinx
Looks like JavaScript, feels like Ruby, and it is a script language fitting in C programmers.
Stars: ✭ 134 (+306.06%)
Mutual labels:  interpreter, object-oriented
Atto
An insanely simple self-hosted functional programming language
Stars: ✭ 119 (+260.61%)
Mutual labels:  interpreter, self-hosted
ruspea
A Lisp to be used as a Ruby Library (written in Ruby)
Stars: ✭ 20 (-39.39%)
Mutual labels:  toy-language, toy-project
transpiler
ABAP to JS transpiler
Stars: ✭ 57 (+72.73%)
Mutual labels:  transpiler
phptojs
PHP-to-JavaScript transpiler
Stars: ✭ 29 (-12.12%)
Mutual labels:  transpiler
SaorTech-cloud-services
A range of scripts to provision and configure open source cloud services.
Stars: ✭ 23 (-30.3%)
Mutual labels:  self-hosted
monkey-interpreter
Monkey programming language interpreter designed in "Writing An Interpreter In Go".
Stars: ✭ 26 (-21.21%)
Mutual labels:  interpreter
azcc
A toy C compiler, developed at seccamp2020.
Stars: ✭ 19 (-42.42%)
Mutual labels:  self-hosted
embed
An embeddable, tiny Forth interpreter with metacompiler.
Stars: ✭ 80 (+142.42%)
Mutual labels:  interpreter

Foolang

CI License: MIT

This is a toy language implemented by a single person—use for quiet enjoyment only.

See https://foolang.org for syntax, design notes, etc. This README is a smaller version of the main page there.

See CONTRIBUTING.md for information on how to contribute. You'll be the first. :)

About

Foolang is a Smalltalk-inspired language that, like all new languages, has somewhat optimistic aspirations:

  • Elegance and power of Smalltalk and Self: Smalltalk/Objective-C -like syntax, deep object orientation, late binding, interactive development.

  • Performance of C++: AOT compilation to native code, support for early binding so that the compiler can do its thing, low-level datatypes and operations when you need them for performance.

  • Fault tolerance of Erlang: Actor-model, isolated heaps, and supervisors. No undefined behaviour. No deadlocks, or memory errors or races.

  • Multiplatform Citizen of the Web: WASM is a supported target in addition to Windows, MacOS, Linux, and BSDs.

"Are we there yet?"

🤣

Syntax is still going to change, WASM isn't supported, BSDs might work but aren't tested, early binding support isn't quite there, compiler is a work-in-progress trivial transpiler, actors and continuations haven't even been started, there is no interactive development environment to speak of, etc.

Hello World

class Main {}
    direct method run: command in: system
        system output println: "Hello world"!
end

Repository Organization

In rough order of interest:

foo/       Foolang code, including prelude, self hosting, tests, and examples
src/       Rust code for the bootstrap interpreter
docs/      Markdown files for the https://foolang.org website
elisp/     Emacs mode for Foolang
c/         Scaffolding for transpiled-to-C code
tests/     Rust code for integration tests
ext/       External C code included in the runtime, like dtoa.c.
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].