Ixion programming language
Find a file
2025-06-24 10:59:55 +03:00
.github/workflows Create maven-publish.yml 2025-03-20 15:31:58 +03:00
assets delete some resources 2024-12-10 20:05:01 +03:00
docs upd docs, runner 2025-06-02 16:51:54 +03:00
editors add traits 2025-04-29 15:08:09 +03:00
examples add traits 2025-04-29 15:08:09 +03:00
META-INF small runner upd 2024-12-14 18:24:25 +03:00
src/main/java test runner 2025-06-02 20:44:55 +05:00
std upd docs, runner 2025-06-02 16:51:54 +03:00
tests updated nullable test. 2025-06-02 20:51:12 +05:00
.gitattributes add gitattr 2024-12-10 19:40:11 +03:00
.gitignore add res 2024-11-06 18:24:30 +03:00
LICENSE Initial commit 2024-11-05 17:02:22 +03:00
pom.xml oops 2025-05-27 23:37:10 +03:00
README.md Update README.md 2025-06-24 10:59:55 +03:00
test.ix test runner 2025-06-02 20:44:55 +05:00

The Ixion Programming Language

Multi-paradigm compiled programming language for the jvm platform.

Warning

The project is currently being rewritten from scratch. When it is 80% ready, it will be immediately uploaded to this repository

Important

Before installing the language, install jdk.

greeting in Ixion:

def greeting(steps : int){
    const langs = new String[]{
        "Hello, world!",
        "¡Hola Mundo!",
        "Γειά σου Κόσμε!",
        "Привет, мир!",
        "こんにちは世界!"
    };
    for(var i = 0; i < steps; i+=1){
        println(langs[i]);
    }
}

def main => greeting(2);

Note

The language contains nullable types and non-nullable types.

def main(args: String[]) {
   var a : String?;
   var b : String = "Hello";
}

java ArrayList example:

using java.util.ArrayList;

def main(args: String[]){
    var list = new ArrayList();

    list.add("Hello");
    list.add("World");

    for(var i = 0; i < list.size(); i++){
        println(list.get(i));
    }
}

Note

The language supports OOP.

Inheritance example:

class Human {
   var name: String = "";

   this(name: String) {
      this.name = name;
   }
   override def toString => "My name is " + name + ".";

}

class Man ext Human {
    var age : int;

    this(age: int) : ("Artyom") {
       this.age = age;
    }

    override def toString : String {
        var name : String = super.toString();
        return name + " My age is " + age + ".";
    }

}

def main {
   var simpleMan: Human = new Man(16);
   println(simpleMan);
}

Contributions

We will review and help with all reasonable pull requests as long as the guidelines below are met.

  • The license header must be applied to all java source code files.
  • IDE or system-related files should be added to the .gitignore, never committed in pull requests.
  • In general, check existing code to make sure your code matches relatively close to the code already in the project.
  • Favour readability over compactness.
  • If you need help, check out the Google Java Style Guide for a reference.