Skip to content

Steps moving forward

Jack Lloyd-Walters edited this page Jul 5, 2021 · 12 revisions

Lay out the groundwork for what needs to be done:

An open issue for this topic is also found here

Steps moving forward

Decide on a name, and file extension

We have python and .py, C and .c, Javascript and .js.

What does this language have?

Verbose, Verbose, Verbose

This language is based on the concept of plain english. Anyone should be able to read through and understand, irrespective of experience as some programing languages can be difficult to understand at face value:

ie: This example in Assembly:

        extern _printf
        global _main

        section .text
_main:
        mov  iter, 0
        mov  maxit, 5
loop1   nop
        push iter
        push format
        call _printf
        pop  iter
        inc  iter
        cmp  iter, maxit
        jl   loop1

format: db   '%d', 10, 0

Is roughly equivalent to this example in C:

#include <stdio.h>
for(int x = 0; x < 5; x++)
{
    printf(x)
}

Which is equivalent to this example in Python:

for x in range(0, 5):
    print(x)

Which could potentially be this, in VerboseLang:

start a counter at zero, then repeat the following five times:
    show the counter

Each layer of abstraction becomes easier to understand in plain english, at the cost of requiring a more complicated program to execute it (Assembly is executed directly by the CPU, while Python needs a C compiler, which itself needs an assembler, before it can be execute)

Decide on the syntax, and any included features, ie:

How does this language represent variables, loops, functions?

Does this language try to understand spelling mistakes, like in english?

Come up with a whole host of useful examples, and possibly their equivalent in python.

More technical details

Is this language Static or dynamic, Interpreted or compiled, etc...

Build stuff

Build the python scripts that will make this language work

And a testing suite that compares equivalent python scripts to this language, so we can ensure behaviour is correct. ie: if this language uses show hello world to print to the screen, then it should give the same result as python's print("hello world")

Clone this wiki locally