Fix up readme
This commit is contained in:
parent
153e7977d3
commit
b82eebdeec
37
README.md
37
README.md
@ -1,19 +1,22 @@
|
|||||||
# Schala - a programming language meta-interpreter
|
# Schala - a programming language meta-interpreter
|
||||||
|
|
||||||
Schala is a Rust framework written to make it easy to create and experiment
|
Schala is a Rust framework written to make it easy to create and experiment
|
||||||
with toy programming languages. It provides a cross-language REPL and
|
with multipl toy programming languages. It provides a cross-language REPL and
|
||||||
provisions for tokenizing text, parsing tokens, evaluating an abstract syntax
|
provisions for tokenizing text, parsing tokens, evaluating an abstract syntax
|
||||||
tree, and other tasks that are common to all programming languages.
|
tree, and other tasks that are common to all programming languages, as well as sharing state
|
||||||
|
between multiple programming languages.
|
||||||
|
|
||||||
Schala is implemented as a Rust library `schala-repl`, which provides a
|
Schala is implemented as a Rust library `schala-repl`, which provides a
|
||||||
function `repl_main` meant to be used as the equivalent of main() for library
|
function `start_repl`, meant to be used as entry point into a common REPL or
|
||||||
users. This function parses command-line arguments and either runs an interactive
|
non-interactive environment. Clients are expected to invoke `start_repl` with a
|
||||||
REPL or interprets a program non-interactively.
|
vector of programming languages. Individual programming language
|
||||||
|
implementations are Rust types that implement the
|
||||||
|
`ProgrammingLanguageInterface` trait and store whatever persistent state is
|
||||||
|
relevant to that language.
|
||||||
|
|
||||||
Individual programming language implementations are Rust types that implement
|
Run schala with: `cargo run`. This will drop you into a REPL environment. Type
|
||||||
the `ProgrammingLanguageInterface` trait and store whatever persistent state is
|
`:help` for more information, or type in text in any supported programming
|
||||||
relevant to that language. The ability to share state between different
|
language (currently only schala-lang) to evaluate it in the REPL.
|
||||||
programming languages is in the works.
|
|
||||||
|
|
||||||
## History
|
## History
|
||||||
|
|
||||||
@ -33,18 +36,18 @@ creating a language name confusingly close to Scala. The naming scheme for
|
|||||||
languages implemented with the Schala meta-interpreter is Chrono Trigger
|
languages implemented with the Schala meta-interpreter is Chrono Trigger
|
||||||
characters.
|
characters.
|
||||||
|
|
||||||
Schala is incomplete alpha software and is not ready for public release.
|
Schala and languages implemented with it are incomplete alpha software and are
|
||||||
|
not ready for public release.
|
||||||
|
|
||||||
## Languages implemented using the meta-interpreter
|
## Languages implemented using the meta-interpreter
|
||||||
|
|
||||||
* The eponymous *Schala* language is an interpreted/compiled scripting langauge,
|
* The eponymous *Schala* language is a work-in-progress general purpose
|
||||||
designed to be relatively simple, but with a reasonably sophisticated type
|
programming language with static typing and algebraic data types. Its design
|
||||||
system.
|
goals include having a very straightforward implemenation and being syntactically
|
||||||
|
minimal.
|
||||||
|
|
||||||
* *Maaru* was the original Schala (since renamed to free up the name *Schala*
|
* *Maaru* is a very simple dynamically-typed scripting language, with the semantics
|
||||||
for the above language), a very simple dynamically-typed scripting language
|
that all runtime errors return a `null` value rather than fail.
|
||||||
such that all possible runtime errors result in null rather than program
|
|
||||||
failure.
|
|
||||||
|
|
||||||
* *Robo* is an experiment in creating a lazy, functional, strongly-typed language
|
* *Robo* is an experiment in creating a lazy, functional, strongly-typed language
|
||||||
much like Haskell
|
much like Haskell
|
||||||
|
Loading…
Reference in New Issue
Block a user