DEV Community

Mohammad Amin Khakzadan
Mohammad Amin Khakzadan

Posted on

1 2

What is your comment about this programming language syntax?

I'm working on a new programming language. I wrote some parts of the compiler. One time in java and one time in C and here is the source code.

I want to show you a piece of the language syntax, so comment on me about this syntax. I think you can understand the code is what about, but if you have a question ask me.

# comments

#- multi-line comments

builtins types:
    int                     123
    float                   1.23
    char                    'a'
    string                  "Hi"
    [int, char]             [10, 'a']            <- an array of one int and one
                                                    char
    array[int]              [10, 20, 30]         <- an array of ints
    {a: int, b: char}       {a = 10, b = 'a'}    <- a named tuple or structure
    function                def (a) = (a)        <- a lambda or function
    boolean                 true || false
    null                    null
-#

# any value type can be stored in a
var a = 100
a = "Hi"
a = 1.23

type null_string = null | string

# c can be null or a string
var c: null_string = null
c = "Hi"

def type uint = (self ?= int) && (self >= 0)

# the following line will throw a compiler error
# var b: uint = -100

# immutable variable
const d = 10

# lazy evaluation variable
let e = c + " World"

c = "Hello"
var f = e       # f == "Hello World"

let g = c

g = "Goodbye"
f = e           # f == "Goodbye World"


def range(const start: int, const end: int; const step: int = 1): array[int]
    var i = start

    if step >= 0
        let not_end = (i < end)
    if step < 0
        let not_end = (i > end)
    end

    while not_end
        yield i
        i += step
    end
end

def sum(var *args: int): int
    var sum: int = 0
    for var i = 0; i < args.len; i += 1
        sum += args[i]
    end
    return sum
end

def main(args: array[string])

    # print sum of 1 to 500
    print(sum(*range(1, 500)))

end

Heroku

This site is built on Heroku

Join the ranks of developers at Salesforce, Airbase, DEV, and more who deploy their mission critical applications on Heroku. Sign up today and launch your first app!

Get Started

Top comments (1)

Collapse
 
edh_developer profile image
edh_developer

What problem is this language trying to solve?

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay