Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

flang-0.0.0-py3.4.egg (7.7 kB view hashes)

Uploaded Source

flang-0.0.0-py3-none-any.whl (6.4 kB view hashes)

Uploaded Python 3

flang-0.0.0-py2.py3-none-any.whl (6.4 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page