A simple stack-based language for teaching programming concepts.
Project description
# Flang
A stack-based programming language for teaching basic concepts.
—
Flang is an overly-simple programming language.
It’s intended for teaching, but isn’t quite complete yet.
For now, this is the feature list.
[X] Number type: Int
[X] Number type: Float
[ ] Number type: Rational
[X] Function type
[X] String type (UTF-8)
[X] Human-readable error messages, designed for beginners.
[-] As much parse-time safety as is possible.
[ ] Loops? (This may not happen, as we can push functions to the stack)
[ ] Conditionals
[ ] Swap function, to rearrange the stack
[ ] Slice function, to more easily rearrange large parts of the stack
[X] Print function, including using special characters inside strings
[X] Exit function
[X] Reset function, to set the stack back to nothing
[X] Reverse function, to rearrange the stack
[X] Push function, for placing typed objects on the stack
[X] Add function, for mathematics or combining strings
[X] Take function, for mathematics
[X] Times function, for mathematics
[X] Divide function, for mathematics
[X] Pop function, for executing functions on the stack
[X] Peek function, for executing functions on the stack
[X] Read-Eval-Print-Loop
[X] Ability to execute a file
[X] Comments. Can be nested.
[ ] User functions.
[ ] String Library for working with strings.
Decisions to make:
[ ] Case insensitivity. Should Flang be case-sensitive or not?
[X] Indexing. Flang will be 1-indexed, to make new adoption easier.
[ ] User Functions. What kind of shape should these take? How could they be written?
[ ] Hash Table Type. Do we need it? How would it be used?
[ ] Mini-Stack Type. Do we need it? How would it be used? (Think Linked-List)
[ ] A library of tools for strings is needed. But, it needs to be defined.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Hashes for flang-0.0.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9967c5a6d9ca1491658035676729094e42d8acc85dee8f7d975326e082feb615 |
|
MD5 | 7a35192f5030d7450a371a010e8ce7c1 |
|
BLAKE2b-256 | 204996292629bdc46dbe492094ea6d3e79a8dac7117585eb600be017654da9fc |