577 lines
109 KiB
Plaintext
577 lines
109 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[39m[38;5;12m [39m[38;5;12mcurated[39m[38;5;12m [39m[38;5;12mlist[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mawesome[39m[38;5;12m [39m[38;5;12mresources,[39m[38;5;12m [39m[38;5;12mlearning[39m[38;5;12m [39m[38;5;12mmaterials,[39m[38;5;12m [39m[38;5;12mtools,[39m[38;5;12m [39m[38;5;12mframeworks,[39m[38;5;12m [39m[38;5;12mplatforms,[39m[38;5;12m [39m[38;5;12mtechnologies[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12msource[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12mprojects[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mfield[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mCompilers,[39m[38;5;12m [39m[38;5;12mInterpreters[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mRuntimes.[39m[38;5;12m [39m[38;5;12mThis[39m[38;5;12m [39m[38;5;12mlist[39m[38;5;12m [39m
|
||
[38;5;12mhas[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mbias[39m[38;5;12m [39m[38;5;12mtowards[39m[38;5;12m [39m[38;5;12meducation.[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[0m[38;5;14m[1m [0m[38;5;14m[1mLanguages:[0m[38;5;14m[1m [0m[38;5;14m[1mApplication[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mInterpretation[0m[38;5;12m [39m[38;5;12m(http://cs.brown.edu/courses/cs173/2012/book/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mExcellent[39m[38;5;12m [39m[38;5;12mintroduction[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12msubject[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12muses[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12mincremental[39m[38;5;12m [39m[38;5;12mapproach[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mbuilding[39m[38;5;12m [39m
|
||
[38;5;12mprograms.[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12mmistakes[39m[38;5;12m [39m[38;5;12mare[39m[38;5;12m [39m[38;5;12mincluded[39m[38;5;12m [39m[38;5;12mtoo[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mhighlight[39m[38;5;12m [39m[38;5;12mkey[39m[38;5;12m [39m[38;5;12mconcepts.[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[0m[38;5;14m[1m [0m[38;5;14m[1mLanguages:[0m[38;5;14m[1m [0m[38;5;14m[1mTheory[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mPractice[0m[38;5;12m [39m[38;5;12m(http://people.cs.uchicago.edu/~blume/classes/aut2008/proglang/text/offline.pdf)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mCollected[39m[38;5;12m [39m[38;5;12mlecture[39m[38;5;12m [39m[38;5;12mnotes[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12m_Programming[39m[38;5;12m [39m[38;5;12mLanguages_[39m[38;5;12m [39m
|
||
[38;5;12mcourse[39m[38;5;12m [39m[38;5;12mtaught[39m[38;5;12m [39m[38;5;12mat[39m[38;5;12m [39m[38;5;12mCarnegie[39m[38;5;12m [39m[38;5;12mMellon[39m[38;5;12m [39m[38;5;12mUniversity,[39m[38;5;12m [39m[38;5;12mmost[39m[38;5;12m [39m[38;5;12msuitable[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12man[39m[38;5;12m [39m[38;5;12mintroductory[39m[38;5;12m [39m[38;5;12mtext[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12msubject.[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[0m[38;5;14m[1m [0m[38;5;14m[1mMachines:[0m[38;5;14m[1m [0m[38;5;14m[1mVersatile[0m[38;5;14m[1m [0m[38;5;14m[1mPlatforms[0m[38;5;14m[1m [0m[38;5;14m[1mfor[0m[38;5;14m[1m [0m[38;5;14m[1mSystems[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mProcesses[0m[38;5;12m [39m[38;5;12m(https://www.amazon.com/dp/1558609105)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mKey[39m[38;5;12m [39m[38;5;12mtextbook[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12msubject[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mVirtual[39m[38;5;12m [39m[38;5;12mMachines[39m[38;5;12m [39m[38;5;12mwhich[39m[38;5;12m [39m[38;5;12mexamines[39m[38;5;12m [39m[38;5;12mvirtual[39m[38;5;12m [39m[38;5;12mmachine[39m[38;5;12m [39m
|
||
[38;5;12mtechnologies[39m[38;5;12m [39m[38;5;12macross[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mdisciplines[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12muse[39m[38;5;12m [39m[38;5;12mthem,[39m[38;5;12m [39m[38;5;12me.g.:[39m[38;5;12m [39m[38;5;12mOS[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mProgramming[39m[38;5;12m [39m[38;5;12mLanguages.[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[0m[38;5;14m[1m [0m[38;5;14m[1mInterpreters[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mCompilers[0m[38;5;14m[1m [0m[38;5;14m[1mfor[0m[38;5;14m[1m [0m[38;5;14m[1mthe[0m[38;5;14m[1m [0m[38;5;14m[1mRaspberry[0m[38;5;14m[1m [0m[38;5;14m[1mPi[0m[38;5;14m[1m [0m[38;5;14m[1mUsing[0m[38;5;14m[1m [0m[38;5;14m[1mPython[0m[38;5;12m [39m[38;5;12m(https://www.amazon.de/gp/product/1977509207)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mIf[39m[38;5;12m [39m[38;5;12myou[39m[38;5;12m [39m[38;5;12mwant[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mlearn[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mwrite[39m[38;5;12m [39m[38;5;12minterpreters[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mcompilers,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mat[39m[38;5;12m [39m
|
||
[38;5;12mthe[39m[38;5;12m [39m[38;5;12msame[39m[38;5;12m [39m[38;5;12mtime[39m[38;5;12m [39m[38;5;12mlearn[39m[38;5;12m [39m[38;5;12mhow[39m[38;5;12m [39m[38;5;12mPython,[39m[38;5;12m [39m[38;5;12mPython[39m[38;5;12m [39m[38;5;12mbytecode,[39m[38;5;12m [39m[38;5;12massembly[39m[38;5;12m [39m[38;5;12mlanguage,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mdynamic[39m[38;5;12m [39m[38;5;12mtyping[39m[38;5;12m [39m[38;5;12mwork,[39m[38;5;12m [39m[38;5;12mthis[39m[38;5;12m [39m[38;5;12mis[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mbook[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12myou.[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[0m[38;5;14m[1m [0m[38;5;14m[1mDesign[0m[38;5;14m[1m [0m[38;5;14m[1mand[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[1mVirtual[0m[38;5;14m[1m [0m[38;5;14m[1mMachines[0m[38;5;12m [39m[38;5;12m(https://www.amazon.com/dp/146658260X)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mStep-by-step[39m[38;5;12m [39m[38;5;12mhollistic[39m[38;5;12m [39m[38;5;12mintroduction[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mdesign[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mVirtual[39m[38;5;12m [39m[38;5;12mMachine[39m[38;5;12m [39m[38;5;12marchitectures,[39m[38;5;12m [39m[38;5;12mtopics[39m[38;5;12m [39m
|
||
[38;5;12mand[39m[38;5;12m [39m[38;5;12malgorithms.[39m[38;5;12m [39m[38;5;12mContains[39m[38;5;12m [39m[38;5;12millustrated[39m[38;5;12m [39m[38;5;12mfigures[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mimplementations[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12malgorithms[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mbook.[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[0m[38;5;14m[1m [0m[38;5;14m[1mTopics[0m[38;5;14m[1m [0m[38;5;14m[1min[0m[38;5;14m[1m [0m[38;5;14m[1mTypes[0m[38;5;14m[1m [0m[38;5;14m[1mand[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/0262162288)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mIntensive[39m[38;5;12m [39m[38;5;12mstudy[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mType[39m[38;5;12m [39m[38;5;12mSystems,[39m[38;5;12m [39m[38;5;12mcovering[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;12mbut[39m[38;5;12m [39m[38;5;12mnot[39m[38;5;12m [39m[38;5;12mlimited[39m[38;5;12m [39m[38;5;12mto:[39m[38;5;12m [39m[38;5;12mPrecise[39m[38;5;12m [39m[38;5;12mType[39m[38;5;12m [39m
|
||
[38;5;12mAnalyses;[39m[38;5;12m [39m[38;5;12mType[39m[38;5;12m [39m[38;5;12mSystems[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mLow-Level[39m[38;5;12m [39m[38;5;12mLanguages[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mAdvanced[39m[38;5;12m [39m[38;5;12mTechniques[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mML-style[39m[38;5;12m [39m[38;5;12mType[39m[38;5;12m [39m[38;5;12mInference..[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[0m[38;5;14m[1m [0m[38;5;14m[1mRetargetable[0m[38;5;14m[1m [0m[38;5;14m[1mC[0m[38;5;14m[1m [0m[38;5;14m[1mCompiler:[0m[38;5;14m[1m [0m[38;5;14m[1mDesign[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mImplementation[0m[38;5;12m [39m[38;5;12m(https://www.amazon.com/dp/0805316701)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mExamines[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mdesign[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mimplementation[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mIcc,[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mproduction-quality,[39m[38;5;12m [39m[38;5;12mretargetable[39m[38;5;12m [39m[38;5;12mcompiler,[39m[38;5;12m [39m
|
||
[38;5;12mdesigned[39m[38;5;12m [39m[38;5;12mat[39m[38;5;12m [39m[38;5;12mAT&T[39m[38;5;12m [39m[38;5;12mBell[39m[38;5;12m [39m[38;5;12mLabs[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mANSI[39m[38;5;12m [39m[38;5;12mC[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mlanguage.[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[0m[38;5;14m[1m [0m[38;5;14m[1man[0m[38;5;14m[1m [0m[38;5;14m[1mOptimizing[0m[38;5;14m[1m [0m[38;5;14m[1mCompiler[0m[38;5;12m [39m[38;5;12m(https://www.amazon.com/dp/155558179X)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mFills[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mgap[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mdomain[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mcode[39m[38;5;12m [39m[38;5;12moptimization.[39m[38;5;12m [39m[38;5;12mThis[39m[38;5;12m [39m[38;5;12mbook[39m[38;5;12m [39m[38;5;12mprovides[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mhigh[39m[38;5;12m [39m[38;5;12mlevel[39m[38;5;12m [39m[38;5;12mdesign[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mthorough[39m[38;5;12m [39m[38;5;12moptimizer,[39m
|
||
[38;5;12mcode[39m[38;5;12m [39m[38;5;12mgenerator,[39m[38;5;12m [39m[38;5;12mscheduler[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mregister[39m[38;5;12m [39m[38;5;12mallocator[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mgeneric[39m[38;5;12m [39m[38;5;12mmodern[39m[38;5;12m [39m[38;5;12mRISC[39m[38;5;12m [39m[38;5;12mprocessor.[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[0m[38;5;14m[1m [0m[38;5;14m[1mGarbage[0m[38;5;14m[1m [0m[38;5;14m[1mCollection[0m[38;5;14m[1m [0m[38;5;14m[1mHandbook:[0m[38;5;14m[1m [0m[38;5;14m[1mThe[0m[38;5;14m[1m [0m[38;5;14m[1mArt[0m[38;5;14m[1m [0m[38;5;14m[1mof[0m[38;5;14m[1m [0m[38;5;14m[1mAutomatic[0m[38;5;14m[1m [0m[38;5;14m[1mMemory[0m[38;5;14m[1m [0m[38;5;14m[1mManagement[0m[38;5;12m [39m[38;5;12m(https://www.amazon.com/dp/1420082795)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mThe[39m[38;5;12m [39m[38;5;12mliving-classic[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mdefinitive[39m[38;5;12m [39m[38;5;12mtext[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mtopic[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mGarbage[39m[38;5;12m [39m[38;5;12mCollection,[39m
|
||
[38;5;12malso[39m[38;5;12m [39m[38;5;12mcovers[39m[38;5;12m [39m[38;5;12mhardware-based[39m[38;5;12m [39m[38;5;12moptimizations[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mlight[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mmodern[39m[38;5;12m [39m[38;5;12madvances[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mCPU[39m[38;5;12m [39m[38;5;12marchitectures.[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:[0m[38;5;14m[1m [0m[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[1mComputer[0m[38;5;14m[1m [0m[38;5;14m[1mfrom[0m[38;5;14m[1m [0m[38;5;14m[1mFirst[0m[38;5;14m[1m [0m[38;5;14m[1mPrinciples,[0m[38;5;14m[1m [0m[38;5;14m[1mPart[0m[38;5;14m[1m [0m[38;5;14m[1m2[0m[38;5;12m [39m[38;5;12m(https://www.coursera.org/learn/nand2tetris2)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mThis[39m[38;5;12m [39m[38;5;12m2nd[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;12mNand2Tetris[39m[38;5;12m [39m[38;5;12mcourse[39m[38;5;12m [39m[38;5;12mcovers[39m[38;5;12m [39m[38;5;12mbasic[39m[38;5;12m [39m[38;5;12mlanguage[39m[38;5;12m [39m[38;5;12mdesign[39m[38;5;12m [39m[38;5;12mand[39m
|
||
[38;5;12melementary[39m[38;5;12m [39m[38;5;12mcompiler[39m[38;5;12m [39m[38;5;12mconstruction[39m[38;5;12m [39m[38;5;12mconcepts[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12maddition[39m[38;5;12m [39m[38;5;12mto[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;12mon[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mbasic[39m[38;5;12m [39m[38;5;12mlevel.[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[0m[38;5;14m[1m [0m[38;5;14m[1mLanguages:[0m[38;5;14m[1m [0m[38;5;14m[1mPart[0m[38;5;14m[1m [0m[38;5;14m[1mB,[0m[38;5;14m[1m [0m[38;5;14m[1mby[0m[38;5;14m[1m [0m[38;5;14m[1mGrossman[0m[38;5;12m [39m[38;5;12m(https://www.coursera.org/learn/programming-languages-part-b)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mPart[39m[38;5;12m [39m[38;5;12m2[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12m3-part[39m[38;5;12m [39m[38;5;12mcourse[39m[38;5;12m [39m[38;5;12mseries[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mbasic[39m[38;5;12m [39m[38;5;12mconcepts[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mlanguages,[39m
|
||
[38;5;12mwith[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mstrong[39m[38;5;12m [39m[38;5;12memphasis[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming.[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[0m[38;5;14m[1m [0m[38;5;14m[1mLanguages:[0m[38;5;14m[1m [0m[38;5;14m[1mPart[0m[38;5;14m[1m [0m[38;5;14m[1mC,[0m[38;5;14m[1m [0m[38;5;14m[1mby[0m[38;5;14m[1m [0m[38;5;14m[1mGrossman[0m[38;5;12m [39m[38;5;12m(https://www.coursera.org/learn/programming-languages-part-c)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mPart[39m[38;5;12m [39m[38;5;12m3[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12m3-part[39m[38;5;12m [39m[38;5;12mcourse[39m[38;5;12m [39m[38;5;12mseries[39m[38;5;12m [39m[38;5;12mto[39m[38;5;12m [39m[38;5;12mthe[39m[38;5;12m [39m[38;5;12mbasic[39m[38;5;12m [39m[38;5;12mconcepts[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mlanguages,[39m
|
||
[38;5;12mwith[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mstrong[39m[38;5;12m [39m[38;5;12memphasis[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mfunctional[39m[38;5;12m [39m[38;5;12mprogramming.[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,[0m[38;5;14m[1m [0m[38;5;14m[1mLogic,[0m[38;5;14m[1m [0m[38;5;14m[1mSemantics,[0m[38;5;14m[1m [0m[38;5;14m[1mand[0m[38;5;14m[1m [0m[38;5;14m[1mVerification[0m[38;5;14m[1m [0m[38;5;14m[1mfrom[0m[38;5;14m[1m [0m[38;5;14m[1mOregon[0m[38;5;14m[1m [0m[38;5;14m[1mUniversity's[0m[38;5;14m[1m [0m[38;5;14m[1mSummer[0m[38;5;14m[1m [0m[38;5;14m[1mSchool[0m[38;5;12m [39m[38;5;12m(https://www.cs.uoregon.edu/research/summerschool/summer15/curriculum.html)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mSummer[39m[38;5;12m [39m[38;5;12mSchool[39m[38;5;12m [39m[38;5;12mprogram[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m
|
||
[38;5;12mconsists[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12m80[39m[38;5;12m [39m[38;5;12mminute[39m[38;5;12m [39m[38;5;12mlectures[39m[38;5;12m [39m[38;5;12mpresented[39m[38;5;12m [39m[38;5;12mby[39m[38;5;12m [39m[38;5;12minternationally[39m[38;5;12m [39m[38;5;12mrecognized[39m[38;5;12m [39m[38;5;12mleaders[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mprogramming[39m[38;5;12m [39m[38;5;12mlanguages[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mformal[39m[38;5;12m [39m[38;5;12mreasoning[39m[38;5;12m [39m[38;5;12mresearch.[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[0m[38;5;14m[1m [0m[38;5;14m[1mStatic[0m[38;5;14m[1m [0m[38;5;14m[1mAssignment[0m[38;5;14m[1m [0m[38;5;14m[1mForm[0m[38;5;14m[1m [0m[38;5;14m[1mSeminar[0m[38;5;12m [39m[38;5;12m(http://compilers.cs.uni-saarland.de/ssasem/)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mIntroductory[39m[38;5;12m [39m[38;5;12mseminar[39m[38;5;12m [39m[38;5;12mon[39m[38;5;12m [39m[38;5;12mSSA[39m[38;5;12m [39m[38;5;12mForm,[39m[38;5;12m [39m[38;5;12mCompiler[39m[38;5;12m [39m[38;5;12mOptimizations[39m[38;5;12m [39m[38;5;12munder[39m[38;5;12m [39m[38;5;12mit[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mits[39m[38;5;12m [39m[38;5;12mapplications[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12mother[39m[38;5;12m [39m[38;5;12mareas[39m
|
||
[38;5;12msuch[39m[38;5;12m [39m[38;5;12mas[39m[38;5;12m [39m[38;5;12mProgram[39m[38;5;12m [39m[38;5;12mAnalysis[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mVerification.[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[0m[38;5;14m[1m [0m[38;5;14m[1mLisp[0m[38;5;14m[1m [0m[38;5;14m[1mInterpreter[0m[38;5;12m [39m[38;5;12m(https://maryrosecook.com/blog/post/little-lisp-interpreter)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mInterpreter[39m[38;5;12m [39m[38;5;12mthat[39m[38;5;12m [39m[38;5;12msupports[39m[38;5;12m [39m[38;5;12mfunction[39m[38;5;12m [39m[38;5;12minvocation,[39m[38;5;12m [39m[38;5;12mlambdas,[39m[38;5;12m [39m[38;5;12mlets,[39m[38;5;12m [39m[38;5;12mifs,[39m[38;5;12m [39m[38;5;12mnumbers,[39m[38;5;12m [39m[38;5;12mstrings,[39m[38;5;12m [39m[38;5;12ma[39m[38;5;12m [39m[38;5;12mfew[39m[38;5;12m [39m[38;5;12mlibrary[39m[38;5;12m [39m
|
||
[38;5;12mfunctions,[39m[38;5;12m [39m[38;5;12mand[39m[38;5;12m [39m[38;5;12mlists[39m[38;5;12m [39m[38;5;12min[39m[38;5;12m [39m[38;5;12munder[39m[38;5;12m [39m[38;5;12m120[39m[38;5;12m [39m[38;5;12mlines[39m[38;5;12m [39m[38;5;12mof[39m[38;5;12m [39m[38;5;12mJavaScript.[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 [39m[38;5;12m(https://github.com/ekmett/bound/)[39m[38;5;12m [39m[38;5;12m/[39m[38;5;12m [39m[38;5;14m[1munbound[0m[38;5;12m [39m[38;5;12m(https://github.com/sweirich/replib)[39m[38;5;12m [39m[38;5;12m/[39m[38;5;12m [39m[38;5;14m[1munbound-generics[0m[38;5;12m [39m[38;5;12m(https://github.com/lambdageek/unbound-generics)[39m[38;5;12m [39m[38;5;12m-[39m[38;5;12m [39m[38;5;12mLibraries[39m[38;5;12m [39m[38;5;12mfor[39m[38;5;12m [39m[38;5;12mmanipulating[39m[38;5;12m [39m
|
||
[38;5;12mbound[39m[38;5;12m [39m[38;5;12mvariables.[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
|