All Projects → kzh → Lyca

kzh / Lyca

programming language compiler w/ llvm

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Lyca

Ldc
The LLVM-based D Compiler.
Stars: ✭ 937 (+10311.11%)
Mutual labels:  compiler, llvm
Scala Native
Your favorite language gets closer to bare metal.
Stars: ✭ 4,053 (+44933.33%)
Mutual labels:  compiler, llvm
Sericum
(Toy) Compiler Infrastructure influenced by LLVM written in Rust
Stars: ✭ 366 (+3966.67%)
Mutual labels:  compiler, llvm
Staticscript
🎉🎉🎉 A new statically typed programming language, syntactically like TypeScript.
Stars: ✭ 337 (+3644.44%)
Mutual labels:  compiler, llvm
Llvmswift
A Swift wrapper for the LLVM C API (version 9.0.1)
Stars: ✭ 641 (+7022.22%)
Mutual labels:  compiler, llvm
Bfc
An industrial-grade brainfuck compiler
Stars: ✭ 340 (+3677.78%)
Mutual labels:  compiler, llvm
Bytecoder
Rich Domain Model for JVM Bytecode and Framework to interpret and transpile it.
Stars: ✭ 401 (+4355.56%)
Mutual labels:  compiler, llvm
Ts Llvm
TypeScript to LLVM compiler (abandoned)
Stars: ✭ 230 (+2455.56%)
Mutual labels:  compiler, llvm
Rhine Ml
🏞 an OCaml compiler for an untyped lisp
Stars: ✭ 621 (+6800%)
Mutual labels:  compiler, llvm
Langcraft
Compiler from LLVM IR to Minecraft datapacks.
Stars: ✭ 495 (+5400%)
Mutual labels:  compiler, llvm
Soll
SOLL is a new compiler for generate Ewasm from solidity and yul. See a demo here: https://asciinema.org/a/ezJqNLicn5fya02zwu4VXIo8a
Stars: ✭ 329 (+3555.56%)
Mutual labels:  compiler, llvm
Numba
NumPy aware dynamic Python compiler using LLVM
Stars: ✭ 7,090 (+78677.78%)
Mutual labels:  compiler, llvm
Speedy.js
Accelerate JavaScript Applications by Compiling to WebAssembly
Stars: ✭ 300 (+3233.33%)
Mutual labels:  compiler, llvm
Cfl
a Compileable statically typed Functional programming Language
Stars: ✭ 7 (-22.22%)
Mutual labels:  compiler, llvm
Deepc
vendor independent deep learning library, compiler and inference framework microcomputers and micro-controllers
Stars: ✭ 260 (+2788.89%)
Mutual labels:  compiler, llvm
Nlvm
LLVM-based compiler for the Nim language
Stars: ✭ 380 (+4122.22%)
Mutual labels:  compiler, llvm
Nxdk
The cross-platform, open-source SDK to develop for original Xbox: *new* xdk
Stars: ✭ 200 (+2122.22%)
Mutual labels:  compiler, llvm
Llvm
[MERGED UPSTREAM] AVR backend for the LLVM compiler library
Stars: ✭ 222 (+2366.67%)
Mutual labels:  compiler, llvm
Enzyme
High-performance automatic differentiation of LLVM.
Stars: ✭ 418 (+4544.44%)
Mutual labels:  compiler, llvm
Gocaml
🐫 Practical statically typed functional programming language implementation with Go and LLVM
Stars: ✭ 653 (+7155.56%)
Mutual labels:  compiler, llvm

lyca

Lyca is a programming language that I am currently working on. The main goal for this project is to help me learn compiler design. Being in a very early development stage, Lyca is full of bugs, but here is a demo of some of the functioning features in the form of a Linked List implementation in Lyca.

func () > main > () {
    List list = make List < ();
    
    list.append(make Node < (10));
    list.append(make Node < (4));
    list.append(make Node < (3));

    list.print();
}

tmpl List {
    Node head;
    int length;

    constructor < () {
        this.length = 0;
    }

    func (Node node) > append > () {
        if (this.length == 0) {
            this.head = node;
        } else {
            Node last = this.get(this.length - 1);
            last.next = node;
        }

        this.length = this.length + 1;
    }

    func (int depth) > get > (Node) {
        Node node = this.head;
        for (; depth != 0; depth = depth - 1) {
            node = node.next;
        }

        return node;
    }

    func () > print > () {
        Node node = this.head;
        for (int i = 0; i != this.length; i = i + 1) {
            printf("Index: %d Value: %d \n", i, node.value);
            node = node.next;
        }
    }
}

tmpl Node {
    Node next;
    int value;

    constructor < (int val) {
        this.value = val;
    }
}

alt tag

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].