Skip to main content

Introduction

Humans need to convey their ideas or exchange ideas with other people. If you want to talk about mathematics, you need to know algebra, set theory, their theoroms, jargons among other things. Pseudocode is the language of algorithms.

In the Gen AI era, a powerful pseudocode can be the only programming language you need. Such flavors of pseudocode is better than both natural language and a specific programming language:

  • It allows you to participate in algorithm design. Pseudocode are actually the language of algorithms.
  • Does not have the limitations of a specific coding language.

One of the design principle of AlgoDraft is that its code should ideally be expressive enough in a way to be understandable with an AI system without any prior training.

It is the general way to express algorithmic ideas.

You might learn a couple of programming languages but you should "store" your algorithmic ideas in a language-agnostic way. And that is pseudocode.

It is worth mentioning that there is NOT a standard pseudocode that everyone agrees upon. Thus there are plenty of "dialects" of pseudocode out there.

You also might not be convinced by any of them. In that case you should have your own dialect.

AlgoDraft is the result of our effort to have the most formal-informal algorithm language: the most formal among all casual contracts and the most informal among all programming languages.

The primary goal of pseudocode is clear, unambiguous, and easy-to-write/read communication of logic.

With collaboration with Google Gemini, I (Megacodist) managed to outlined this pseudocode named AlgoDraft with file extension of .algod.

The role of AlgoDraft:

  1. The middle ground thoughts and algorithms.
  2. To structure unstructured thoughts.
  3. A shelter for strictly limiting formal syntaxes.
  4. Stepping stones to cross whitewater river of algorithm.
  5. A rest area during iterations of crafting algorithms

Characteristics

strongly-typed pseudocode

AlgoDrat tries to be a neutral syntax to "store" algorithmic ideas.

AlgoDraft must be limitation free as much as possible.

AlgoDraft must exhibit a taste of mathematics in mathematical expressions.

Its syntax and tone must be self-descriptive not cryptic.

AlgoDraft is all about concepts. Implementation is a concerns for programming language implementers.

AlgoDraft prefers logic clarity and conceptualization over implementation. It means AlgoDraft is a drawing board, you can sketch whatever you want. But when it comes to realization using state-of-the-art technologies, you might encounter difficulties or obstacles.

It must be as higher level as possible if we do not want to say the highest level. The high level in programming sense means free from any limiting technology, assuming everything is possible.

AlgoDraft tries to be the most formal though documentation and the least strict coding convention.

AlgoDraft prioritizes clarity and simplicity over strict syntax.

AlgoDraft's primary goal is clear communication of logic.

AlgoDraft must aim at a broad audience or focusing on procedural steps, It would lean towards $foo AS Integer because its explicitness prioritizes immediate understanding over symbolic elegance.

AlgoDraft has value-centric philosophy, that is a value is a mathematical value without any computer systems restrictions such as references, addresses, or identity. AlgoDraft does offer typing system but to emphasize what we have at our hands and what we can perform upon it rather than to reminiscent of programming languages.

AlgoDraft is all conceptual: a conceptual language to work with conceptual objects in the conceptual computer. This conceptuality helps not bogged down with limitations. AlgoDraft looks down to any implementation with intrinsic limitation. AlgoDraft is the conceptual assembly language of this conceptual computer.

Benefits

  1. Pseudocode is a way to think out of the box.
  2. It enables everyone to not limit your train of thoughts to any programming language or framework.
  3. It is possible to employ different levels of abstraction. For example, knowing a prefix in string manipulation is a substring starting from the beginning, we can have all of the following: Leading 🡨 Obtain