Git Product home page Git Product logo

vector-lang's Introduction

vector-lang

A vector based programming language

Layout

  • compiler/ - a Java based compiler for the language
  • examples/ - example programs in the language
  • vm/ - a C virtual machine for the language

How To Use

  1. Run make all to make the compiler and vm.
  2. Run java -jar build/compiler.jar {path/to/source.vec} {path/to/compile/to} (replace with real paths)
  3. Run build/vm {path/to/binary} (where path/to/binary is the path previously compiled to)

Optimizations

In order to do basic optimizations, run java -jar build/compiler.jar {path/to/source.vec} {path/to/compile/to} -o These include

  • replace operations on literals with result
  • place literal vector in static memory

Debugging

If the VM is run as build/vm {path/to/binary} --debug, then the VM will print the instruction and stack / heap dumps after each instruction

Features

  • C-Style Syntax
  • Variables
  • Functions
  • Indexing
  • Multidimensional Arrays
  • Typing
  • Printing

vector-lang's People

Contributors

ynewmark avatar

Stargazers

 avatar  avatar

Watchers

 avatar

vector-lang's Issues

Add Comments

The implementation would just be in the lexer

Add Static Variables

Make it so that constant variables whose value is known at compile time stored in the binary. Also add a binary header to support this.

Add Functions

  • Add function call and function body nodes
  • Enable typing functions
  • Make new linker
  • Add ret and arg opcodes

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.