Giter VIP home page Giter VIP logo

virtualmachine's Introduction

CakeLang

CakeLang is an assembly-like programming language that I have written as an educational experience and interesting side project for me.

The language is assembled into bytecode that can be executed by the CakeLang Virtual Machine, which is the runtime for executing CakeLang bytecode.

The CLVM is designed to be a stack based machine. At the moment it support only integers, and for now will only deal with 8 bit numbers.

Details

INSTRUCTIONS.md contains details about the CakeLang executable and contains a table of opcodes.

Building

Build the assembler by running make build_assembler_production and the runtime by running make build_runtime_production.

Test out the language yourself by assembling the test.cks file.

bake_cake test.cks

This will produce a CakeLang executable called "output.cke". Execute this file by running

cake output.cke

TODO's

Assembler

  • Create a basic lexer
  • Write the token parser
  • Compile parsed tokens to CakeLang bytecode
  • Implement basic control flow instructions

Runtime

  • Implement execution of basic integer arithmetic instructions.
  • Implement basic control flow instructions

virtualmachine's People

Contributors

aeybelv avatar

Watchers

 avatar

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.