nikodemus / foolang

A toy programming language.
https://foolang.org
MIT License
37 stars 0 forks source link
compiler foo foolang interpreter language metacircular metacircular-interpreter object-oriented programming-language rust self-hosted toy-language toy-project transpiled-language transpiler

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:

"Are we there yet?"

:rofl:

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.