Git Product home page Git Product logo

jepeto's Introduction

Jepeto

A compiler for Jepeto programming language.

What is Jepeto?

Jepeto is designed for educational purposes at ECE college, University of Tehran; it is inspired by the ML programming language, and follows a declarative coding style.

Sample Program in Jepeto

main : k(155, true, "str");

func f(a, b) : {
    print([a, b, a, b, b, b][b] * -2);
    return 13;
}

func g() : {
    return f;
}

func h():{
    return void;
}

func r():{
    return ()->{print("PLC_1400");return "CLP";};
}

func k(arg1, arg2, arg3) :{
    h();
    g()(arg1, 2);
    if (~arg2):
        return arg3;
    else:
        print((a, b)->{print(a);print(f(20, 1));return 1;}(arg3, arg3));

    r()();
    return "true";
}

Sample Output

-------------------Generating Class Files-------------------
Generated: Fptr.class
Generated: List.class
Generated: Main.class

---------------------------Output---------------------------
-310
str
-2
13
1
PLC_1400

How we Implemented This

The implementation was broken into 4 phases:

  1. Grammar specification
  2. Name analysis
  3. Type analysis and inference
  4. Translation to bytecode

The compiler itself is written in the lovely environment of Java!

With Pain!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.