Giter Site home page Giter Site logo

cogo's Introduction

Cogo

A bytecode compiler and a virtual machine for a subset of Go, written in Rust

// an example of a fully compiling program

package main

var (
    x uint8 = 255
    vec     = []int{45, 23, -7, int(x), 0, -102}
)

func main() {
    insertionSort(vec) // [-102 -7 0 23 45 255]
    println("Vector is sorted.")
}

func insertionSort(vec []int) {
    for i, n := 1, len(vec); i < n; i++ {
        j := i
        for j > 0 {
            if vec[j-1] > vec[j] {
                vec[j], vec[j-1] = vec[j-1], vec[j]
            }
            j--
        }
    }
}

Implemented Features

  • primitive types and type conversions
  • comparison, math, logic, bitwise operations
  • variables and constants
    • global and scoped
    • group declarations
    • multiple declarations and assignments
  • control flow
    • if statements
    • for statements (with breaks and continue)
    • switch statements (with fallthrough)
  • functions
    • recursive functions
    • variadic functions
    • multiple return values
  • partial support of builtin.go
  • arrays
  • slices (partially)
  • closures
  • range and for range loops

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.