ProcASM (Procedures as State Machines)

A general purpose, visual programming language.

Try out the application in your web browser

About ProcASM

ProcASM is a general purpose, visual programming language that emphasizes the State Machine design pattern for creating software.

In ProcASM, State Machines are instances of Procedures and make up the entire foundation of this language. There are no Data Structures, Enumerations, Functions, etc.

Procedures are a series of Sub-Procedures connected through Signals.

Sub-Procedures are a series of tasks that create, modify, or delete data.

State Machines execute until they reach a yield task. Then, they store the requested variables and will resume at the point it previously stopped.

Instead of memorizing syntax and writing code, developers use a set of predefined tasks to implement algorithms. See documentation for more details.

Features

Key Features of ProcASM

Integrated Development Environment (IDE)

An feature-full IDE that execute fully in a web browser.

Debugger

Developers can execute Procedures and debug them using multiple features like:

  • Pausing and Resuming Execution
  • Viewing State Machines and their values
  • Updating State Machines' Values during Execution
  • Pausing execution at a point in the code (e.g. Breakpoints)
  • Pausing execution when a value is created/deleted/updated

Documentation Generator

Export your projects to Markdown/HTML for easy, readable documentation using descriptions you've supplied. This is a useful feature for developers who need to provide documentation of how their software functions to other developers, project managers, technical writer, etc.

Compare Diff

Projects are all stored in a project file. Developers can use ProcASM to compare two different project files and display the differences between the two of them. This is a useful feature for software projects that utilize version control.

C/C++ Transpiler

  • Fast and Memory Efficient with NO garbage collector NOR reference counting
  • Small runtime that involves using a Work Queue to handle concurrent state machine execution

Screenshots

×

Latest News About ProcASM

October 24, 2025

Version 1.2

Future Plans

Version 1.3

Adding database functionality to ProcASM. Rather than having to setup another database process and learn a new language like SQL, developers using ProcASM could use the database concept built into the language.

September 19, 2025

ProcASM 1.1.1

New update. User interface has been refactored to be more pleasant and easier to work with. Tutorial videos have been added to the web application for ease of use. Other numerous bug fixes and improvements.

Future Plans

Version 1.2

Add numerous features to improve ProcASM.

August 9, 2025

ProcASM 1.1.0

ProcASM has been updated to version 1.1.0. This new version changes the entire architecture. Before, users would have to download the application, with a native UI, to create and execute projects. Now, front-end and back-end of the the application has been separated. The front-end code is now all implemented in JavaScript to support running entirely in the web browser. The back-end is a web server that executes commands from the front-end to perform operations. There are more details about the architecture of ProcASM.

Currently, this free trial version of ProcASM is the only version available. This version has limited features compared to the full version.

Future Plans

January 02, 2026

Version 1.3

ProcASM has been updated to version 1.3.0. This new version overhauls the entire UI to be more user friendly. Before, all menus were put into windows that could be moved and minimized like in a typical window manager. This wasn't ideal for mobile users. So now, the UI keeps all menus in a side panel. The main content of the app will always display the graph to show current procedure. In addition, some internal changes were made to make the app more responsive. This included taking operations that were previously handled by the server, and moving them to the client using Web Assembly.

Future Plans

Version 1.4

While implementing a database concept was originally planned for this version, this idea has been scrapped. More details will be available in an upcoming blog post on the main site. However, there are still plans to add database like functionality using buckets. Buckets, in ProcASM, will be a new data type that will allow users to iterate on a container of elements in the order of a state and field of a state machine. Thus, users will get the benefits of a hash map and a database query with one data type.