Skip to main content

A simple 2D programming language.

Project description

Symbolang

a 2-dimensional, interpreted, programming language, inspired by befunge

intro

The main concept of a Symbolang program is the 'pointer'. the pointer is the imaginary cursor that executes each character one by one.

Variable scope

This is a stack based language, (at least for now)

There aren't really any variables, but you are able to push and pop values to and from the stack.

Syntax

Symbol Function
> Makes the pointer start moving left
< Makes the pointer start moving right
^ Makes the pointer start moving up
v Makes the pointer start moving down
? Random pointer direction
_ horizontal if statement; pops value from stack, if value is 0, set direction to right, if it's anything else set it to left.
| horizontal if statement; pops value from stack, if value is 0, set direction to down, if it's anything else set it to up.
" toggles stringmode. if on, every character's ascii value will be pushed to the stack.
(single space) go to the next character
, pops value from stack and prints ascii character corresponding to that value.
. pops value from stack and prints it.
1-9 pushes corresponding value to stack.
/, *, +, or - pop two values from stack (a, then b), and then performs the operation on a and b and pushes result to stack.
~ gets a number or character from user, and pushes it to the stack.
Table of functions

Example Program

>" !dlroW ,olleH"v
^ ,,,,,,,,,,,,,, <

Use

You've read about this amazing program, but how do you use it? first, install pip or similar. then, you can run pip install symbolang to install it.

then, place your .symb file into the directory, and in your terminal, type symbolang [argument] [your-file-here].

Arguments

if you run it with --debug, it will print debug info. docs on what it displays coming soon!

Changelog

  • v0.1.0
    • Made a debug mode. I feel like this is the first real version
  • v0.1.2
    • HUGE quality of life upgrade :)
    • programs usually looked like this: > 0 . 0 <, but now they look like this: >0.0<
  • v0.1.3
    • now this can be run as an actual CLI app.

Roadmap

  • At some point, it would be AMAZING if this had an interpreter in a compiled language (instead of being interpreted to be interpreted).
  • full befunge clone coming soon.
    • (and more after that)
  • up and down movement of cursor <- completed
  • interactive REPL would be awesome
  • a tulip port

Project details


Download files

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

Source Distribution

symbolang-0.1.4.tar.gz (4.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

symbolang-0.1.4-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file symbolang-0.1.4.tar.gz.

File metadata

  • Download URL: symbolang-0.1.4.tar.gz
  • Upload date:
  • Size: 4.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.14

File hashes

Hashes for symbolang-0.1.4.tar.gz
Algorithm Hash digest
SHA256 e589a89c94a7abf4d2135696854913272d8dfe84162ae61a2fd574cdb1cce728
MD5 5b9a9a89d71a2dd877a13f8d225405da
BLAKE2b-256 dd45542dfbbee280c6625d7e0ad1cd5edf7a2e14255c5ae9836a3f5fccf4e71e

See more details on using hashes here.

File details

Details for the file symbolang-0.1.4-py3-none-any.whl.

File metadata

  • Download URL: symbolang-0.1.4-py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.14

File hashes

Hashes for symbolang-0.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 f8b43d96131c3d8385f33f3cbb12328a1b5129cc5124b9b3cec35d5dce964ef8
MD5 96347bcc04905a16b7e62d68e01a75b5
BLAKE2b-256 9d5c7910bb6a324ead18ff0d9b3a7cb31f9ab5f3f2ada10218e934606dd4dbfb

See more details on using hashes here.

Supported by

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