Skip to content

PseudoLang-Software-Foundation/Pseudolang

Repository files navigation

Pseudolang Logo

Build and Test Pseudolang Version Nightly Releases

Welcome to Pseudolang! Pseudolang is a simple programming language written in Rust, inspired by College Board's Pseudocode.

This project aims to fully support 64-bit Windows, Linux, and WebAssembly (WASI Package, Raw WASM, WASM Bindgen).

Releases

Goto nightly releases and download the binary for your operating system.

There is also an installer you can download in releases.

Use

To use the compiled versions, run the executable and pass two parameters as the input and output file (pseudolang programs end with .psl). Ex: fplc run main.psl

If fplc is not added to path or environment variables, make sure to execute the binary specifically.

Free Pseudolang Compiler = fplc (like gcc :)

Compiling

In order to compile the project yourself, you will need to have rust installed.

  • Install rust, and make sure you have it added to PATH.

  • Clone the repository git clone https://github.com/Pseudolang-Software-Foundation/PseudoLang.git

    • To build release, you will need bash, cross (cargo install cross), and docker. Then run ./build_release.sh. The binaries for each operating system will be in the release folder.
    • To build debug, simply run cargo build. The binary will be in the target/debug folder.
  • In order to run the unit tests, simply run cargo test.

  • For the NSIS installer, just compile ./installer/pseudolang.nsi

Examples

Pseudolang.md contains a full explanation of Collegeboard's Pseudocode and many features specific to PseudoLang.

The file src/tests/mod.rs also contains various unit tests (examples of code) for Pseudolang.

Todo

  • Debian package
  • GitHub issue template
  • Proper documentation
Functionality
  • Dictionaries
  • Better error handling (line, column)
  • Networking
  • File IO
  • System integration (terminal commands, process management, environment variables)
  • Library support (remote procedures)
  • Graphics
  • Meta programming
  • Multithreading
  • Bundled compiler
Misc
  • Testing for INPUT and SLEEP (mocking framework)
  • More escape characters

Issues

Feel free to make issues for any bugs or trouble that you experience with this! Especially since this is new, and there are going to be a lot of them!

Contributing

We welcome contributions! If there are any bugs, or particularly pointing out limitations in Pseudolang.md at the bottom, or adding things from the todo list, please make a pull request!

License

This project is licensed under the MIT License - see the LICENSE file file for details.