Code Monkey home page Code Monkey logo

compilers-course's Introduction

Write a Compiler : May 4-8, 2020

Hello! This is the course project repo for the "Write a Compiler" course. This project will serve as the central point of discussion, code sharing, debugging, and other matters related to the compiler project.

Although each person will work on their own compiler, it is requested that all participants work from this central project, but in a separate branch. You'll perform these setup steps:

bash % git clone https://github.com/dabeaz/compilers_2020_05
bash % cd compilers_2020_05
bash % git checkout -b yourname
bash % git push -u origin yourname

There are a couple of thought on this approach. First, it makes it easier for me to look at your code and answer questions (you can point me at your code, raise an issue, etc.). It also makes it easier for everyone else to look at your code and to get ideas. Writing a compiler is difficult. Everyone is going to have different ideas about the implementation, testing, and other matters. By having all of the code in one place and in different branches, it will be better.

I will also be using the repo to commit materials, solutions, and other things as the course nears and during the course.

Finally, the repo serves as a good historical record for everything that happened during the course after the fact.

Best, Dave

Important Note

Everything in this repo is subject to change up until the course start date. Free feel to look around now, but you may want to check back from time to time to see what's new.

Live Session

The course is conducted live from 09:30 to 17:30 US Central Time on Zoom. The meeting will be open about 30 minutes prior to the starttime. Meeting details are as follows:

Topic: Write a Compiler, May 4-8, 2020. Time: 09:00 - 18:00 US CDT (UTC-05:00).

Join Zoom Meeting https://us02web.zoom.us/j/82940491798?pwd=U05FZ1FIZHhTeWNWbitkWlNOOFk3Zz09

Meeting ID: 829 4049 1798. Password: 016509.

Course Requirements

Here are some of the basic software requirements:

  • Python 3.6 or newer.
  • llvmlite
  • Clang C/C++ compiler.

One easy way to get llvmlite is to install the Anaconda Python distribution. If you intend to write a compiler in a different language than Python, you will need to investigate the availability of tools for generating LLVM. There is probably some library similar to llvmlite.

Resources

Warmup work

If you're looking to get started, there are some warmup exercises posted on the wiki. Reposted here.

Videos

Short video lectures will introduce important parts of the project. They will be posted here about a day in advance (an email notification will also be sent).

Live Session Recordings

Video recordings of live sessions will be posted here.

Day 1

Day 2

Day 3

Day 4

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.