compiler-tutorial - Incremental Compiler paper by Abdulaziz Ghuloum, using Chez scheme, Nasm, x86_64 for OSX

  •        62

Incremental Compiler paper by Abdulaziz Ghuloum, using Chez scheme, Nasm, x86_64 for OSX

https://github.com/carld/compiler-tutorial

Tags
Implementation
License
Platform

   




Related Projects

Scheme in One Day (SIOD)

  •    C

Scheme in One Day (SIOD) the small scheme interpreter with the conservative garbage collector. Even though this is an interpreter it comes with a compiler that will convert Scheme language source files into windows EXE files using a classic bootstrap trampoline technique. Thi...

femtolisp - a lightweight, robust, scheme-like lisp implementation

  •    Scheme

This project began with an attempt to write the fastest lisp interpreter I could in under 1000 lines of C. It snowballed from there as I kept trying to see if I could add powerful features with minimal code. At the same time I assembled a library of some of my favorite C code (by myself and others) to use as a base for a standard library. This includes ios, a replacement for parts of C's stdio that adds more flexible features. ...it is fast, ranking among the fastest non-native-compiled Scheme implementations. It achieves this level of speed even though many primitives (e.g. filter and for-each) are written in the language instead of C. femtolisp uses a bytecode compiler and VM, with the compiler written in femtolisp. Bytecode is first-class, can be printed and read, and is "human readable" (the representation is a string of normal low-ASCII characters).

inc - an incremental approach to compiler construction

  •    Scheme

Step-by-step development of a Scheme-to-x86 compiler, based on Abdulaziz Ghuloum's paper, An Incremental Approach to Compiler Construction, and extended draft tutorial, Compilers: Backend to Frontend and Back to Front Again. The CPS conversion is based on Matt Might's web article, How to compile with continuations.

nanopass-framework - The new nanopass framework; an embedded DSL for writing compilers in Scheme

  •    Scheme

This repositiory contains an R6RS version of the Nanopass Compiler Infrastructure described in [1, 2, 3, 4], along with the beginnings of a test compiler for the library and the rough start to a users guide. The nanopass framework currently supports Chez Scheme, Vicare Scheme, and Ikarus Scheme. For more information on using the pre-compile binaries, see the README.md file in the lib directory.

schism - A self-hosting Scheme to WebAssembly compiler

  •    Scheme

Schism is an experimental self-hosting compiler from a subset of R6RS Scheme to WebAssembly. This is not an officially supported Google product.


picrin - lightweight scheme interpreter

  •    Scheme

Picrin is a lightweight R7RS scheme implementation written in pure C89. It contains a reasonably fast VM, an improved hygienic macro system, useful contribution libraries, and simple but powerful C interface. Currently picrin is hosted on Github. You can freely send a bug report or pull-request, and fork the repository.

heist - Scheme in as little Ruby and as much Scheme as possible

  •    Ruby

Heist is a Scheme interpreter written in Ruby. It provides an executable for running Scheme code directly, and also allows the interpreter to be easily embedded in, and extended using, Ruby applications. It nominally targets R5RS, though is likely to be more liberal than other implementations. Scheme is a dialect of Lisp, one of the oldest programming languages still in use today. Lisp was the first language to implement conditionals, first class functions (lambdas), closures and recursion. Some Lisp features, such as closures and macros, have yet to penetrate mainstream languages and it has been observed that mainstream languages are slowly converging on the feature set of Lisp.

Sunlit World Scheme

  •    

Sunlit World Scheme is a nearly R4RS-compliant Scheme implementation that supports threading, TCP, UDP, cryptography, and simple graphics and windowing. It's designed to be easy to extend. It also has an embedded compiler (for a different language) that produces MSIL.

Minty Scheme

  •    

An optimising compiler for the R5RS Scheme language, written in R5RS Scheme, compiling to ANSI C, supporting Unix-like platforms, performing whole-program analysis and online partial evaluation.

luna scheme

  •    CSharp

Luna is a Scheme compiler and run time environment for .NET - it is written in C# and Scheme, and provides a useful superset of the R5RS standard.

Gleam Scheme Interpreter

  •    Java

Gleam is a simple Scheme language interpreter written in Java. Project goals: to support the discovery of Scheme for beginners, simplicity, R5RS compliance, full integration with the Java platform (call Java from Scheme and vice versa).

Pilo Visual Tools for Scheme lt;PVTSgt;

  •    

Pilo Visual Tools for Scheme (Pvts) is a basic interpreter with visual tools for Scheme (LISP). Written in Java, PVTS has an interpreter and three visualization modules: a global environment viewer, a function call viewer, and a data structure viewer.

TinyScheme

  •    C

TinyScheme is a Scheme interpreter that can execute Scheme code but is also suitable for embedding in programs. The goal is to keep the interpreter small while providing as much compatability with Scheme standards as possible.

Subs Scheme Lisp Interpreter

  •    C++

Subs is a Scheme Lisp interpreter written in C++. It is currently incomplete and is primarily intended to help the author understand Scheme and programming language design. It may be efficient since many structures are implemented in native code.

BRL

  •    Java

A language designed for server-side WWW-based applications, particularly database applications. It is based on Scheme, which makes the syntax extremely simple yet powerful. This implementation is a Java Servlet using the Kawa Scheme compiler.

red - Red is a next-generation programming language strongly inspired by Rebol, but with a broader field of usage thanks to its native-code compiler, from system programming to high-level scripting and cross-platform reactive GUI, while providing modern support for concurrency, all in a zero-install, zero-config, single 1MB file!

  •    Red

Red is a new programming language strongly inspired by Rebol, but with a broader field of usage thanks to its native-code compiler, from system programming to high-level scripting, while providing modern support for concurrency and multi-core CPUs. Red has its own complete cross-platform toolchain, featuring two compilers, an interpreter and a linker, not depending on any third-party library, except for a Rebol2 interpreter, required during the bootstrap phase. Once complete, Red will be self-hosted.

biwascheme - Scheme interpreter written in JavaScript

  •    Javascript

BiwaScheme is a Scheme interpreter written in JavaScript. Works with web browsers (including mobile devices) and Node.js.

Open Source Compiler, Optimizer and Interpreter for a C-Like Language

  •    

Here, you can download an open-source compiler, optimizer and multi-core code generator for a C-like language and modify it in order to meet your requirements.

ngraph - nGraph is an open source C++ library, compiler and runtime for Deep Learning frameworks

  •    C++

Welcome to the open-source repository for the Intel® nGraph™ Library. Our code base provides a Compiler and runtime suite of tools (APIs) designed to give developers maximum flexibility for their software design, allowing them to create or customize a scalable solution using any framework while also avoiding device-level hardware lock-in that is so common with many AI vendors. A neural network model compiled with nGraph can run on any of our currently-supported backends, and it will be able to run on any backends we support in the future with minimal disruption to your model. With nGraph, you can co-evolve your software and hardware's capabilities to stay at the forefront of your industry. The nGraph Compiler is Intel's graph compiler for Artificial Neural Networks. Documentation in this repo describes how you can program any framework to run training and inference computations on a variety of Backends including Intel® Architecture Processors (CPUs), Intel® Nervana™ Neural Network Processors (NNPs), cuDNN-compatible graphics cards (GPUs), custom VPUs like Movidius, and many others. The default CPU Backend also provides an interactive Interpreter mode that can be used to zero in on a DL model and create custom nGraph optimizations that can be used to further accelerate training or inference, in whatever scenario you need.

Try Scheme

  •    Javascript

Try Scheme is a Scheme interpreter that runs in your web browser. No installation. Just click and go. Full support for continuations and syntax-rules macros!