549 lines
94 KiB
Plaintext
549 lines
94 KiB
Plaintext
[38;5;12m [39m[38;2;255;187;0m[1m[4m![0m[38;5;14m[1m[4mAWESOME COMPILERS[0m[38;2;255;187;0m[1m[4m (img/awesome-compilers.png)[0m
|
||
|
||
[38;5;12mA curated list of awesome resources, learning materials, tools, frameworks, platforms, technologies and source code projects in the field of Compilers, Interpreters and Runtimes. This list has a bias towards education.[39m
|
||
|
||
[38;5;14m[1m![0m[38;5;14m[1m (https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)[0m[38;5;12m (https://github.com/sindresorhus/awesome)[39m
|
||
|
||
[38;5;238m――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――[39m
|
||
|
||
[38;2;255;187;0m[4mContents[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLearning[0m[38;5;12m (#learning)[39m
|
||
[48;5;235m[38;5;249m+ **Books** (#books)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m * **General Overview** (#general-overview)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m * **Introductory** (#introductory)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m * **Advanced** (#advanced)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m+ **Papers** (#papers)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m * **Researchers and Institutes** (#researchers-and-institutes)[49m[39m
|
||
[48;5;235m[38;5;249m+ **Specifications** (#specifications)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m+ **Courses** (#courses)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m+ **Talks and Conferences** (#talks-and-conferences)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m * **Channels** (#channels)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m * **Videos** (#videos)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m+ **Articles** (#articles)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m+ **Tutorials** (#tutorials)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m+ **Community Discussions** (#community-discussions)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mTools and Frameworks[0m[38;5;12m (#tools-and-frameworks)[39m
|
||
[48;5;235m[38;5;249m+ **Language Agnostic** (#language-agnostic)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m+ **C / C++** (#c--c)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m+ **CLR** (#clr)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m+ **D** (#d)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m+ **Go** (#go)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m+ **Graal** (#graal)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m+ **Haskell** (#haskell)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m+ **JavaScript** (#javascript)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m+ **JVM** (#jvm)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m+ **Kotlin** (#kotlin)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m+ **Python** (#python)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m * **Lists of Python Parsing Tools** (#lists-of-python-parsing-tools)[49m[39m
|
||
[48;5;235m[38;5;249m+ **Rust** (#rust)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCompilers and Interpreters[0m[38;5;12m (#compilers-and-interpreters)[39m
|
||
[48;5;235m[38;5;249m+ **Serious Projects** (#serious-projects)[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m+ **Educational and Toy Projects** (#educational-and-toy-projects)[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mRuntimes and VMs[0m[38;5;12m (#runtimes-and-vms)[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBlogs[0m[38;5;12m (#blogs)[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCommunities[0m[38;5;12m (#communities)[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mVerticals[0m[38;5;12m (#verticals)[39m
|
||
|
||
[38;5;238m――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――[39m
|
||
|
||
|
||
[38;2;255;187;0m[4mLearning[0m
|
||
|
||
[38;2;255;187;0m[4mBooks[0m
|
||
|
||
[38;2;255;187;0m[4mGeneral Overview[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mComputer Systems: A Programmer’s Perspective[0m[38;5;12m (https://www.amazon.com/dp/9332573905) - General treatment of Computer Systems including Compilers, Interpreters and Runtimes.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mElements of Computing Systems[0m[38;5;12m (https://www.amazon.com/dp/0262640686) - How to build a computer from Nand Gates all the way to Compilers and Operating Systems.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mStructure and Interpretation of Computer Programs[0m[38;5;12m (https://mitpress.mit.edu/sicp/full-text/book/book.html) - Study the building blocks of computation using Scheme by building a Scheme interpreter in a Scheme![39m
|
||
[48;5;235m[38;5;249m+ Other editions: **HTML5/EPUB version** (https://sarabander.github.io/sicp/).[49m[39m
|
||
|
||
[38;2;255;187;0m[4mIntroductory[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBasics of Compiler Design[0m[38;5;12m (http://hjemmesider.diku.dk/~torbenm/Basics/) - Provides a short treatment of the basic concepts.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBeautiful Racket[0m[38;5;12m (http://beautifulracket.com) - How to make your own Programming Language with Racket.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBuild Your Own Lisp[0m[38;5;12m (http://www.buildyourownlisp.com) - Learn C and build your own Lisp Programming Language in 1000 LoC.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCompilers: Principles, Techniques and Tools[0m[38;5;12m (https://www.amazon.com/dp/0321486811) - The Dragons Book. A classic textbook on Compiler Construction.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCrafting Interpreters[0m[38;5;12m (http://www.craftinginterpreters.com/) - An all-stop-shop for learning (nearly) everything you need to learn to build an interpreted, full-featured, efficient scripting language.[39m
|
||
[48;5;235m[38;5;249m+ **GitHub Repo** (https://github.com/munificent/craftinginterpreters).[49m[39m
|
||
[48;5;235m[38;5;249m+ Discussions: **HN** (https://news.ycombinator.com/item?id=13406081).[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCreate Your Own Programming Languauge[0m[38;5;12m (http://createyourproglang.com/) - Example-driven approach to building your own programming language with video tutorials and source code projects.[39m
|
||
[48;5;235m[38;5;249m+ Discussions: **HN** (https://news.ycombinator.com/item?id=813133).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mEngineering a Compiler[0m[38;5;12m (https://www.amazon.com/dp/012088478X) - The modern textbook on Compilers Construction, covering SSA-Form and recent research on Code Generation.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mEssentials of Programming Languages[0m[38;5;12m (https://www.amazon.com/dp/0262062798) - Fundamental concepts of programming languages with a focus on Semantics, Interpretation and CPS (Continuation Passing Style).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLanguage Implementation Patterns[0m[38;5;12m (https://www.amazon.com/dp/193435645X) - Learn the patterns behind building programming languages and build an interpreter yourself, using ANTLR.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mModern[0m[38;5;14m[1m [0m[38;5;14m[1mCompiler[0m[38;5;14m[1m [0m[38;5;14m[1mImplementation[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mML[0m[38;5;12m [39m[38;5;12m(https://www.cs.princeton.edu/~appel/modern/ml/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mBuild[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mcompiler[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12mML[39m[38;5;12m [39m[38;5;12m(MetaLanguage)[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mtextbook[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12mhas[39m[38;5;12m [39m[38;5;12mone[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mbest[39m[38;5;12m [39m[38;5;12mcoverage[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mall[39m[38;5;12m [39m[38;5;12mcompiler[39m[38;5;12m [39m[38;5;12mstages.[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12mbook[39m[38;5;12m [39m[38;5;12mcomes[39m[38;5;12m [39m[38;5;12mwith[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mreference[39m[38;5;12m [39m
|
||
[38;5;12mcompiler[39m[38;5;12m [39m[38;5;12mimplementation[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mguide[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12msoftware[39m[38;5;12m [39m[38;5;12mdevelopment[39m[38;5;12m [39m[38;5;12mprocess.[39m
|
||
[48;5;235m[38;5;249m+ Other editions: **MCI in C** (https://www.cs.princeton.edu/~appel/modern/c/), **MCI in Java** (https://www.cs.princeton.edu/~appel/modern/java/).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mProgramming Language Pragmatics[0m[38;5;12m (https://www.amazon.com/dp/0123745144) - Integrated treatement of language design and implementation, the examples feature famous architectures like ARM and x86 64-bit.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mProgramming Languages: Application and Interpretation[0m
|
||
[38;5;12m (http://cs.brown.edu/courses/cs173/2012/book/) - Excellent introduction to the subject that uses an incremental approach to building programs. The mistakes are included too to highlight key concepts.[39m
|
||
[48;5;235m[38;5;249m+ **PDF** (http://cs.brown.edu/courses/cs173/2012/book/book.pdf).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mProgramming Languages: Theory and Practice[0m
|
||
[38;5;12m (http://people.cs.uchicago.edu/~blume/classes/aut2008/proglang/text/offline.pdf) - Collected lecture notes for the _Programming Languages_ course taught at Carnegie Mellon University, most suitable as an introductory text on the subject.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mProject Oberon[0m[38;5;12m (http://people.inf.ethz.ch/wirth/ProjectOberon1992.pdf) - The design of an operating system and compiler.[39m
|
||
[48;5;235m[38;5;249m+ Other editions: **2013 Edition** (http://www.cs.cmu.edu/~fp/courses/15312-f04/handouts/).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mThe BEAM Book[0m[38;5;12m (https://github.com/happi/theBeamBook) - Description of the ERTS (Erlang Runtime System) and the BEAM Virtual Machine.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mVirtual Machines[0m[38;5;12m (https://www.amazon.com/dp/1852339691) - Good book on how to build Virtual Machines especially tailored for the topic of building Programming Languages.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mVirtual Machines: Versatile Platforms for Systems and Processes[0m
|
||
[38;5;12m (https://www.amazon.com/dp/1558609105) - Key textbook on the subject of Virtual Machines which examines virtual machine technologies across the disciplines that use them, e.g.: OS and Programming Languages.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mWrite a Compiler in Go[0m[38;5;12m (https://compilerbook.com/) - Well-known introduction to the Go programming language and its ecosystem through building a Compiler project.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mWrite an Interpreter in Go[0m[38;5;12m (https://interpreterbook.com/) - Successor of the "Write a Compiler in Go" book, but this one builds an interpreter project instead.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mWriting Compilers and Interpreters: A Software Engineering Approach[0m[38;5;12m (https://www.amazon.com/dp/0470177071) - How to build Compilers using Java, this book is tailored for the working Software Engineer.[39m
|
||
[48;5;235m[38;5;249m+ Other editions: **Using C++** (https://www.amazon.com/dp/0471113530), **Using C** (https://www.amazon.com/dp/0471555800).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mWriting Interpreters and Compilers for the Raspberry Pi Using Python[0m
|
||
[38;5;12m (https://www.amazon.de/gp/product/1977509207) - If you want to learn how to write interpreters and compilers, and at the same time learn how Python, Python bytecode, assembly language, and dynamic typing work, this is the book for you.[39m
|
||
|
||
|
||
[38;2;255;187;0m[4mAdvanced[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAdvanced Compiler Design and Implementation[0m[38;5;12m (https://www.amazon.com/dp/1558603204) - In-depth treatement of advanced design topics such as: Intermediate Representation, SSA, Code Optimization and the various processor architectures.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAdvanced Design and Implementation of Virtual Machines[0m
|
||
[38;5;12m (https://www.amazon.com/dp/146658260X) - Step-by-step hollistic introduction to the design of Virtual Machine architectures, topics and algorithms. Contains illustrated figures and implementations for the algorithms in the book.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAdvanced Topics in Types and Programming Languages[0m
|
||
[38;5;12m (https://www.amazon.com/dp/0262162288) - Intensive study of Type Systems, covering topics such as, but not limited to: Precise Type Analyses; Type Systems for Low-Level Languages and Advanced Techniques in ML-style Type Inference..[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mA Retargetable C Compiler: Design and Implementation[0m
|
||
[38;5;12m (https://www.amazon.com/dp/0805316701) - Examines the design and implementation of Icc, a production-quality, retargetable compiler, designed at AT&T Bell Labs for the ANSI C programming language.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBuilding an Optimizing Compiler[0m
|
||
[38;5;12m (https://www.amazon.com/dp/155558179X) - Fills the gap in the domain of code optimization. This book provides a high level design for a thorough optimizer, code generator, scheduler and register allocator for a generic modern RISC processor.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCompiling with Continuations[0m[38;5;12m (https://www.amazon.com/dp/052103311X) - Introduction to CPS (Continuation-Passing Style) as an Intermediate Representation in Compiler for doing optimizations and program transformations.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mDesign[0m[38;5;14m[1m [0m[38;5;14m[1mConcepts[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mProgramming[0m[38;5;14m[1m [0m[38;5;14m[1mLanguages[0m[38;5;12m [39m[38;5;12m(https://www.amazon.com/dp/0262201755)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mSystematic[39m[38;5;12m [39m[38;5;12mexploration[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mtechniques[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mideas[39m[38;5;12m [39m[38;5;12mused[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mProgramming[39m[38;5;12m [39m[38;5;12mLanguage[39m[38;5;12m [39m[38;5;12mDesign,[39m[38;5;12m [39m[38;5;12mcovers[39m[38;5;12m [39m[38;5;12mtopics[39m[38;5;12m [39m[38;5;12msuch[39m[38;5;12m [39m[38;5;12mas:[39m[38;5;12m [39m[38;5;12mOperational[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mDenotational[39m[38;5;12m [39m[38;5;12mSemantic[39m[38;5;12m [39m[38;5;12mtechniques,[39m[38;5;12m [39m
|
||
[38;5;12mDynamic[39m[38;5;12m [39m[38;5;12mSemantic[39m[38;5;12m [39m[38;5;12mtechniques[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mStatic[39m[38;5;12m [39m[38;5;12mSemantic[39m[38;5;12m [39m[38;5;12mtechniques.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mInstruction Level Parallelism[0m[38;5;12m (https://www.amazon.com/dp/1489977953) - This book precisely formulates and simplifies the presentation of Instruction Level Parallelism (ILP) compilation techniques.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLinkers and Loaders[0m[38;5;12m (https://www.amazon.com/dp/1558604960) - Definitive text on the compile-time and runtime processes of linking and loading.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mOptimizing Compilers for Modern Architectures[0m[38;5;12m (https://www.amazon.com/dp/1558602860/) - Optimizing program generation based on recent gains and breakthroughs in modern high-performance CPU architectures.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mParsing Techniques: A Practical Guide[0m[38;5;12m (https://www.amazon.com/dp/038720248X) - Definitive guide on parsing algorithms and techniques, also contains an introduction to Formal Grammar and Parsing Theory.[39m
|
||
[48;5;235m[38;5;249m+ **1st Edition, PDF** (https://dickgrune.com/Books/PTAPG_1st_Edition/).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mThe Garbage Collection Handbook: The Art of Automatic Memory Management[0m
|
||
[38;5;12m (https://www.amazon.com/dp/1420082795) - The living-classic and definitive text on the topic of Garbage Collection, also covers hardware-based optimizations in light of modern advances in CPU architectures.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mThe[0m[38;5;14m[1m [0m[38;5;14m[1mImplementation[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1mFunctional[0m[38;5;14m[1m [0m[38;5;14m[1mProgramming[0m[38;5;14m[1m [0m[38;5;14m[1mLanguages[0m[38;5;12m [39m[38;5;12m(https://www.microsoft.com/en-us/research/wp-content/uploads/1987/01/slpj-book-1987-small.pdf)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mClassic[39m[38;5;12m [39m[38;5;12mtextbook[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mimplementing[39m[38;5;12m [39m[38;5;12mFunctional[39m[38;5;12m [39m[38;5;12mLanguages,[39m[38;5;12m [39m[38;5;12mcovers[39m[38;5;12m [39m[38;5;12mStructured[39m[38;5;12m [39m[38;5;12mTypes,[39m[38;5;12m [39m[38;5;12mPattern[39m[38;5;12m [39m
|
||
[38;5;12mMatching[39m[38;5;12m [39m[38;5;12mSemantics,[39m[38;5;12m [39m[38;5;12mLambda[39m[38;5;12m [39m[38;5;12mCalculus[39m[38;5;12m [39m[38;5;12mTransformation,[39m[38;5;12m [39m[38;5;12mPolymorphic[39m[38;5;12m [39m[38;5;12mType[39m[38;5;12m [39m[38;5;12mChecking[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mmany[39m[38;5;12m [39m[38;5;12mother[39m[38;5;12m [39m[38;5;12mtopics.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mThe SSA Book[0m[38;5;12m (http://ssabook.gforge.inria.fr/latest/book.pdf) - The only in-depth study of SSA-form (Static Single Assignment Form) in book format.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mTypes and Programming Languages[0m[38;5;12m (https://www.amazon.com/dp/0262162091) - Comprehensive introduction to the topic of Type Systems and Programming Languages from a Type-Theoretic perspective.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mWarren's Abstract Machine: Prolog in Haskell[0m[38;5;12m (https://mitpress.mit.edu/books/warrens-abstract-machine) - Introduction to WAM from Logic Programming in Prolog.[39m
|
||
|
||
[38;2;255;187;0m[4mPapers[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mA Brief History of JIT Compilation, J. Aycock[0m[38;5;12m (http://eecs.ucf.edu/~dcm/Teaching/COT4810-Spring2011/Literature/JustInTimeCompilation.pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mA Flexible Prolog Interpreter in Python, C. Bolz & M. Leuschel[0m[38;5;12m (http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.103.1886&rep=rep1&type=pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mA Graph Higher-Order IR, R. Leißa, M. Koster & S. Hack[0m[38;5;12m (http://compilers.cs.uni-saarland.de/papers/lkh15_cgo.pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mA Micro-Manual for LISP - Not the Whole Truth, J. McCarthy[0m[38;5;12m (https://www.uraimo.com/files/MicroManual-LISP.pdf).[39m
|
||
[48;5;235m[38;5;249m+ Other editions: **Neat and nice typeset** (https://github.com/jaseemabid/micromanual).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mA Prolog Interpreter in Python, C. Bolz[0m[38;5;12m (http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.121.8625&rep=rep1&type=pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mA Simple Multi-Processor Computer Based on Subleq, O. Mazonka, A. Kolodin[0m[38;5;12m (https://arxiv.org/abs/1106.2593).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAn Evil Copy: How the Loader Betrays You[0m[38;5;12m (http://www.cse.psu.edu/~trj1/papers/ndss17.pdf) - About security issues related to Dynamic Loading.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAn Incremental Approach to Compiler Construction[0m[38;5;12m (http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCompiler Construction Using Scheme, E. Hilsdale, J. Ashley, R. Dybvig & D. Friedman[0m[38;5;12m (https://www.cs.indiana.edu/~dyb/pubs/fple95.pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCompiling with Continuations: Continued, A. Kennedy[0m[38;5;12m (https://www.microsoft.com/en-us/research/wp-content/uploads/2007/10/compilingwithcontinuationscontinued.pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mDefinitional Interpreters for Higher-Order Programming Languages, J. Reynolds[0m[38;5;12m (http://www.cs.uml.edu/~giam/91.531/Textbooks/definterp.pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mDraining the Swamp: Micro Virtual Machines as Solid Foundation for Language Development, K. Wang, Y. Lin, S. Blackburn, M. Norrish & A. Hosking[0m[38;5;12m (http://drops.dagstuhl.de/opus/volltexte/2015/5034/pdf/24.pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mEngineering Definitional Interpreters, J. Midtgaard, N. Ramsey, B. Larsen[0m[38;5;12m (https://www.cs.tufts.edu/~nr/pubs/interps.pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mGarbage Collection in an Uncooperative Environment, H. Boehm, M. Weiser[0m[38;5;12m (https://pdfs.semanticscholar.org/6434/aa10f3745dcf959cfca9c379aae120396724.pdf?_ga=2.133026126.1710272003.1495044697-300816831.1495044697).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mMachine Code Obfuscation via Instruction Set Reduction and CFG Linearization, C. Jonischkeit[0m[38;5;12m (https://kirschju.re/static/ba_jonischkeit_2016.pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[48;5;235m[38;5;249m[1mMOV[0m[38;5;14m[1m is Turing-Complete, S. Dolan[0m[38;5;12m (https://www.cl.cam.ac.uk/~sd601/papers/mov.pdf).[39m
|
||
[48;5;235m[38;5;249m+ Discussions: **HN** (https://news.ycombinator.com/item?id=6309631), **Reddit** (https://redd.it/1nft0x).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mNanopass Framework for Commercial Compiler Development, A. Keep & R. Dybvig[0m[38;5;12m (https://www.cs.indiana.edu/~dyb/pubs/commercial-nanopass.pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mNanopass Framework for Compiler Education, D. Sarkar, O. Waddell & R. Dybvig[0m[38;5;12m (https://www.cs.indiana.edu/~dyb/pubs/nano-jfp.pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mNotes on Graph Algorithms Used in Optimizing Compilers, C. Offner[0m[38;5;12m (http://www.cs.umb.edu/%7Eoffner/files/flow_graph.pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPackrat Parsing Thesis on PEG, B. Ford[0m[38;5;12m (https://pdos.csail.mit.edu/~baford/packrat/thesis/).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPEG-based transformer provides front-end, middle-end and back-end stages in a simple Compiler, I. Piumarta[0m[38;5;12m (http://www.vpri.org/pdf/tr2010003_PEG.pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPycket: A Tracing JIT for a Functional Language[0m[38;5;12m (http://homes.soic.indiana.edu/samth/pycket-draft.pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPyPy’s Approach to VM Construction, A. Rigo & S. Pedroni[0m[38;5;12m (http://www.csc.lsu.edu/~gb/csc7700/Reading/pypy-vm-construction.pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mRABBIT: A Compiler for SCHEME, G. Steele[0m[38;5;12m (http://repository.readscheme.org/ftp/papers/ai-lab-pubs/AITR-474.pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mSimple and Efficient Construction of SSA Form[0m[38;5;12m (http://compilers.cs.uni-saarland.de/projects/ssaconstr/).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mSSA-based Register Allocation, S. Hack & G. Goos[0m[38;5;12m (http://compilers.cs.uni-saarland.de/projects/ssara/).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mThe Essence of Compiling with Continuations, C. Flanagan, A. Sabry, B. Duba & M. Felleisen[0m[38;5;12m (https://users.soe.ucsc.edu/~cormac/papers/pldi93.pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mThe Page-Faults Weird Machine: Lessons in Instruction-less Computation, J. Bangert, S. Bratus, R. Shapiro, S. Smith[0m[38;5;12m (https://www.usenix.org/system/files/conference/woot13/woot13-bangert.pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mTrace-based JIT Compilation for Lazy Functional Languages, T. Schilling[0m[38;5;12m (http://files.catwell.info/misc/mirror/tracing-jit-haskell-schilling.pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mUsing Datalog with Binary Decision Diagrams for Program Analysis, J. Whaley, D. Avots, M. Carbin & M. Lam[0m[38;5;12m (https://people.csail.mit.edu/mcarbin/papers/aplas05.pdf).[39m
|
||
|
||
[38;2;255;187;0m[4mResearchers and Institutes[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mC. Bolz’s Research Publications[0m[38;5;12m (https://scholar.google.com/citations?user=S0rpYpkAAAAJ).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCompilers Lab at Saarland University[0m[38;5;12m (http://compilers.cs.uni-saarland.de).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mKenichi Asai[0m[38;5;12m (http://pllab.is.ocha.ac.jp/%7Easai/papers/).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPackrat Parsing (PEG) Papers and Resources[0m[38;5;12m (http://bford.info/packrat/).[39m
|
||
|
||
[38;2;255;187;0m[4mSpecifications[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCLI (ECMA-335) Specification[0m[38;5;12m (http://www.ecma-international.org/publications/standards/Ecma-335.htm).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mMu Specification[0m[38;5;12m (https://gitlab.anu.edu.au/mu/mu-spec).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mJVM SE8 Specification[0m[38;5;12m (https://docs.oracle.com/javase/specs/jvms/se8/html/).[39m
|
||
|
||
[38;2;255;187;0m[4mCourses[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCompilers Construction, Cambridge[0m[38;5;12m (http://www.cl.cam.ac.uk/teaching/1516/CompConstr/materials.html) - Introduction to compiler construction course from the University of Cambridge.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCompiler Construction for Undergrads, RICE University[0m[38;5;12m (https://www.clear.rice.edu/comp412/Lectures/) - Introduction to compiler construction and language translators course from the RICE University.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;12mCompilers[39m[38;5;12m [39m[38;5;12mTheory,[39m[38;5;12m [39m[38;5;12mStanford[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;14m[1mYouTube[0m[38;5;12m [39m[38;5;12m(https://www.youtube.com/playlist?list=PLLH73N9cB21VSVEX1aSRlNTufaLK1dTAI),[39m[38;5;12m [39m[38;5;14m[1mStanford.edu[0m[38;5;12m [39m[38;5;12m(https://lagunita.stanford.edu/courses/Engineering/Compilers/Fall2014/),[39m[38;5;12m [39m[38;5;14m[1mClass[0m[38;5;14m[1m [0m[38;5;14m[1mNotes[0m[38;5;12m [39m
|
||
[38;5;12m(http://web.stanford.edu/class/cs143/)[39m[38;5;12m [39m[38;5;12m-Introduction[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mCompilers[39m[38;5;12m [39m[38;5;12mtheory[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mconstruction[39m[38;5;12m [39m[38;5;12mcourse[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mStanford.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mDesign and Construction of Compilers, University of Texas[0m[38;5;12m (https://lambda.uta.edu/cse5317/) - Design and construction of compilers including lexical analysis, parsing, code generation techniques, error analysis and simple code optimizations.[39m
|
||
[48;5;235m[38;5;249m+ Lecture Notes: **PDF** (https://lambda.uta.edu/cse5317/notes.pdf), **HTML** (https://lambda.uta.edu/cse5317/long/long.html).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mDSL Design and Implementation Summer School[0m[38;5;12m (http://vjovanov.github.io/dsldi-summer-school/) - Summer School program on the topics of DSL Design and Implementation hosted by the EPFL University.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFoundations of Programming Languages[0m[38;5;12m (http://www.cs.cmu.edu/~fp/courses/15312-f04/) - Concepts that underlie the design, definition, implementation and use of modern programming languages from a formal standpoint.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mNand2Tetris: How to Build a Computer from First Principles, Part 2[0m
|
||
[38;5;12m (https://www.coursera.org/learn/nand2tetris2) - This 2nd part of the Nand2Tetris course covers basic language design and elementary compiler construction concepts in addition to many other topics on a basic level.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mNPTEL's Principles of Compiler Design Course[0m[38;5;12m (https://www.youtube.com/playlist?list=PLbMVogVj5nJQNjkHZgwuAlfQ9tzmQDxjA) - Introductory course from NPTEL on Compiler Design.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mNPTEL's Compiler Design Course[0m[38;5;12m (http://nptel.ac.in/courses/106108052/32) - Slightly more advanced course than their Principles of Compiler Design course, covers SSA Form to a good degree.[39m
|
||
[48;5;235m[38;5;249m+ **YouTube Video Playlist** (https://www.youtube.com/playlist?list=PLbMVogVj5nJTmKzaSlCpGgi7qxgcRRs8h).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mProgramming Languages: Part A, by Grossman[0m[38;5;12m (https://www.coursera.org/learn/programming-languages) - Part 1 of a 3-part course series to the basic concepts of programming languages, with a strong emphasis on functional programming.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mProgramming Languages: Part B, by Grossman[0m[38;5;12m (https://www.coursera.org/learn/programming-languages-part-b) - Part 2 of a 3-part course series to the basic concepts of programming languages, with a strong emphasis on functional programming.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mProgramming Languages: Part C, by Grossman[0m[38;5;12m (https://www.coursera.org/learn/programming-languages-part-c) - Part 3 of a 3-part course series to the basic concepts of programming languages, with a strong emphasis on functional programming.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mTypes, Logic, Semantics, and Verification from Oregon University's Summer School[0m
|
||
[38;5;12m (https://www.cs.uoregon.edu/research/summerschool/summer15/curriculum.html) - Summer School program that consists of 80 minute lectures presented by internationally recognized leaders in programming languages and formal reasoning research.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mVirtual Machines and Managed Runtimes, UCB CS294[0m[38;5;12m (http://www.wolczko.com/CS294/) - Introductory course on Virtual Machines and Managed Runtimes from the University of Berkeley.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mVirtual Machines Summer School 2016 (VMSS 2016)[0m[38;5;12m (http://soft-dev.org/events/vmss16/) - VMSS is a Summer School program that aims to give an overview of the field, targeted at early career researchers.[39m
|
||
[48;5;235m[38;5;249m+ **YouTube Videos Playlist** (https://www.youtube.com/playlist?list=PLJq3XDLIJkib2h2fObomdFRZrQeJg4UIW).[49m[39m
|
||
|
||
[38;2;255;187;0m[4mTalks and Conferences[0m
|
||
|
||
[38;2;255;187;0m[4mChannels[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCurry On! Conference[0m[38;5;12m (http://www.curry-on.org/) - Programming Languages Conference.[39m
|
||
[48;5;235m[38;5;249m+ **YouTube Channel** (https://www.youtube.com/channel/UC-WICcSW1k3HsScuXxDrp0w/videos).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLang.NEXT Conference 2012[0m[38;5;12m (https://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2012).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLang.NEXT Conference 2014[0m[38;5;12m (https://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2014).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLLVM Developers Meeting YouTube Channel[0m[38;5;12m (https://www.youtube.com/channel/UCv2_41bSAa5Y_8BacJUZfjQ).[39m
|
||
|
||
[38;2;255;187;0m[4mVideos[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAnders Hejlsberg on Modern Compiler Construction[0m[38;5;12m (https://channel9.msdn.com/Blogs/Seth-Juarez/Anders-Hejlsberg-on-Modern-Compiler-Construction).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAn Introduction to Combinator Compilers and Graph Reduction Machines[0m[38;5;12m (https://www.youtube.com/watch?v=GawiQQCn3bk).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBuilding an Interpreter in RPython[0m[38;5;12m (https://www.youtube.com/watch?v=9tDpjzPLvNY).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCPython - A Ten-Hour Codewalk[0m[38;5;12m (http://pgbovine.net/cpython-internals.htm).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mExploring Python’s Bytecode[0m[38;5;12m (https://ep2016.europython.eu/media/conference/slides/exploring-python-bytecode.pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mHow[0m[38;5;14m[1m [0m[38;5;14m[1mto[0m[38;5;14m[1m [0m[38;5;14m[1mBuild[0m[38;5;14m[1m [0m[38;5;14m[1ma[0m[38;5;14m[1m [0m[38;5;14m[1mVirtual[0m[38;5;14m[1m [0m[38;5;14m[1mMachine[0m[38;5;12m [39m[38;5;12m(https://www.youtube.com/watch?v=OjaAToVkoTw)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mTerence[39m[38;5;12m [39m[38;5;12mParr[39m[38;5;12m [39m[38;5;12mgives[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12midea[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mcore[39m[38;5;12m [39m[38;5;12mmechanisms[39m[38;5;12m [39m[38;5;12mbehind[39m[38;5;12m [39m[38;5;12mvirtual[39m[38;5;12m [39m[38;5;12mmachines[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12mbuilding[39m[38;5;12m [39m[38;5;12mone,[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mfront[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12myour[39m[38;5;12m [39m[38;5;12meyes,[39m[38;5;12m [39m[38;5;12mfrom[39m[38;5;12m [39m[38;5;12mscratch.[39m[38;5;12m [39m[38;5;12mIt[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12msame[39m[38;5;12m [39m[38;5;12mkind[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mcommercial[39m[38;5;12m [39m
|
||
[38;5;12minterpreter[39m[38;5;12m [39m[38;5;12mhe[39m[38;5;12m [39m[38;5;12mmade[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mRenault[39m[38;5;12m [39m[38;5;12mcars.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mJava AOT (Ahead of Time) Compilation[0m[38;5;12m (https://2016.javazone.no/program/java-aot-compilation).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mMetaScala: A Tiny DIY JVM[0m[38;5;12m (https://skillsmatter.com/skillscasts/4916-metascala-a-tiny-diy-jvm) - Metascala is a tiny metacircular Java Virtual Machine (JVM) written in the Scala programming language.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mMeta-Tracing, RPython and PyPy[0m[38;5;12m (https://ia601503.us.archive.org/32/items/vmss16/bolz.pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mOne VM to Rule Them All, One VM to Bind Them[0m[38;5;12m (https://www.youtube.com/watch?v=FJY96_6Y3a4) - Tutorial on the Truffel technology.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mProgramming Should Eat Itself[0m[38;5;12m (https://www.youtube.com/watch?v=SrKj4hYic5A) - StrangeLoop Talk on Reflective Programming and Kenichi Asai's Black Programming Language.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPython, Linkers and Virtual Memory - PYCON US[0m[38;5;12m (https://www.youtube.com/watch?v=twQKAoq2OPE).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mReverse Engineering the MOS 6502 CPU[0m[38;5;12m (https://youtube.com/watch?v=fWqBmmPQP40).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mSingle Static Assignment Form Seminar[0m[38;5;12m (http://compilers.cs.uni-saarland.de/ssasem/) - Introductory seminar on SSA Form, Compiler Optimizations under it and its applications in other areas such as Program Analysis and Verification.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mThe JVM (Java Virtual Machine) Architecture[0m[38;5;12m (https://www.youtube.com/watch?v=ZBJ0u9MaKtM).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mThe Most Beautiful Program Ever Written[0m[38;5;12m (https://www.youtube.com/watch?v=OyfBQmvr2Hc) - William Byrd on a Lisp interpreter written in 15 lines of Lisp.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mThe MoVfuscator: turning mov into a soul crushing RE nightmare[0m[38;5;12m (https://www.youtube.com/watch?v=R7EEoWg6Ekk).[39m
|
||
[48;5;235m[38;5;249m+ Discussions: **HN** (https://news.ycombinator.com/item?id=9751312), **Reddit** (https://redd.it/4zl8mh).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;12mThe SSA Form - Video Lectures from NPTEL's Compilers Course (see: [39m[38;5;14m[1mCourses[0m[38;5;12m (#courses) for more info):[39m
|
||
[48;5;235m[38;5;249m+ **Part 1** (https://www.youtube.com/watch?v=Q7hlcuCGbxE).[49m[39m
|
||
[48;5;235m[38;5;249m+ **Part 2** (https://www.youtube.com/watch?v=FV9fq_HfPsM).[49m[39m
|
||
[48;5;235m[38;5;249m+ **Part 3** (https://www.youtube.com/watch?v=GyYiic8trCE).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mType-Driven Development with Idris[0m[38;5;12m (https://www.youtube.com/watch?v=X36ye-1x_HQ).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mUnderstanding Compiler Optimization[0m[38;5;12m (https://www.youtube.com/watch?v=FnGCDLhaxKU).[39m
|
||
|
||
[38;2;255;187;0m[4mArticles[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mA Tourist’s Guide to the LLVM Source Code[0m[38;5;12m (https://blog.regehr.org/archives/1453).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAccidentally Turing Complete[0m[38;5;12m (http://beza1e1.tuxen.de/articles/accidentally_turing_complete.html).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;12mAdventures in JIT Compilation by Eli Bendersky:[39m
|
||
[48;5;235m[38;5;249m+ **Part 1 - An Interpreter** (http://eli.thegreenplace.net/2017/adventures-in-jit-compilation-part-1-an-interpreter/).[49m[39m
|
||
[48;5;235m[38;5;249m+ **Part 2 - An x64 JIT** (http://eli.thegreenplace.net/2017/adventures-in-jit-compilation-part-2-an-x64-jit/).[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m+ **Part 3 - LLVM** (http://eli.thegreenplace.net/2017/adventures-in-jit-compilation-part-3-llvm/).[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m+ **Part 4 - In Python** (http://eli.thegreenplace.net/2017/adventures-in-jit-compilation-part-4-in-python/).[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mALIVe: Automatic LLVM InstCombine Verifier[0m[38;5;12m (https://blog.regehr.org/archives/1170).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mGraal and Truffel[0m[38;5;12m (https://blog.plan99.net/graal-truffle-134d8f28fb69) - Obscure research project could radically accelerate innovation in programming language design.[39m
|
||
[48;5;235m[38;5;249m+ Discussions: **Reddit** (https://redd.it/4tm4mj).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mHow to Compile with Continuations[0m[38;5;12m (http://matt.might.net/articles/cps-conversion/).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mInterpreter, Compiler and JIT[0m[38;5;12m (https://nickdesaulniers.github.io/blog/2015/05/25/interpreter-compiler-jit/).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mIntroducing the B3 JIT Compiler[0m[38;5;12m (https://webkit.org/blog/5852/introducing-the-b3-jit-compiler/).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLLVM Architecture[0m[38;5;12m (http://www.aosabook.org/en/llvm.html) - Chapter from the book Architecture of Open Source Applications.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLLVM for Graduate Students[0m[38;5;12m (http://www.cs.cornell.edu/~asampson/blog/llvm.html) - Introduction to doing research with the LLVM compiler infrastructure.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPratt Parsers: Expression Parsing Made Easy[0m[38;5;12m (http://journal.stuffwithstuff.com/2011/03/19/pratt-parsers-expression-parsing-made-easy/).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mRust Compiler Walk-Through[0m[38;5;12m (https://gchp.ie/2016/08/09/rust-compiler-walkthrough-introduction/).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mRust's Incremental Compilation[0m[38;5;12m (https://blog.rust-lang.org/2016/09/08/incremental.html).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mRust’s Upcoming MIR[0m[38;5;12m (https://blog.rust-lang.org/2016/04/19/MIR.html).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mThe Memory Models that Underlie Programming Languages[0m[38;5;12m (http://canonical.org/~kragen/memory-models/).[39m
|
||
|
||
|
||
[38;2;255;187;0m[4mTutorials[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mA Tutorial Implementation of a Dependently Typed Lambda Calculus[0m[38;5;12m (https://www.andres-loeh.de/LambdaPi/).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mA Beginner's Guide to Linkers[0m[38;5;12m (http://www.lurklurk.org/linkers/linkers.html) - Tutorial for helping C & C++ programmers understand the essentials of what the linker does.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAlgorithm W Step By Step[0m[38;5;12m (http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.65.7733&rep=rep1&type=pdf).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBuilding a LISP from scratch with Swift[0m[38;5;12m (https://www.uraimo.com/2017/02/05/building-a-lisp-from-scratch-with-swift/).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCompiler Optmization Tutorial[0m[38;5;12m (https://www.youtube.com/watch?v=SfV8aRX0YY0).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mHindley-Damas-Milner Tutorial[0m[38;5;12m (https://github.com/quchen/articles/tree/master/hindley-milner) - Extensively documented walkthrough for typechecking a basic functional language using the Hindley-Damas-Milner algorithm.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mHow I Wrote a Programming Language, and How You Can Too[0m[38;5;12m (https://medium.com/@william01110111/the-programming-language-pipeline-91d3f449c919).[39m
|
||
[48;5;235m[38;5;249m+ Discussions: **Reddit** (https://redd.it/62ixbc).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mImplementing a JIT Compiled Language with Haskell and LLVM[0m[38;5;12m (http://www.stephendiehl.com/llvm/).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mKaleidoscope: Implementing a Language with LLVM in Objective Caml[0m[38;5;12m (http://llvm.org/docs/tutorial/index.html#kaleidoscope-implementing-a-language-with-llvm-in-objective-caml).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLet’s Build A Simple Interpreter[0m[38;5;12m (https://ruslanspivak.com/lsbasi-part1/).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLisperator[0m[38;5;12m (http://lisperator.net/pltut/) - How to implement a programming language in JavaScript.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLittle Lisp Interpreter[0m[38;5;12m (https://maryrosecook.com/blog/post/little-lisp-interpreter) - Interpreter that supports function invocation, lambdas, lets, ifs, numbers, strings, a few library functions, and lists in under 120 lines of JavaScript.[39m
|
||
[48;5;235m[38;5;249m+ **GitHub Repository** (https://github.com/maryrosecook/littlelisp).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[48;5;235m[38;5;249m[1mlis.py[0m[38;5;14m[1m, v1: (How to Write a (Lisp) Interpreter (in Python))[0m[38;5;12m (http://norvig.com/lispy.html) - Tutorial by Peter Norvig on writing a simple Lisp interpreter.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[48;5;235m[38;5;249m[1mlis.py[0m[38;5;14m[1m, v2: An ((Even Better) Lisp) Interpreter (in Python)[0m[38;5;12m (http://norvig.com/lispy2.html) - Follow-up tutorial by Peter Norvig on making [39m[48;5;235m[38;5;249mlis.py[49m[39m[38;5;12m slightly better.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLLVM Tutorial: Implementing Kaleidoscope[0m[38;5;12m (http://releases.llvm.org/3.6.2/docs/tutorial/LangImpl1.html).[39m
|
||
[48;5;235m[38;5;249m+ **Python version with LLVMPY** (http://www.llvmpy.org/llvmpy-doc/dev/doc/kaleidoscope/index.html).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mMetacompiler Tutorial, Part 1[0m[38;5;12m (http://www.bayfronttechnologies.com/mc_tutorial.html).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mProject: A Programming Language[0m[38;5;12m (http://eloquentjavascript.net/11_language.html) - Chapter 11 from the book _Eloquent JavaScript_, 2nd Edition.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mWrite You a Haskell[0m[38;5;12m (http://dev.stephendiehl.com/fun/).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mWriting a Language in Truffel[0m[38;5;12m (http://cesquivias.github.io/tags/truffle.html) - Interpreter development tutorial using Truffel, by Cristian Esquivias.[39m
|
||
|
||
|
||
[38;2;255;187;0m[4mCommunity Discussions[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCan[0m[38;5;14m[1m [0m[38;5;14m[1mwe[0m[38;5;14m[1m [0m[38;5;14m[1mstop[0m[38;5;14m[1m [0m[38;5;14m[1mrecommending[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mDragon[0m[38;5;14m[1m [0m[38;5;14m[1mBook,[0m[38;5;14m[1m [0m[38;5;14m[1mplease?[0m[38;5;12m [39m[38;5;12m(https://meta.stackexchange.com/questions/25840/can-we-stop-recommending-the-dragon-book-please)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mStackExchange[39m[38;5;12m [39m[38;5;12mthread[39m[38;5;12m [39m[38;5;12mcriticising[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;14m[1mDragons[0m[38;5;14m[1m [0m[38;5;14m[1mBook[0m[38;5;12m [39m[38;5;12m(https://www.amazon.com/dp/0321486811)[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m
|
||
[38;5;12mfavor[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12malternatives.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mWhat is difference between an LL and Recursive Descent parser?[0m[38;5;12m (http://stackoverflow.com/questions/1044600/difference-between-an-ll-and-recursive-descent-parser).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;12mDoes a compiler use all x86 instructions? - [39m[38;5;14m[1m@HN[0m[38;5;12m (https://news.ycombinator.com/item?id=12352959), [39m[38;5;14m[1m@Reddit[0m[38;5;12m (https://redd.it/4zgawj) - Article discussions on HN and Reddit.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mHow to Write a Compiler[0m[38;5;12m (https://redd.it/4o7qag) - Article discussion on Reddit.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mHow to Write a Very Basic Compiler[0m[38;5;12m (https://softwareengineering.stackexchange.com/questions/165543/how-to-write-a-very-basic-compiler).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mHow to Write a Prolog Interpreter in a Purely Functional Language[0m[38;5;12m (https://cs.stackexchange.com/questions/6618/how-to-implement-a-prolog-interpreter-in-a-purely-functional-language).[39m
|
||
[48;5;235m[38;5;249m+ Discussions: **Reddit** (https://redd.it/4u2xt3).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mImplementing Type Inference[0m[38;5;12m (http://stackoverflow.com/questions/415532/implementing-type-inference).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mI want to build a VM, any good references?[0m[38;5;12m (https://softwareengineering.stackexchange.com/questions/178224/i-want-to-build-a-virtual-machine-are-there-any-good-references).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mResources for Amatuer Compilers Writers[0m[38;5;12m (https://redd.it/4u15t1).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mWhat are the good open source implementations of Java Virtual Machine?[0m[38;5;12m (http://stackoverflow.com/questions/1621899/what-are-the-good-open-source-implementations-of-java-virtual-machine).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mWhat are the latest research trends in Compilers and PLs[0m[38;5;12m (https://www.quora.com/What-are-the-latest-research-trends-in-compilers-and-programming-languages).[39m
|
||
|
||
|
||
[38;2;255;187;0m[4mTools and Frameworks[0m
|
||
|
||
[38;2;255;187;0m[4mLanguage Agnostic[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mB3: The Bare Bones Backend[0m[38;5;12m (https://webkit.org/docs/b3/) - WebKit's optimizing JIT Compiler for procedures containing C-like code.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCapstone[0m[38;5;12m (https://github.com/aquynh/capstone) - Lightweight multi-platform, multi-architecture disassembly framework with bindings to various famous programming languages.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mKeystone[0m[38;5;12m (https://github.com/keystone-engine/keystone) - Lightweight multi-platform, multi-architecture assembler framework with bindings to various famous programming languages.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLLILCL[0m[38;5;12m (https://github.com/dotnet/llilc) - LLVM-based Compiler Backend for .NET Core.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLLVM[0m[38;5;12m (http://llvm.org/) - The LLVM Compiler-Backend Framework.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mMicroVM[0m[38;5;12m (http://microvm.github.io/) - The "Mu" Framewrok for Programming Languages development based on the MuVM Specification.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mMovfuscator Compiler[0m[38;5;12m (https://github.com/xoreaxeaxeax/movfuscator) - The [39m[48;5;235m[38;5;249mM/o/Vfuscator[49m[39m[38;5;12m compiles programs into "mov" instructions, and only "mov" instructions.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mQBE: The Quick Backend[0m[38;5;12m (http://c9x.me/compile/) - Pure C embeddable SSA-based compiler backend.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mRubinius[0m[38;5;12m (https://github.com/rubinius/rubinius) - Programming Languages Development Platform.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mSummus[0m[38;5;12m (https://github.com/igor84/summus) - Basic, reusable, compiler-frontend implementation using LLVM as a backend.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mZetaVM[0m[38;5;12m (https://github.com/zetavm/zetavm) - Multi-Language Platform for Dynamic Programming Languages.[39m
|
||
|
||
[38;2;255;187;0m[4mC / C++[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAsmJIT[0m[38;5;12m (https://github.com/asmjit/asmjit) - Complete x86/x64 JIT and Remote Assembler for C++.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mGCC[0m[38;5;12m (https://gcc.gnu.org/) - The GNU Compiler Collection (C as a Backend).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLCC[0m[38;5;12m (https://github.com/drh/lcc) - The lcc retargetable ANSI C compiler (C as a Backend).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mlibFirm[0m[38;5;12m (http://pp.ipd.kit.edu/firm/) - C-library that provides a graph-based intermediate representation, optimizations, and assembly code generation suitable for use in compilers.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mlibJIT[0m[38;5;12m (https://www.gnu.org/software/libjit/) - Library for generic Just-In-Time compiler functionality independent of any particular bytecode, language, or runtime.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mmyJIT[0m[38;5;12m (http://myjit.sourceforge.net/) - Library for machine-code generation and execution at run-time.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mOrangeC[0m[38;5;12m (http://github.com/LADSoft/OrangeC) - Win32 C11/C++2014 compiler and toolchain.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPCC[0m[38;5;12m (http://pcc.ludd.ltu.se/) - The Portable C Compiler (C as a Backend).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mRagel[0m[38;5;12m (http://www.colm.net/open-source/ragel/) - Ragel State Machine Compiler.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mTCC[0m[38;5;12m (http://bellard.org/tcc/) - The Tiny C Compiler (C as a Backend).[39m
|
||
|
||
[38;2;255;187;0m[4mCLR[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCecil[0m[38;5;12m (http://www.mono-project.com/docs/tools+libraries/libraries/Mono.Cecil/) - Library to generate and inspect programs and libraries in the ECMA CIL format.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mDotNetPELib[0m[38;5;12m (https://github.com/LADSoft/DotNetPELib) - Library to read and write .net assemblies in C++11[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mILSpy[0m[38;5;12m (http://ilspy.net) - .NET Decompiler.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mReflector[0m[38;5;12m (http://www.red-gate.com/products/dotnet-development/reflector/) - .NET Decompiler.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mReflexil[0m[38;5;12m (http://sebastien.lebreton.free.fr/reflexil/) - Assembly code editor which can be used as a plugin with other .NET/CLR tools.[39m
|
||
|
||
[38;2;255;187;0m[4mD[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mdunnart[0m[38;5;12m (https://github.com/pwil3058/dunnart) - LALR(1) Parser Generator.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFancyPars-lite[0m[38;5;12m (https://github.com/UplinkCoder/FancyPars-lite) - Fast parser generator.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mlibdparse[0m[38;5;12m (https://github.com/dlang-community/libdparse) - Library allowing to build lexers and parsers. Contains a lexer and a parser for the D language itself.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mllvm-d[0m[38;5;12m (https://github.com/Calrama/llvm-d) - D bindings for LLVM.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPegged[0m[38;5;12m (https://github.com/PhilippeSigaud/Pegged) - design, test and generate parsers for PEG grammars.[39m
|
||
|
||
[38;2;255;187;0m[4mGo[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mgoyacc[0m[38;5;12m (https://godoc.org/golang.org/x/tools/cmd/goyacc) - YACC Implementation in Go. Standard LALR(1) parser generator.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLLVM Go binding[0m[38;5;12m (https://godoc.org/llvm.org/llvm/bindings/go/llvm) - Official Go LLVM binding.[39m
|
||
|
||
[38;2;255;187;0m[4mGraal[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mGraal[0m[38;5;12m (https://github.com/graalvm/graal) - High-Performance Polyglot Runtime.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mGraal Core[0m[38;5;12m (https://github.com/graalvm/graal-core) - Compiler and Truffel Partial Evaluator.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mGraal VM[0m[38;5;12m (https://github.com/graalvm/graalvm) - Graal's multi-language VM distribution.[39m
|
||
|
||
[38;2;255;187;0m[4mHaskell[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBound[0m[38;5;12m (https://github.com/ekmett/bound/) / [39m[38;5;14m[1munbound[0m[38;5;12m (https://github.com/sweirich/replib) / [39m[38;5;14m[1munbound-generics[0m[38;5;12m (https://github.com/lambdageek/unbound-generics) - Libraries for manipulating bound variables.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mHoopl[0m[38;5;12m (https://github.com/haskell/hoopl) - Higher-order optimization library.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mllvm-general[0m[38;5;12m (https://github.com/bscarlet/llvm-general/) - Haskell bindings for LLVM.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mParsec[0m[38;5;12m [39m[38;5;12m(https://github.com/aslatter/parsec)[39m[38;5;12m [39m[38;5;12m/[39m[38;5;12m [39m[38;5;14m[1mattoparsec[0m[38;5;12m [39m[38;5;12m(https://github.com/bos/attoparsec)[39m[38;5;12m [39m[38;5;12m/[39m[38;5;12m [39m[38;5;14m[1mMegaparsec[0m[38;5;12m [39m[38;5;12m(https://github.com/mrkkrp/megaparsec)[39m[38;5;12m [39m[38;5;12m/[39m[38;5;12m [39m[38;5;14m[1mTrifecta[0m[38;5;12m [39m[38;5;12m(https://github.com/ekmett/trifecta/)[39m[38;5;12m [39m[38;5;12m/[39m[38;5;12m [39m[38;5;14m[1mAlex[0m[38;5;12m [39m[38;5;12m(https://github.com/simonmar/alex)[39m[38;5;12m [39m[38;5;12m+[39m[38;5;12m [39m
|
||
[38;5;14m[1mHappy[0m[38;5;12m [39m[38;5;12m(https://github.com/simonmar/happy)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mParsers[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mevery[39m[38;5;12m [39m[38;5;12muse[39m[38;5;12m [39m[38;5;12mcase.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mwl-pprint-text[0m[38;5;12m (https://github.com/ivan-m/wl-pprint-text) / [39m[38;5;14m[1mansi-wl-pprint[0m[38;5;12m (https://github.com/batterseapower/ansi-wl-pprint) - Walder-style pretty-printing libraries.[39m
|
||
|
||
[38;2;255;187;0m[4mJavaScript[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mIRHudra[0m[38;5;12m (http://mrale.ph/irhydra/2/) - Tool for displaying intermediate representations used by V8 and Dart VM optimizing compilers.[39m
|
||
[48;5;235m[38;5;249m+ **GitHub Repo** (https://github.com/mraleph/irhydra).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mJISON[0m[38;5;12m (http://zaa.ch/jison/docs/) - Context-free grammar parser generator for JavaScript.[39m
|
||
[48;5;235m[38;5;249m+ **GerHobbelt/jison** (https://github.com/GerHobbelt/jison) - active fork of jison with bunch of improvements. [49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mNearley[0m[38;5;12m (https://github.com/Hardmath123/nearley) - Simple, fast, powerful parser toolkit for JavaScript.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mOhm[0m[38;5;12m (https://github.com/harc/ohm) - A library and language for building parsers, interpreters, compilers, etc.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPEG.js[0m[38;5;12m (https://pegjs.org) - Simple parser generator for JavaScript.[39m
|
||
|
||
[38;2;255;187;0m[4mJVM[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mANTLR[0m[38;5;12m (http://www.antlr.org) - Parser generator for reading, processing, executing, or translating structured text or binary files.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBYAAC/J[0m[38;5;12m (http://byaccj.sourceforge.net) - BYACC/Java is an extension of the Berkeley v 1.8 YACC-compatible parser generator for Java.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCGLIB[0m[38;5;12m (https://github.com/cglib/cglib) - High level API library for generating and transforming Java Byte Code.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFCP JVM[0m[38;5;12m (http://wiki.freepascal.org/FPC_JVM) - JVM Backend for generating Java Byte Code that conforms to the JDK v1.5+ Specification and the Dalvik VM.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mJavaCC[0m[38;5;12m (https://javacc.org) - Java Compiler Construction and Parser Generator Toolkit.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mJavaCPP Presets for LLVM[0m[38;5;12m (https://github.com/bytedeco/javacpp-presets/tree/master/llvm) - Library for easily interacting with the LLVM API.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mJFlex[0m[38;5;12m (http://www.jflex.de) - JFlex is a lexical analyzer generator for Java with full Unicode support.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mJLex[0m[38;5;12m (http://www.cs.princeton.edu/~appel/modern/java/JLex/) - JLex is a lexical analyzer generator, that can be used in combination with CUP.[39m
|
||
|
||
[38;2;255;187;0m[4mKotlin[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mThe Whimsy Compiler Framework[0m[38;5;12m (https://github.com/norswap/whimsy) - Compiler framework research project in Kotlin.[39m
|
||
|
||
[38;2;255;187;0m[4mPython[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAST[0m[38;5;12m (https://docs.python.org/3.5/library/ast.html) - Python's builtin Abstract Syntax Tree package.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mDis[0m[38;5;12m (https://docs.python.org/3.6/library/dis.html) - Python's builtin Disassembler package.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mParsing[0m[38;5;12m (http://www.canonware.com/Parsing/) - Pure-Python module that implements an LR(1) parser generator, as well as CFSM and GLR parser drivers.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPLY[0m[38;5;12m (http://www.dabeaz.com/ply/) - Implementation of lex and yacc parsing tools for Python.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPyParsing[0m[38;5;12m (http://pyparsing.wikispaces.com/) - Alternative approach to creating and executing simple grammars, vs. the traditional lex/yacc approach, or the use of regular expressions.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mRPLY[0m[38;5;12m (https://github.com/alex/rply) - Port of the PLY project to RPython.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mRPython[0m[38;5;12m (https://rpython.readthedocs.io/en/latest/) - RPython is a framework for the implementatation of dynamic languages.[39m
|
||
|
||
[38;2;255;187;0m[4mLists of Python Parsing Tools[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mList of Language Parsing Tools at the Python Wiki[0m[38;5;12m (https://wiki.python.org/moin/LanguageParsing).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mSurvey of Python Parsers, by Ned Batchelder[0m[38;5;12m (http://nedbatchelder.com/text/python-parsers.html).[39m
|
||
|
||
[38;2;255;187;0m[4mRust[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCombine[0m[38;5;12m (https://github.com/Marwes/combine) - Parser Combinator Library for Rust.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mIronLLVM[0m[38;5;12m (https://github.com/jauhien/iron-llvm) - Safe LLVM bindings for Rust.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLALRPOP[0m[38;5;12m (https://github.com/nikomatsakis/lalrpop) - LR(1) parser generator for Rust.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mNom[0m[38;5;12m (https://github.com/Geal/nom) - Parser Combinator Framework.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPEG[0m[38;5;12m (https://github.com/kevinmehall/rust-peg) - PEG Parser Generator.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPest[0m[38;5;12m (https://github.com/pest-parser/pest) - PEG Parser Generator.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mRLS[0m[38;5;12m (https://github.com/rust-lang-nursery/rls) - The Rust Language Server implementation (aka RLS).[39m
|
||
|
||
[38;2;255;187;0m[4mCompilers and Interpreters[0m
|
||
|
||
[38;5;12m_This section aims at listing code projects of Compilers, Interpreters, Translators, Runtimes, Virtual Machines and the like._[39m
|
||
|
||
[38;2;255;187;0m[4mSerious Projects[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBabel.js[0m[38;5;12m (https://github.com/babel/babel) - Next-generation JavaScript Compiler.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBOLT[0m[38;5;12m (https://github.com/facebookincubator/BOLT) - Binary Optimization and Layout Tool.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mChezScheme's Compiler[0m[38;5;12m (https://github.com/cisco/ChezScheme) - ChezScheme Language Compiler.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mELENA Compiler[0m[38;5;12m (https://github.com/ELENA-LANG/elena-lang) - Elena programming language.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mEta' Compiler[0m[38;5;12m (https://github.com/typelead/eta) - JVM-based Compiler for the Eta Programming Language.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mFrege's Compiler[0m[38;5;12m (https://github.com/Frege/frege) - JVM-based Compiler for the Frege Programming Language.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mGluon's Compiler[0m[38;5;12m (https://github.com/gluon-lang/gluon) - Embedded Language Compiler written in Rust.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mHHVM[0m[38;5;12m (https://github.com/facebook/hhvm) - Virtual Machine for running programs written in Hack and PHP.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLily's Interpreter[0m[38;5;12m (https://github.com/FascinatedBox/lily).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLua's Interpreter[0m[38;5;12m (https://github.com/LuaDist/lua) - Official Lua Language Interperter.[39m
|
||
[48;5;235m[38;5;249m+ **Lua's Annotated Source Code** (http://stevedonovan.github.io/lua-5.1.4/) - Annotated source code of the Lua Programming Language Interpreter v5.1.4.[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mMirah's Compiler[0m[38;5;12m (https://github.com/mirah/mirah) - JVM-based Compiler for the Mirah Programming Language.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mNim's Compiler[0m[38;5;12m (https://github.com/nim-lang/Nim).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mP Lang[0m[38;5;12m (https://github.com/p-org/P) - The P Programming Language Runtime.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mRed's Compiler[0m[38;5;12m (https://github.com/red/red).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mRoslyn[0m[38;5;12m (https://github.com/dotnet/roslyn) - The .NET "Roslyn" Compiler Platform.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mSimple-MSIL-Compiler[0m[38;5;12m (https://github.com/LADSoft/Simple-MSIL-Compiler) - C compiler that compiles to CLR.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mTypeScript's Compiler[0m[38;5;12m (https://github.com/Microsoft/TypeScript).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mWren's Compiler[0m[38;5;12m (https://github.com/munificent/wren).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mZig's Compiler[0m[38;5;12m (https://github.com/zig-lang/zig) - Zig Language Compiler.[39m
|
||
|
||
[38;2;255;187;0m[4mEducational and Toy Projects[0m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAkilang[0m[38;5;12m (https://github.com/syegulalp/Akilang) - A compiler for a simple language, built with Python and LLVM[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mamacc[0m[38;5;12m (https://github.com/jserv/amacc) - Small C Compiler generating ELF executable for Arm architecture.[39m
|
||
[48;5;235m[38;5;249m+ Discussions: **HN** (https://news.ycombinator.com/item?id=11411124).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mBlack[0m[38;5;12m (http://www.is.ocha.ac.jp/~asai/Black/) - Scheme interpreter for the Reflective Programming Language "Black", by Kenichi Asai's.[39m
|
||
[48;5;235m[38;5;249m+ Other sources: **GitHub Mirror** (https://github.com/readevalprintlove/black).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mC4[0m[38;5;12m (https://github.com/rswier/c4) - C Lang in 4 Functions.[39m
|
||
[48;5;235m[38;5;249m+ Discussions: **HN** (https://news.ycombinator.com/item?id=8558822).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCarpVM[0m[38;5;12m (https://github.com/tekknolagi/carp) - Experimental VM implementation in C.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCharly[0m[38;5;12m (https://github.com/charly-lang/charly) - Interpreter for a dynamically typed language written in Crystal.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mDale[0m[38;5;12m (https://github.com/tomhrr/dale) - Lisp-flavoured C: a system programming language.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mEasyLang[0m[38;5;12m (https://github.com/erhanbaris/EasyLang) - Easy Programming Language / VM.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mEschelle[0m[38;5;12m (https://github.com/Eschelle/Eschelle) - Open source cross platform multi-paradigm language with VM & JIT[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mGecho[0m[38;5;12m (https://github.com/tekknolagi/gecho) - Simple-stack language implementation in C.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mgocaml[0m[38;5;12m (https://github.com/rhysd/gocaml) - Minimal functional programming language implementation in Go and LLVM.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mgone[0m[38;5;12m [39m[38;5;12m(https://github.com/paivett/gone)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mCompiler[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mtiny[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mlanguage[39m[38;5;12m [39m[38;5;12mcalled[39m[38;5;12m [39m[38;5;12mGone,[39m[38;5;12m [39m[38;5;12mimplemented[39m[38;5;12m [39m[38;5;12musing[39m[38;5;12m [39m[38;5;12mPython[39m[38;5;12m [39m[38;5;12m3.6,[39m[38;5;12m [39m[38;5;12mSLY[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mllvmlite.[39m[38;5;12m [39m[38;5;12mDeveloped[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mpart[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mJanuary[39m[38;5;12m [39m[38;5;12m2018[39m[38;5;12m [39m[38;5;14m[1mWrite[0m[38;5;14m[1m [0m[38;5;14m[1ma[0m[38;5;14m[1m [0m[38;5;14m[1mcompiler[0m[38;5;14m[1m [0m[38;5;14m[1mcourse[0m[38;5;12m [39m
|
||
[38;5;12m(http://www.dabeaz.com/compiler.html),[39m[38;5;12m [39m[38;5;12munder[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12msupervision[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mDavid[39m[38;5;12m [39m[38;5;12mBeazly.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mHython[0m[38;5;12m (https://github.com/mattgreen/hython) - Haskell-powered Python 3 interpreter.[39m
|
||
[48;5;235m[38;5;249m+ Discussions: **Reddit** (https://redd.it/46f8j4).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mllgo[0m[38;5;12m (https://github.com/llvm-mirror/llgo) - Go frontend for LLVM written in Go.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mMAL[0m[38;5;12m (https://github.com/kanaka/mal): Make a Lisp - Clojure-inspired Lisp interpreter implemented in 64 languages.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mMetaScala[0m[38;5;12m (https://github.com/lihaoyi/Metascala) - Metacircular JVM implementation in Scala.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mmini-js[0m[38;5;12m (https://github.com/maierfelix/mini-js) - Experimental self-hosted JavaScript compiler in 1K LoC.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mMunVM[0m[38;5;12m (https://github.com/MunVM/MunVM) - Lua VM & Compiler in C.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mMY-BASIC[0m[38;5;12m (https://github.com/paladin-t/my_basic) - An embeddable BASIC dialect interpreter in C with modern paradigms.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1moberonc[0m[38;5;12m (https://github.com/lboasso/oberonc) - A single pass, self-hosting compiler for the Oberon-07 programming language. It targets the JVM.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPoprc[0m[38;5;12m (https://github.com/HackerFoo/poprc) - Compiler for the Popr Language.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPyCOOLC[0m[38;5;12m (https://github.com/aalhour/PyCOOLC) - Compiler for the COOL Programming Language written in Python 3.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mRabbitVM[0m[38;5;12m (https://github.com/rabbitvm/rabbit) - RISC-based VM implementation in C.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mSquint[0m[38;5;12m (https://github.com/HPCguy/Squint) - A peephole optimizer for educational compilers generating stack based assembly.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mStackVM[0m[38;5;12m (https://github.com/KCreate/stackvm) - Virtual Machine with an integrated VRAM display.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mstack_cpu[0m[38;5;12m (https://github.com/dsturnbull/stack_cpu) - Stack-machine simulator.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mThe Super Tiny Compiler[0m[38;5;12m (https://github.com/thejameskyle/the-super-tiny-compiler) - Tiny educational compiler project in JavaScript.[39m
|
||
[48;5;235m[38;5;249m+ Discussions: **HN** (https://news.ycombinator.com/item?id=11395656).[49m[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mtinyc.c[0m[38;5;12m (http://www.iro.umontreal.ca/~felipe/IFT2030-Automne2002/Complements/tinyc.c) - Tiny-C language compiler in C.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mtisp[0m[38;5;12m (https://github.com/raviqqe/tisp) - "Time is Space" Programming Language Interpreter.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mUltra Tiny Compiler[0m[38;5;12m (https://github.com/antonmedv/ultra-tiny-compiler) - Another tiny compiler in less then 90 lines of code.[39m
|
||
|
||
|
||
[38;2;255;187;0m[4mRuntimes and VMs[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCakeML[0m[38;5;12m (https://github.com/CakeML/cakeml).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCoreCLR[0m[38;5;12m (https://github.com/dotnet/coreclr) - The .NET's Common Language Runtime.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mErlang BEAM[0m[38;5;12m (https://github.com/erlang/otp).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mHHVM[0m[38;5;12m (https://github.com/facebook/hhvm) - Facebook's Open Source VM for running Hack and PHP programs.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mHLVM[0m[38;5;12m (http://www.ffconsultancy.com/ocaml/hlvm/).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;12mJVM Implementations:[39m
|
||
[48;5;235m[38;5;249m+ **OpenJDK** (http://openjdk.java.net/).[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m+ **Kaffe** (https://github.com/kaffe/kaffe).[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m+ **JamVM** (http://jamvm.sourceforge.net) - **GitHub project mirror** (https://github.com/cfriedt/jamvm).[49m[39m
|
||
[48;5;235m[38;5;249m+ **Apache Harmony** (https://harmony.apache.org/).[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
[48;5;235m[38;5;249m+ **Other JVM Runtimes** (https://en.wikipedia.org/wiki/List_of_Java_virtual_machines).[49m[39m[48;5;235m[38;5;249m [49m[39m
|
||
|
||
|
||
[38;2;255;187;0m[4mBlogs[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mEli Bendersky[0m[38;5;12m (http://eli.thegreenplace.net/).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mJohn Regehr[0m[38;5;12m (https://blog.regehr.org/).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mKrister Walfridsson[0m[38;5;12m (https://kristerw.blogspot.com/).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLambda The Ultimate[0m[38;5;12m (http://lambda-the-ultimate.org).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLLVM Developers' Meetings[0m[38;5;12m (http://llvm.org/devmtg/).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLLVM Weekly[0m[38;5;12m (http://llvmweekly.org/) - Weekly newsletter about LLVM.[39m
|
||
|
||
|
||
[38;2;255;187;0m[4mCommunities[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1m/r/Compilers[0m[38;5;12m (https://www.reddit.com/r/Compilers) - Subreddit community about the theory and development of compilers.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1m/r/ProgrammingLanguages[0m[38;5;12m (https://reddit.com/r/ProgrammingLanguages) - Subreddit community that is dedicated to discussion of programming languages, programming language theory, design, their syntax and compilers.[39m
|
||
|
||
|
||
[38;2;255;187;0m[4mVerticals[0m
|
||
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1m68 Resources for Creating Programming Languages[0m[38;5;12m (https://tomassetti.me/resources-create-programming-languages/).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mAwesome Static Analysis[0m[38;5;12m (https://github.com/mre/awesome-static-analysis).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mCompiler Conferences, Workshops and Journals[0m[38;5;12m (https://github.com/MattPD/cpplinks/blob/master/compilers.md#conferences).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mLanguages and Compilers Network Graph[0m[38;5;12m (https://mohd-akram.github.io/languages/).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mminiKanren.org[0m[38;5;12m (http://minikanren.org) - Papers, Talks and Implementations of miniKanren and microKanren.[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mPLT Enlightenment[0m[38;5;12m (http://steshaw.org/plt/).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mResources for Amateur Compiler Writers[0m[38;5;12m (https://c9x.me/compile/bib/).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mSSA Form Bibliography[0m[38;5;12m (http://www.dcs.gla.ac.uk/~jsinger/ssa.html).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mSummer Schools[0m[38;5;12m (https://gist.github.com/biboudis/377b4a4de4d1718df2d0).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mThe Witchcraft Compiler Collection[0m[38;5;12m (https://github.com/endrazine/wcc).[39m
|
||
[38;5;12m [39m[38;5;12m [39m[48;5;12m[38;5;11m⟡[49m[39m[38;5;12m [39m[38;5;14m[1mTypeFunc[0m[38;5;12m (https://github.com/williamdemeo/TypeFunc).[39m
|
||
|
||
|
||
[38;2;255;187;0m[4mContributors[0m
|
||
|
||
|
||
[38;5;12m [39m
|
||
|
||
|
||
|
||
|
||
|
||
|
||
[38;2;255;187;0m[4mLicense[0m
|
||
|
||
[38;5;14m[1m![0m[38;5;12mCC0[39m[38;5;14m[1m (http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)[0m[38;5;12m (https://creativecommons.org/publicdomain/zero/1.0/)[39m
|
||
|
||
[38;5;12mTo the extent possible under law, [39m[38;5;14m[1mAhmad Alhour[0m[38;5;12m (http://aalhour.com) has waived all copyright and related or neighboring rights to this work.[39m
|
||
|
||
[38;5;12mThe logo was designed using [39m[38;5;14m[1mTextCraft[0m[38;5;12m (https://textcraft.net).[39m
|
||
|
||
[38;5;12mcompilers Github: https://github.com/aalhour/awesome-compilers[39m
|