qlova / ilang

"i" is a clear, concise programming language that is multi-lingual cross-platform, deterministic and resilient.
Artistic License 2.0
7 stars 1 forks source link
cross-platform language programming-language

The 'i' programming language

i

'i' is a hardware-agnostic cross-platform creative programming language in heavy development.

Hello World:

    software {
        print("Hello World")
    }

The Promise

'i' offers two promises:

Deterministic

Given equivalent inputs, a compiled program in 'i' will provide identical outputs on any platform/target.

Resilient

Given hardware with an infinite amount of memory, 'i' will never crash.

Design

'i' is a language which is meant to be clean and concise.

    //Open a file and print its contents.
    software {
        file = open("input.txt")
        loop {
            print(file())
            issues {
                exit
            }
        }
    }

Features

Documentation

There is now a reddit page! http://reddit.com/r/ilang

Documentation is minimal but take a look at the Wiki. The Rosetta Code page may be helpful. Flick me an email (splizard @ splizard dot com) if you have any questions.

DOWNLOAD AND INSTALL

Windows

There is an alpha release for windows, it must be used from the command line. You can find it at https://bitbucket.org/Splizard/ilang-release/downloads/it.exe

Linux/Mac or Android (Termux)

Here are the hacking instructions:

    go get -u github.com/qlova/ilang/src/it
    echo "The binary is now located in:"
    echo "$GOPATH/bin/it.exe"

Please be aware that many features are missing or incomplete in i!

Compilation

In order to compile run code written in i, place it in an isolated directory and run:

    cd /path/to/directory/
    it run

By default, the code is compiled into the Go programming language. (You will need Go installed to complete this process) Otherwise you can target other langauges by providing their extension as an argument eg.

    it run py
    it run java
    it run js

You can export a distributable binary of the code by using the export command.

    it export py
    it export java
    it export js

A full set of supported languages can be found here