Coder Social home page Coder Social logo

super-tdd-compiler's Introduction

Understanding the Super Tiny Compiler

This is just a simple learning project to understand THE SUPER TINY COMPILER! With the added benefit of unit tests.

Check the website

See the inner-working (guts) of the compiler and how it works! Repo here.

Original project

Please check out the original here! NOW!


Run tests

All tests are found inside the tests folder.

To run, choose one of the compiler components from below:

  • node tests\tokenizer.spec.js
  • node tests\parser.spec.js
  • node tests\traverser.spec.js
  • node tests\transformer.spec.js
  • node tests\code-generator.spec.js

Test arrangement is quite simple and uses npm assert I'm would like to add karma & jasmine support, sometime in the future.

Test importance

I'm sure you would like to understand this compiler mombo-jumbo as fast as possible and then feel smart for the rest of the day!

So why not try this: take each compiler component and go through each test first! I believe it's a thorough and bite-sized approach to learning a fairly complex concept!


Supported languages

Currently the only language syntax which is supported is: LISP -> C.

It only supports method names with numbers and strings as paramteres

Why should I care? V2.0

In this version I'll try and take a more TDD approach (a very light one). This may mean it will be easier for you to understand how the compiler works, step by step (test by test ;) ).

However I believe you do have to go through the tiny-super-compiler code at least once before having a look here!

Mi casa es su casa

Feel free to improve on the project however you see fit! You have my full trust :)!

Credits

All credits for the super tiny compiler go to: the man, the myth, the legend James Kyle

super-tdd-compiler's People

Contributors

bogthe avatar

Watchers

James Cloos avatar  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.