Ogol is a derivative of the Logo programming language that is taking off in a different direction.
The Ogol language has dynamic scoping, tail call optimization. The inluded core libraries include turtle graphics with SVG output.
This project is organized into subcomponents:
- Execution
- Describes a weird combination AST, runtime, and high-level virtual machine
- OgoLang
- Contains a Parser converting Ogol to structures described in the Execution module.
- libOgol
- Core language procedures that require interacting with the runtime such as
output
,stop
, andmake
in theMeta
module. libOgol also includes aCoreLib
module with core utilities implemented in Ogol, such aslist
andrepeat
. Also included are Turtle Graphics with SVG output,
- Core language procedures that require interacting with the runtime such as
- OgolMath
- Core math functions
- ogol
- A basic CLI Ogol REPL with no Turtle Graphics
- Tooling Support
- An abstract definition of a parser and associated syntax coloring and error types supporting an editor. Previously, this supported a separate Logo implementation. Currently it remains independent to facilitate rapid creation and iteration of experimental tools, which is one of the main reasons I've made this toy language to begin with.