Code Monkey home page Code Monkey logo

cornerstone's Introduction

Cornerstone

Cornerstone is a compiler framework. You can use it to build compilers easily. I'm using it to build the Backbone compiler easily.

TL;DR

curl https://github.com/kasrasadeghi/cornerstone/blob/master/installer.sh | bash
cornerstone/build.sh cornerstone/examples/hello_world
./hello_world

Install

Make sure you read installer.sh first.

curl https://github.com/kasrasadeghi/cornerstone/blob/master/installer.sh | bash

To not directory use master's installer, use this:

curl https://github.com/kasrasadeghi/cornerstone/blob/8745b545b2b30ce6683a6b1f077ecf9de4f10052/installer.sh | bash

They both clone cornerstone and cornerstone-cpp directly from master.

Dependencies

might need to install:

  • CMake
  • Clang, LLVM

probably already have:

  • GNU Make
  • Bash
  • A computer
  • Curl/wget

Backbone

Backbone is the backbone of the Cornerstone compiler framework. It's the language the compiler framework is written it. It's compiler is written using the framework. It's compiler is all you need to write to bootstrap yourself into the Cornerstone ecosystem. The cpp implementation of both a part of the Cornerstone compiler framework and the full Backbone compiler is provided in cornerstone-cpp and utilized in installer.sh.

Some examples of backbone are provided in examples/.

Further Reading

Repository Listing

This is the central repo for the Cornerstone compiler framework. It contains the implementation of Cornerstone in the Backbone programming language. Backbone is implemented using a bootstrapping implementation. The current reference bootstrapping implementation is cornerstone-cpp.

Other repos are listed below.

  • backbone, the original backbone compiler, written in C. This is the first project in the chronology of the cornerstone project.
  • cornerstone-cpp, the bootstrapping implementation of the Backbone programming language. Used to compile the Cornerstone project in this repository and currently used to run examples for the Backbone language.
  • backbone-tests, contains code for testing both the Backbone compiler implementation
  • ktodo, is a webkit-based todo viewer and manager.

Other partial implementations for exploratory work are listed below. These may be interesting for people looking for implementations in different languages or styles. Most implementations contain at least the parser, some have varying amounts of the compiler passes and compliance with the cpp implementation.

cornerstone's People

Contributors

hsalgi100 avatar kasrasadeghi avatar loganzartman 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.