Essentials-of-Compilation
cinder
Essentials-of-Compilation | cinder | |
---|---|---|
22 | 43 | |
1,217 | 3,379 | |
4.7% | 0.6% | |
6.2 | 9.4 | |
about 1 month ago | 7 days ago | |
TeX | Python | |
- | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Essentials-of-Compilation
-
Request for comments on my toy lisp implementation.
if you like compilers you should this book out https://github.com/IUCompilerCourse/Essentials-of-Compilation.
-
You and me Anon, you and me
Essentials of compilation by Dr. Siek. There’s a GitHub repo. Just navigate to the releases and you will find a pdf https://github.com/IUCompilerCourse/Essentials-of-Compilation/releases/tag/python-MIT-press. This book is really good and it’s practical. There’s a lot of code and it guides you along the way. So it’s a great book to self study. To supplement this you can buy Engineering a Compiler by cooper. This is more comprehensive but there’s no code in this book, only pseudo code. Start with essentials of compilation my friend. It will teach you everything you need.
-
The dragon compiler book (2nd edition) is a great book
You can try this book if you want something that came out this year https://github.com/IUCompilerCourse/Essentials-of-Compilatio.... Go to the releases to either get the racket version or python version. But I mean cmu uses the dragon book second edition for a graduate level compiler optimization class.
-
Why Learn Compilers
This paper is my favorite introduction to compilers, it's short and hands-on: http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf
There is a book-length expansion of this paper that goes into more detail: https://github.com/IUCompilerCourse/Essentials-of-Compilatio...
-
Can we create a thread for some of the best materials on CS available online?
Introduction to Computing"
https://dcic-world.org/
# Programming Language Theory:
"Programming Languages: Application and Interpretation"
https://www.plai.org/
# Compilation:
"Essentials of Compilation: An Incremental Approach in Python"
https://github.com/IUCompilerCourse/Essentials-of-Compilatio...
# Database Systems:
"CMU: Intro to Database Systems"
https://15445.courses.cs.cmu.edu/
"CMU: Advanced Database Systems"
https://15721.courses.cs.cmu.edu/
# Calculus I/II & Real Analysis
"A Course in Calculus and Real Analysis"
https://link.springer.com/book/10.1007/978-3-030-01400-1
"A Course in Multivariable Calculus and Analysis"
https://link.springer.com/book/10.1007/978-1-4419-1621-1
# Linear Algebra & ML:
* A Series of books by prof. Joe Suzuki without using any external library for the implementations *
"Statistical Learning with Math and Python"
https://link.springer.com/book/10.1007/978-981-15-7877-9
"Sparse Estimation with Math and Python"
https://link.springer.com/book/10.1007/978-981-16-1438-5
"Kernel Methods for Machine Learning with Math and Python"
https://link.springer.com/book/10.1007/978-981-19-0401-1
# Discrete Mathematics:
"CMU 21-228 Discrete Mathematics (prof. Poh-Shen Loh"
https://www.math.cmu.edu/~ploh/2021-228.shtml
# Cryptography:
"Serious Cryptography: A Practical Introduction to Modern Encryption"
https://nostarch.com/seriouscrypto
# Problem Solving:
"Math 235: Mathematical Problem Solving"
https://www.cip.ifi.lmu.de/~grinberg/t/20f/
-
A Normal Form transformation of syntax tree
This compiler book explains monadic normal form which it’s anf but not 100 percent because of the difference in how let expressions are represented. https://github.com/IUCompilerCourse/Essentials-of-Compilation
-
As a self taught developer how should I go about getting a job?
I learned to write compilers by reading "Essentials of Compilation." You can find a free pdf in the book's repo https://github.com/IUCompilerCourse/Essentials-of-Compilation/releases/tag/python-MIT-press. The book is published my MIT Press although right now the racket version is out. the python version is coming out soon. the link that I just shared is for the python version. This is a great book . I recommend it
-
Hey guys, have any of you tried creating your own language using Python? I'm interested in giving it a shot and was wondering if anyone has any tips or resources to recommend. Thanks in advance!
One of the best (free/open source) books for learning how to write a compiler is Essentials of Compilation. It comes in two flavors: Racket and Python. I'm less familiar with the Python version, but it might be what you're looking for.
-
Best book on writing an optimizing compiler (inlining, types, abstract interpretation)?
Not sure about specifics, but maybe https://github.com/IUCompilerCourse/Essentials-of-Compilation is worth a look?
-
Why you should take a compiler course
There are pdfs in the releases section: Python - https://github.com/IUCompilerCourse/Essentials-of-Compilation/releases/download/python-MIT-press/book.pdf
cinder
-
Meta Used Monolithic Architecture to Ship Threads in Only Five Months
Meta is actually contributing directly to upstream cpython. If you really wanted to, the internal fork is also open source: https://github.com/facebookincubator/cinder
- Meta pledges Three-Year sponsorship for Python if GIL removal is accepted
- Back end of Meta Threads is built with Python 3.10 with some interesting tweaks
-
Lessons from Mojo for PHP 10+ ?
Just one example: last year Meta open-sourced Cinder, which powers Instagram and provides sizeable speedups compared to CPython.
- Python true static typing
-
Best book on writing an optimizing compiler (inlining, types, abstract interpretation)?
I used to work on the Cinder JIT and can help document any passes you find interesting or confusing.
-
Python-based compiler achieves orders-of-magnitude speedups
You might enjoy Cinder then. It's based on CPython so it is nearly 100% compatible.
https://github.com/facebookincubator/cinder/
Disclaimer: I used to work on it.
-
beartype: It has documentation now. It only took two years, my last hair follicle, precious sanity points (SPs), and working with Sphinx. Don't be like @leycec. Go hard on documentation early.
I think Cinder's Static Python, which also performs runtime type checking, is more ambitious. Though it's not production ready yet.
-
If there’s gonna be a Python 4.0 one day, what’s a breaking change you’d like to see? Let’s explore the ideas you have that can make Python even better!
Here's a fork that implements that https://github.com/facebookincubator/cinder - it might be nice to one day get that up streamed but obviously it'll be controversial and it certainly needs more time to bake. Hopefully at some point we can make it a pip installable extension though.
-
Is it time for Python to have a statically-typed, compiled, fast superset?
The other thing that was interesting to me, was the potential of type annotations to help make for a faster, safer experience on the compiler end of things. One example is seen in Meta’s Cinder project, on the docs it explains how typing can be used to reduce the number of steps for the compiler ([cinder/static_python.rst at cinder/3.8 · facebookincubator/cinder · GitHub](https://github.com/facebookincubator/cinder/blob/cinder/3.8/CinderDoc/static_python.rst)), making it more effective.
What are some alternatives?
chip8-book - An introduction to Chip-8 emulation using Rust
faster-cpython - How to make CPython faster.
chip8
Pyjion - Pyjion - A JIT for Python based upon CoreCLR
v - Simple, fast, safe, compiled language for developing maintainable software. Compiles itself in <1s with zero library dependencies. Supports automatic C => V translation. https://vlang.io
Pyjion
Essentials-of-Compilatio
graalpython - A Python 3 implementation built on GraalVM
linear - Low-dimensional linear algebra primitives for Haskell.
MonkeyType - A Python library that generates static type annotations by collecting runtime types
ray-tracing - It's taking me longer than one weekend
hpy - HPy: a better API for Python