{"id":13605272,"url":"https://github.com/imteekay/programming-language-research","last_synced_at":"2025-04-14T01:57:26.290Z","repository":{"id":41840228,"uuid":"181586065","full_name":"imteekay/programming-language-research","owner":"imteekay","description":"✨ Programming Language Research, Applied PLT \u0026 Compilers","archived":false,"fork":false,"pushed_at":"2024-10-22T11:41:16.000Z","size":37584,"stargazers_count":920,"open_issues_count":0,"forks_count":57,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-04-14T01:57:18.438Z","etag":null,"topics":["compiler","compiler-design","plt","programming-language-theory","programming-languages-design"],"latest_commit_sha":null,"homepage":"https://iamtk.co/tags/programming-language-design","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/imteekay.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":"FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["imteekay"],"custom":["https://teekay.substack.com"]}},"created_at":"2019-04-16T00:37:13.000Z","updated_at":"2025-04-11T15:32:41.000Z","dependencies_parsed_at":"2024-10-22T16:30:54.883Z","dependency_job_id":null,"html_url":"https://github.com/imteekay/programming-language-research","commit_stats":{"total_commits":585,"total_committers":5,"mean_commits":117.0,"dds":"0.017094017094017144","last_synced_commit":"e24124785cc1f4dc098ee0ec6cc2f9c84fe00c7d"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imteekay%2Fprogramming-language-research","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imteekay%2Fprogramming-language-research/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imteekay%2Fprogramming-language-research/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imteekay%2Fprogramming-language-research/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/imteekay","download_url":"https://codeload.github.com/imteekay/programming-language-research/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248809032,"owners_count":21164895,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["compiler","compiler-design","plt","programming-language-theory","programming-languages-design"],"created_at":"2024-08-01T19:00:56.835Z","updated_at":"2025-04-14T01:57:26.269Z","avatar_url":"https://github.com/imteekay.png","language":"Clojure","readme":"\u003csamp\u003e\n\n# Programming Language Research\n\n[Research](./research) on programming languages, compilers, functional programming, devtools.\n\n## Table of Contents\n\n- [Courses](#courses)\n- [Books](#books)\n- [Learning Paths](#learning-paths)\n- [Experiments](#experiments)\n- [Papers](#papers)\n- [Programming Language Design / PLT](#programming-language-design--plt)\n- [Compiler](#compiler)\n- [PL Paradigms](#pl-paradigms)\n- [Interpreter](#interpreter)\n- [PL Research](#pl-research)\n- [Type System](#type-system)\n- [Parsers](#parsers)\n- [Backend](#backend)\n- [Program Synthesis](#program-synthesis)\n- [Language Learnings](#language-learnings)\n  - [TypeScript](#typescript)\n  - [Ecmascript](#ecmascript)\n  - [Rust](#rust)\n  - [Python](#python)\n  - [OCaml](#ocaml)\n- [Browser](#browser)\n- [Web UI](#web-ui)\n- [Careers](#careers)\n  - [Jobs](#jobs)\n  - [Schools](#schools)\n- [People in PL](#people-in-pl)\n\n## Courses\n\n- [🎥 301 - Organization of Programming Languages](https://www.youtube.com/watch?v=j2pYeKjq_60\u0026list=PLB1enDd0fV0i5SWGe-A1YjmD8MmlGavIj\u0026ab_channel=JayMcCarthy)\n- [🎥 Benjamin Pierce - Software foundations](https://www.youtube.com/playlist?list=PLGCr8P_YncjUT7gXUVJWSoefQ40gTOz89)\n- [🎥 CIS352 - Principles of Programming Languages](https://www.youtube.com/watch?v=2jrwXpUZW7k\u0026list=PLXaqTeMx01E_eK1ZEpKvKL5KwSaj7cJW9\u0026ab_channel=KristopherMicinski)\n- [🎥 CMSC 430: Design and Implementation of Programming Languages](https://www.youtube.com/watch?v=KTWq1XAfuMQ\u0026list=PLsg0tbEwZlcz0Xzv1rACy7xcQZiBcQ_iE\u0026ab_channel=cmsc430)\n- [🎥 CS 3520/6520 - Programming Languages](https://www.youtube.com/@matthewflatt489/playlists)\n- [🎥 CS3110 - Functional Data Structures](https://www.youtube.com/watch?v=MUcka_SvhLw\u0026list=PLre5AT9JnKShBOPeuiD9b-I4XROIJhkIU\u0026ab_channel=MichaelRyanClarkson)\n- [🎥 CS3MI3 - Principles of Programming Languages](https://www.youtube.com/playlist?list=PLF7ZhwvkczzM3tTaJTVYIcsGsX8uyIeXA)\n- [🎥 CS520 - Theories Of Programming Languages](https://www.youtube.com/playlist?list=PLvV9DPeJV9xx0NegrG4gNu8WXSXibDICu)\n- [🎥 CSE340 - Principles of Programming Languages](https://www.youtube.com/playlist?list=PLK06XT3hFPzilgF1mi_hHqcXO1-o_8OEe)\n- [🎥 LINFO1131 - Advanced programming language concepts](https://www.youtube.com/playlist?list=PLw454N-VXALROTZ_phkQ-D4QDU5w3x4R8)\n- [💻 Accelerated 1](https://course.ccs.neu.edu/cs2500accelf17/index.html)\n- [💻 All the courses Matthias Felleisen teach](https://felleisen.org/matthias/teaching.html)\n- [💻 Building a Parser from scratch](https://dmitrysoshnikov.teachable.com/p/parser-from-scratch)\n- [💻 CMSC330 - Organization of Programming Languages](https://www.cs.umd.edu/class/spring2022/cmsc330/#schedule)\n- [💻 CMU - CS6120 - Advanced Compilers](https://www.cs.cornell.edu/courses/cs6120/2022sp/lesson)\n- [💻 Compilers — Stanford](https://online.stanford.edu/courses/soe-ycscs1-compilers)\n- [💻 Compilers Design Recipe](https://soft.vub.ac.be/compilers/book_sec_recipe.html)\n- [💻 Compilers: Theory and Practice — Udacity](https://www.udacity.com/course/compilers-theory-and-practice--ud168)\n- [💻 Concepts in Programming Languages](https://www.cl.cam.ac.uk/teaching/1617/ConceptsPL/materials.html)\n- [💻 COP 4020 - Programming Languages I](https://www.cs.ucf.edu/~leavens/COP4020/resources.shtml)\n- [💻 COS 326 - Functional Programming](https://mediacentral.princeton.edu/channel/COS+326+Functional+Programming/174748251)\n- [💻 CS 242: Programming Languages, Fall 2019](https://stanford-cs242.github.io/f19)\n- [💻 CS019 - Accelerated Introduction to Computer Science](https://cs.brown.edu/courses/cs019/2018/index.html)\n- [💻 CS164 Programming Languages and Compilers](https://www.bilibili.com/video/BV1NW411b79N?p=1)\n- [💻 CS242 - Programming Languages - Stanford](https://web.stanford.edu/class/cs242/coursework.html)\n- [💻 CS2500 - Fundamentals of Computer Science](https://www.ccs.neu.edu/home/nderbinsky/fundies1/m1.html)\n- [💻 CIS 341 - Compilers](https://www.seas.upenn.edu/~cis3410/20sp/)\n- [💻 CSCI1730 - Programming Languages - Application and Interpretation](https://cs.brown.edu/courses/cs173/2012/Videos)\n- [💻 CSE 131 - Compiler Construction](https://podcast.ucsd.edu/watch/SP17/cse131_sp17/23)\n- [💻 CSE230 - Principles/Programming Languages](https://podcast.ucsd.edu/watch/fa18/cse230_b00/24)\n- [💻 Essentials of Programming Languages](http://proglang.informatik.uni-freiburg.de/teaching/proglang/2020ws)\n- [💻 Fundamentals 1](https://course.ccs.neu.edu/cs2500f16/index.html)\n- [💻 Fundamentals 2](https://course.ccs.neu.edu/cs2510)\n- [💻 Hack Your Own Language](https://felleisen.org/matthias/4620-s18/index.html)\n- [💻 History of Programming Languages](https://felleisen.org/matthias/7480-s17/index.html)\n- [💻 Indiana University Compiler Course](https://iu.mediaspace.kaltura.com/media/Compiler+Course/1_hwlujpzd)\n- [💻 Introduction to Compiler Construction](https://www.students.cs.ubc.ca/~cs-411/2020w2/index.html)\n- [💻 Jay McCarthy - 406 Compiler Construction](https://youtu.be/4tUj8BuC0qM)\n- [💻 Matthias Felleisen - Intensive Principles of Programming Languages](https://felleisen.org/matthias/7400-s14/Problem_Sets.html)\n- [💻 Matthias Felleisen - Principles of Programming Languages](https://felleisen.org/matthias/4400-s20/lectures.html)\n- [💻 Principles of Compiler Design](https://www.bilibili.com/video/BV1qt41167uU?p=1)\n- [💻 Programming Language Foundations in Agda](https://cs.uwaterloo.ca/~plragde/747/notes/index.html)\n- [💻 Programming Languages and Logic](https://www.cs.cornell.edu/courses/cs4110/2021fa)\n- [💻 Programming Languages Course given by DCC-UFMG](https://hanielb.github.io/2021.2-lp)\n- [💻 Programming Languages Ⅰ](https://www.coursera.org/learn/programming-languages-1)\n- [💻 Programming Languages Ⅱ](https://www.coursera.org/learn/programming-languages2)\n- [💻 Ray Total Courses](https://cs.lmu.edu/~ray)\n- [💻 Theory of Programming Languages](http://staff.ustc.edu.cn/~yuzhang/tpl/2020s/index.html#reading)\n\n## Books\n\n- [📚 Compiler Construction](https://c9x.me/compile/bib/wirthcc.pdf)\n- [📚 Compiler Design](https://www.goodreads.com/book/show/5205564-compiler-design-mar-15-2006-chattopadhyay-santanu)\n- [📚 Compiling with Continuations](https://www.goodreads.com/book/show/2079575.Compiling_with_Continuations)\n- [📚 Concepts of Programming Languages](https://www.goodreads.com/book/show/603257.Concepts_of_Programming_Languages)\n- [📚 Discrete Mathematics for Computing](https://www.amazon.com/gp/product/0230216110/ref=sw_img_1?smid=ATVPDKIKX0DER\u0026psc=1)\n- [📚 Engineering a Compiler](https://www.amazon.com/Engineering-Compiler-Keith-D-Cooper/dp/0128154128/ref=sr_1_1?keywords=Engineering+a+Compiler\u0026qid=1675768541\u0026s=books\u0026sr=1-1)\n- [📚 Homotopy Type Theory](https://www.goodreads.com/book/show/18106978-homotopy-type-theory)\n- [📚 How to Design Programs: An Introduction to Programming and Computing](https://www.goodreads.com/book/show/1119079.How_to_Design_Programs)\n- [📚 HTDP](https://htdp.org/2020-8-1/Book/index.html)\n- [📚 Human-Centered Programming Languages](https://bookish.press/hcpl)\n- [📚 Introduction to Compilers and Language Design](https://www3.nd.edu/~dthain/compilerbook/compilerbook.pdf)\n- [📚 Modern Compiler Design](https://www.amazon.com/Modern-Compiler-Design-Dick-Grune/dp/1461446988/ref=sr_1_1?crid=7JFBNCBOHIW9\u0026keywords=Modern+Compiler+Design\u0026qid=1675768609\u0026s=books\u0026sprefix=modern+compiler+design%2Cstripbooks-intl-ship%2C228\u0026sr=1-1)\n- [📚 Modern Compiler Implementation in C](https://www.amazon.com/Modern-Compiler-Implementation-Andrew-Appel/dp/0521607655)\n- [📚 Parsing Techniques: A Practical Guide](https://www.goodreads.com/en/book/show/1756599)\n- [📚 Parsing Techniques. A Practical Guide](https://www.amazon.com/Parsing-Techniques-Practical-Monographs-Computer-ebook/dp/B0017AMLL8/ref=sr_1_1?crid=1W94M9OYZ6MH8\u0026keywords=Parsing+Techniques.+A+Practical+Guide\u0026qid=1675768574\u0026s=books\u0026sprefix=parsing+techniques.+a+practical+guide%2Cstripbooks-intl-ship%2C211\u0026sr=1-1)\n- [📚 Practical Foundations for Programming Languages](https://www.amazon.com/Practical-Foundations-Programming-Languages-Professor/dp/1107029570)\n- [📚 Programming Languages: Application and Interpretation](https://www.goodreads.com/book/show/10580126-programming-languages)\n- [📚 SICP — Structure and Interpretation of Computer](./research/books/sicp)\n- [📚 The Elements Of Computing Systems](https://www.amazon.com/Elements-Computing-Systems-second-Principles/dp/0262539802/ref=sr_1_1?crid=2CZ8FBOMQ0X7C\u0026keywords=The+Elements+Of+Computing+Systems\u0026qid=1675768639\u0026s=books\u0026sprefix=the+elements+of+computing+systems%2Cstripbooks-intl-ship%2C463\u0026sr=1-1)\n- [📚 Thinking with Types: Type-Level Programming in Haskell](https://leanpub.com/thinking-with-types)\n- [📚 Type Theory and Formal Proof: An Introduction](https://www.goodreads.com/book/show/21442441-type-theory-and-formal-proof)\n- [📚 Type Theory and Functional Programming](https://www.goodreads.com/book/show/11364683-type-theory-and-functional-programming)\n\n## Learning Paths\n\n- [Advanced Programming Languages](http://di002.edv.uniovi.es/~labra/APL.html)\n- [Compiler Engineer Path](http://dmitrysoshnikov.com/courses/compiler-engineer-path)\n- [Learn Type Theory](https://github.com/jozefg/learn-tt)\n- [PLR \u0026 Compiler Learning Path](learning-path.md)\n- [Programming Language Theory Path](https://steshaw.org/plt)\n- [So You Want to Be a (Compiler) Wizard](https://belkadan.com/blog/2016/05/So-You-Want-To-Be-A-Compiler-Wizard)\n- [Programming languages resources](https://bernsteinbear.com/pl-resources)\n\n## Experiments\n\n- [A miniature model of the Typescript compiler](https://github.com/imteekay/mini-typescript)\n- [An interpreter for the Lox programming language](./research/experiments/lox.ts)\n- [An interpreter for the Monkey programming language](https://github.com/imteekay/crafting-an-interpreter)\n- [How the TypeScript compiler works](https://www.iamtk.co/series/the-typescript-compiler)\n\n### Papers\n\n- [📜 10 papers that all PhD students in programming languages ought to know](https://github.com/nuprl/10PL)\n- [📜 A syntactic approach to type soundness](https://web.eecs.umich.edu/~weimerw/2008-615/reading/wright92syntactic.pdf)\n- [📜 A Theory of Type Polymorphism in Programming](https://homepages.inf.ed.ac.uk/wadler/papers/papers-we-love/milner-type-polymorphism.pdf)\n- [📜 Abstracting Gradual Typing](https://www.cs.ubc.ca/~rxg/agt.pdf)\n- [📜 An Axiomatic Basis for Computer Programming](http://sunnyday.mit.edu/16.355/Hoare-CACM-69.pdf)\n- [📜 Call-by-name, call-by-value, and the λ-calculus](https://www.sciencedirect.com/science/article/pii/0304397575900171?ref=pdf_download\u0026fr=RR-2\u0026rr=795ba8dc2acd4edd)\n- [📜 Classic Papers in Programming Languages and Logic](https://www.cs.cmu.edu/~crary/819-f09)\n- [📜 Efficient Gradual Typing](https://arxiv.org/pdf/1802.06375.pdf)\n- [📜 Fundamental concepts in programming languages](https://www.math.pku.edu.cn/teachers/qiuzy/plan/lits/FundamentalConceptOfPL.pdf)\n- [📜 Gradual Type Theory](https://arxiv.org/pdf/1811.02440.pdf)\n- [📜 Gradual Typing for Functional Languages](https://citeseerx.ist.psu.edu/document?repid=rep1\u0026type=pdf\u0026doi=b7ca4b0e6d3119aa341af73964dbe38d341061dd)\n- [📜 Gradual Typing: A New Perspective](https://www.irif.fr/~gc/papers/popl19.pdf)\n- [📜 How Statically-Typed Functional Programmers Write Code](./research/papers/how-statically-typed-functional-programmers-write-code)\n- [📜 Migrating Gradual Types](https://dl.acm.org/doi/pdf/10.1145/3158103)\n- [📜 On Model Subtyping](https://hal.inria.fr/hal-00695034/document)\n- [📜 On Understanding Types, Data Abstraction, and Polymorphism](http://lucacardelli.name/Papers/OnUnderstanding.A4.pdf)\n- [📜 Papers on programming languages: ideas from 70's for today](https://medium.com/@mikhail.barash.mikbar/papers-on-programming-languages-ideas-from-70s-for-today-2931891d4dbd)\n- [📜 Papers to read](https://github.com/haskellcamargo/papers-to-read)\n- [📜 Pluggable Type Systems](https://bracha.org/pluggableTypesPosition.pdf)\n- [📜 Programming in Homotopy Type Theory](http://dlicata.web.wesleyan.edu/pubs/lh122tttalks/lh12wg2.8.pdf)\n- [📜 Refined Criteria for Gradual Typing](https://drops.dagstuhl.de/opus/volltexte/2015/5031/pdf/21.pdf)\n- [📜 Static Typing Where Possible, Dynamic Typing When Needed: The End of the Cold War Between Programming Languages](https://www.ics.uci.edu/~lopes/teaching/inf212W12/readings/rdl04meijer.pdf)\n- [📜 The Behavior of Gradual Types: A User Study](https://cs.brown.edu/~sk/Publications/Papers/Published/tgpk-beh-grad-types-user-study/paper.pdf)\n- [📜 The Design Principles of the Elixir Type System](https://arxiv.org/pdf/2306.06391.pdf)\n- [📜 The Next 700 Programming Languages](https://www.cs.cmu.edu/~crary/819-f09/Landin66.pdf)\n- [📜 Towards a theory of type structure](https://www.cis.upenn.edu/~stevez/cis670/pdfs/Reynolds74.pdf)\n- [📜 Towards Practical Gradual Typing](https://www2.ccs.neu.edu/racket/pubs/ecoop2015-takikawa-et-al.pdf)\n- [📜 Type Inference Algorithms](http://www.win.tue.nl/~hzantema/semssm.pdf)\n- [📜 Type Inference for Records in a Natural Extension of ML](https://www.cs.cmu.edu/~aldrich/courses/819/row.pdf)\n- [📜 Type Systems for Object-Oriented Programming Languages](http://i.stanford.edu/pub/cstr/reports/cs/tr/98/1602/CS-TR-98-1602.pdf)\n- [📜 Type Systems](http://lucacardelli.name/papers/typesystems.pdf)\n- [📜 What every compiler writer should know about programmers](https://www.complang.tuwien.ac.at/kps2015/proceedings/KPS_2015_submission_29.pdf)\n- [📜 Why Dependent Types Matter](http://www.cs.nott.ac.uk/~psztxa/publ/ydtm.pdf)\n\n## Programming Language Design / PLT\n\n- [🎥 A Language Creators' Conversation: Guido van Rossum, James Gosling, Larry Wall \u0026 Anders Hejlsberg](https://www.youtube.com/watch?v=csL8DLXGNlU\u0026ab_channel=PyCascades)\n- [🎥 A Tale of Two Asyncs: Open Source Language Design in Rust and Node.js](https://www.youtube.com/watch?v=aGJTXdXQN2o)\n- [🎥 Another Go at Language Design](https://www.youtube.com/watch?v=7VcArS4Wpqk)\n- [🎥 Bjarne Stroustrup : C++: evolving a useful language](https://www.youtube.com/watch?v=6jwOoIywnZE\u0026ab_channel=BrownCS)\n- [🎥 Concepts of Programming Languages](https://www.youtube.com/playlist?list=PLgybIyDbLkEQUTX00Mazlcb7KhX1UzpXs)\n- [🎥 CS520 Theories of Programming Languages — KAIST](https://www.youtube.com/playlist?list=PLvV9DPeJV9xx0NegrG4gNu8WXSXibDICu)\n- [🎥 Delimited Continuations, Demystified by Alexis King](https://www.youtube.com/watch?v=TE48LsgVlIU\u0026ab_channel=CodeSync)\n- [🎥 Going beyond JavaScript](https://www.youtube.com/watch?v=VwisE497Nsg\u0026ab_channel=Intelligence.ai%3AConcepts-FirstPodcast)\n- [🎥 Growing a Language, by Guy Steele](https://www.youtube.com/watch?v=_ahvzDzKdB0)\n- [🎥 How Rust does OSS](https://www.youtube.com/watch?v=m0rakUuPXFM)\n- [🎥 JavaScript Static Analysis for Evolving Language Specifications](https://www.youtube.com/watch?v=3Jlu_jnHB8g\u0026ab_channel=PLRGKAIST)\n- [🎥 Linguistics and Compilers](https://www.youtube.com/watch?v=Ix6M9Nj_Dug\u0026ab_channel=FunctionalSC)\n- [🎥 On understanding types, data abstraction and effects](https://www.youtube.com/watch?v=3Cdw5x72k_g\u0026ab_channel=MicrosoftResearch)\n- [🎥 Principles of Programming Languages by Robert M. Siegfried](https://www.youtube.com/playlist?list=PLTo1TmBz2ekof8VsYaoTxP-9VgJ9P-dTO)\n- [🎥 Principles of Programming Languages](https://www.youtube.com/playlist?list=PLK06XT3hFPzilgF1mi_hHqcXO1-o_8OEe)\n- [🎥 Rob Pike - What We Got Right, What We Got Wrong](https://www.youtube.com/watch?v=yE5Tpp2BSGw)\n- [🎥 So many programming languages so little time](https://www.youtube.com/watch?v=FEjH5VxmDoY\u0026ab_channel=MicrosoftDeveloper)\n- [🎥 Stephanie Weirich speaks about Programming Language Design](https://www.youtube.com/watch?v=gLTDyrAY4Hk)\n- [🎥 The Economics of Programming Languages](https://www.youtube.com/watch?v=XZ3w_jec1v8\u0026ab_channel=StrangeLoopConference)\n- [🎥 The Mess We're In](https://www.youtube.com/watch?v=lKXe3HUG2l4)\n- [🎥 The Next Programming Language - Douglas Crockford](https://www.youtube.com/watch?v=R2idkNdKqpQ\u0026ab_channel=code%3A%3Adiveconference)\n- [🎥 What's Next for Our Programming Languages](https://www.youtube.com/watch?v=q3XcQh0cNZM\u0026ab_channel=InfoQ)\n- [🎥 Why Programming Languages Matter](https://www.youtube.com/watch?v=JqYCt9rTG8g\u0026ab_channel=StrangeLoopConference)\n- [📜 Programming language semantics: It’s easy as 1,2,3](https://www.cambridge.org/core/services/aop-cambridge-core/content/view/EC2C046CF94382B3B408036B84475DC7/S0956796823000072a.pdf/programming-language-semantics-its-easy-as-123.pdf)\n- [📜 Programming Language Semantics](http://www.cs.nott.ac.uk/~pszgmh/123.pdf)\n- [📝 A Frontend Programmer's Guide to Languages](https://thatjdanisso.cool/programming-languages)\n- [📝 Building a Debugger: Code Analysis](https://nan.fyi/debugger)\n- [📝 Concepts of Programming Languages](https://www.ime.usp.br/~alvaroma/ucsp/proglang/book.pdf)\n- [📝 Grammars for programming languages](https://medium.com/@mikhail.barash.mikbar/grammars-for-programming-languages-fae3a72a22c6)\n- [📝 How To Create Your Own Programming Language](https://dev.to/jasonsbarr/how-to-create-your-own-programming-language-2642)\n- [📝 Language-oriented software engineering](https://parametri.city/blog/2018-12-23-language-oriented-software-engineering/index.html)\n- [📝 Let’s Build a Programming Language](https://medium.com/hackernoon/lets-build-a-programming-language-2612349105c6)\n- [📝 Minimalism in Programming Language Design](https://pointersgonewild.com/2022/05/23/minimalism-in-programming-language-design)\n- [📝 Panel: The Future of Programming Languages](https://learn.microsoft.com/en-us/events/pdc-pdc08/tl57)\n- [📝 Principles of Programming Languages](https://www.cs.toronto.edu/~david/course-notes/csc324.pdf)\n- [📝 Programming and Programming Languages](https://papl.cs.brown.edu/2018/index.html)\n- [📝 Programming Language and Compilers Reading List](https://www.jntrnr.com/programming-language-and-compilers-reading-list)\n- [📝 Programming Language Foundations in Agda](https://plfa.github.io/beta)\n- [📝 Programming language theory and practice in ReScript](https://bobzhang.github.io/rescript-pl-course)\n- [📝 Shriram Krishnamurthi and Joe Gibbs Politz - Programming Languages: Application and Interpretation](http://papl.cs.brown.edu/2015)\n- [📝 The Programming Language Enthusiast](http://www.pl-enthusiast.net)\n- [📝 The Study of Programming Languages](https://cs.lmu.edu/~ray/notes/plstudy)\n- [📝 Why Study Programming Languages](https://rachit.pl/post/why-study-programming-languages)\n\n## Compiler\n\n- [🎥 Anders Hejlsberg on Modern Compiler Construction](https://www.youtube.com/watch?v=wSdV1M7n4gQ)\n- [🎥 Building a parser in C#, from first principles](https://www.youtube.com/watch?v=klHyc9HQnNQ\u0026ab_channel=NDCConferences)\n- [🎥 Compiler Design course](https://www.youtube.com/playlist?list=PLDAE55AEE0731D729\u0026feature=plcp)\n- [🎥 How To Build A Programming Language From Scratch](https://www.youtube.com/watch?v=8VB5TY1sIRo\u0026list=PL_2VhOvlMk4UHGqYCLWc6GO8FaPl8fQTh\u0026ab_channel=tylerlaceby)\n- [🎥 How would compilers change in the next 10 years?](https://www.youtube.com/watch?v=p15qRHZ_Leg\u0026ab_channel=CompilerConstruction)\n- [🎥 Implementing a bignum calculator](https://www.youtube.com/watch?v=PXoG0WX0r_E)\n- [🎥 JavaScript ∩ WebAssembly](https://www.youtube.com/watch?v=PP5r_b3Ws8s\u0026ab_channel=ReactEurope)\n- [🎥 JavaScript implementation in SpiderMonkey](https://www.youtube.com/playlist?list=PLo3w8EB99pqJVPhmYbYdInBvAGarDavh-)\n- [🎥 KAIST CS420: Compiler Design](https://www.youtube.com/playlist?list=PL5aMzERQ_OZ8RWqn-XiZLXm1IJuaQbXp0)\n- [🎥 Lexical Scanning in Go](https://www.youtube.com/watch?v=HxaD_trXwRE)\n- [🎥 Mozilla Hacks Compiler Compiler](https://www.youtube.com/playlist?list=PLo3w8EB99pqKF1FQllRsxyQh3sA7V2Hc-)\n- [🎥 Quick look at the TypeScript Compiler API](https://www.youtube.com/watch?v=AnjfW633e8o%E2%80%8E.%E2%80%8Edev)\n- [🎥 Rethinking compiler technology in a heterogeneous world](https://www.youtube.com/watch?v=6Ncnx0bT4lk\u0026ab_channel=HiPEACTV)\n- [🎥 The business of selling compilers](https://www.youtube.com/watch?v=JRyv2oyWIbA\u0026ab_channel=HiPEACTV)\n- [🎥 Typescript Compiler explained by the Author Anders Hejlsberg](https://www.youtube.com/watch?v=f6TCB61fDwY)\n- [🎥 Understanding compiler optimization](https://www.youtube.com/watch?v=haQ2cijhvhE)\n- [📝 A miniature model of the Typescript compiler](https://github.com/sandersn/mini-typescript)\n- [📝 Alias analysis in React Compiler](https://www.recompiled.dev/blog/alias-analysis)\n- [📝 Alias analysis](https://en.wikipedia.org/wiki/Alias_analysis)\n- [📝 An Incremental Approach to Compiler Construction](http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf)\n- [📝 An Introduction to Interpreters and JIT Compilation](https://stefan-marr.de/2023/09/pliss-summer-school)\n- [📝 AST (Abstract Syntax Tree)](https://medium.com/@dinis.cruz/ast-abstract-syntax-tree-538aa146c53b)\n- [📝 Bob Nystrom - Expression Parsing Made Easy](http://journal.stuffwithstuff.com/2011/03/19/pratt-parsers-expression-parsing-made-easy)\n- [📝 Building a Parser from scratch](https://www.dmitrysoshnikov.education/p/parser-from-scratch)\n- [📝 Compiler Theory and Reactivity](https://www.recompiled.dev/blog/ssa)\n- [📝 Compilers and Interpreters](https://medium.com/hackernoon/compilers-and-interpreters-3e354a2e41cf)\n- [📝 Compilers Resources](https://glyphack.com/blog/compiler-resources)\n- [📝 Compilers: Nuts and bolts of Programming Languages](https://pgrandinetti.github.io/compilers)\n- [📝 Compiling Scheme to C with closure conversion](https://matt.might.net/articles/compiling-scheme-to-c)\n- [📝 Compiling to Java](https://matt.might.net/articles/compiling-to-java)\n- [📝 Compiling to lambda-calculus](https://matt.might.net/articles/compiling-up-to-lambda-calculus)\n- [📝 Douglas Crockford - Top Down Operator Precedence](http://javascript.crockford.com/tdop/tdop.html)\n- [📝 Dr. Dobbs - Bob: A Tiny Object-Oriented Language](http://www.drdobbs.com/open-source/bob-a-tiny-object-oriented-language/184409401)\n- [📝 Flattening ASTs (and Other Compiler Data Structures)](https://www.cs.cornell.edu/~asampson/blog/flattening.html)\n- [📝 Fredrik Lundh - Simple Town-Down Parsing In Python](https://11l-lang.org/archive/simple-top-down-parsing)\n- [📝 Garbage Collection Algorithms](https://www.dmitrysoshnikov.education/p/essentials-of-garbage-collectors)\n- [📝 How to implement a programming language in JavaScript](http://lisperator.net/pltut)\n- [📝 IU Compiler Course](https://iucompilercourse.github.io/IU-P423-P523-E313-E513-Fall-2020)\n- [📝 Jack W. Crenshaw - Let’s Build a Compiler!](http://compilers.iecc.com/crenshaw/tutorfinal.pdf)\n- [📝 Language grammar](https://stackoverflow.com/a/4726662/11314146)\n- [📝 Lessons from Writing a Compiler](https://borretti.me/article/lessons-writing-compiler)\n- [📝 Let's build a compiler](https://generalproblem.net)\n- [📝 Let's make a Teeny Tiny compiler, part 1](https://austinhenley.com/blog/teenytinycompiler1.html)\n- [📝 Let's make a Teeny Tiny compiler, part 2](https://austinhenley.com/blog/teenytinycompiler2.html)\n- [📝 Let's make a Teeny Tiny compiler, part 3](https://austinhenley.com/blog/teenytinycompiler3.html)\n- [📝 Lexical Analysis](https://medium.com/hackernoon/lexical-analysis-861b8bfe4cb0)\n- [📝 Lexing in JS style](https://areknawo.com/the-lexer-in-js)\n- [📝 Make a Lisp](https://github.com/kanaka/mal)\n- [📝 Nick Desaulniers - Interpreter, Compiler, JIT](https://nickdesaulniers.github.io/blog/2015/05/25/interpreter-compiler-jit)\n- [📝 Parsing Algorithms](https://www.dmitrysoshnikov.education/p/essentials-of-parsing)\n- [📝 Pursuit of Performance on Building a JavaScript Compiler](https://rustmagazine.org/issue-3/javascript-compiler)\n- [📝 Resources for Amateur Compiler Writers](https://c9x.me/compile/bib)\n- [📝 Scheme from Scratch - Introduction](http://peter.michaux.ca/articles/scheme-from-scratch-introduction)\n- [📝 TypeScript Compiler Notes](https://github.com/microsoft/TypeScript-Compiler-Notes)\n- [📝 Understanding GC in JSC From Scratch](https://webkit.org/blog/12967/understanding-gc-in-jsc-from-scratch)\n- [📝 Which Interpreters are Faster, AST or Bytecode?](https://stefan-marr.de/2023/10/ast-vs-bytecode-interpreters)\n- [📝 Write you a Haskell](http://dev.stephendiehl.com/fun)\n\n## PL Paradigms\n\n- [🎥 Compiling with Continuations or without? Whatever](https://www.youtube.com/watch?v=cPBr59ECiRU\u0026ab_channel=ACMSIGPLAN)\n- [📝 Continuation-passing style in JavaScript](https://matt.might.net/articles/by-example-continuation-passing-style)\n- [📝 Continuation-passing style](https://en.wikipedia.org/wiki/Continuation-passing_style)\n\n## Interpreter\n\n- [🎥 Cheaply writing a fast interpreter](https://www.youtube.com/watch?v=V8dnIw3amLA\u0026ab_channel=PerformanceSummit)\n- [💻 Building an Interpreter from scratch](https://www.dmitrysoshnikov.education/p/essentials-of-interpretation)\n- [💻 Crafting an Interpreter](https://github.com/imteekay/crafting-an-interpreter)\n- [📝 (How to Write a (Lisp) Interpreter (in Python))](http://norvig.com/lispy.html)\n- [📝 A Python Interpreter Written in Python](http://aosabook.org/en/500L/a-python-interpreter-written-in-python.html)\n- [📝 Building an Interpreter](https://www.iamtk.co/series/building-an-interpreter)\n- [📝 Crafting Interpreters](http://craftinginterpreters.com/contents.html)\n- [📝 How languages work #1: String interpolation](https://martin.janiczek.cz/2023/07/27/how-languages-work-1-string-interpolation.html)\n- [📝 Implementing a Simple Compiler on 25 Lines of JavaScript](https://blog.mgechev.com/2017/09/16/developing-simple-interpreter-transpiler-compiler-tutorial)\n- [📝 Let’s Build A Simple Interpreter](https://ruslanspivak.com/lsbasi-part1)\n- [📝 Little lisp interpreter](https://maryrosecook.com/blog/post/little-lisp-interpreter)\n- [📝 Little Lisp interpreter](https://www.recurse.com/blog/21-little-lisp-interpreter)\n- [📝 Pratt Parsers: Expression Parsing Made Easy](http://journal.stuffwithstuff.com/2011/03/19/pratt-parsers-expression-parsing-made-easy)\n- [📝 What do people mean when they say “transpiler”?](https://decomposition.al/blog/2017/07/30/what-do-people-mean-when-they-say-transpiler)\n\n## PL Research\n\n- [📝 Increasing the Impact of PL Research](http://www.pl-enthusiast.net/2020/07/29/increasing-the-impact-of-pl-research)\n- [📝 What is PL research and how is it useful?](http://www.pl-enthusiast.net/2015/05/27/what-is-pl-research-and-how-is-it-useful)\n\n## Type System\n\n- [🎥 \"Hindley-Milner Type Inference — Part 1](https://www.youtube.com/watch?v=cQf_6NsLp80\u0026ab_channel=AdamDoup%C3%A9)\n- [🎥 \"Hindley-Milner Type Inference — Part 2](https://www.youtube.com/watch?v=xJXcZp2vgLs\u0026list=PLK06XT3hFPzilgF1mi_hHqcXO1-o_8OEe\u0026index=37\u0026ab_channel=AdamDoup%C3%A9)\n- [🎥 \"Propositions as Types\" by Philip Wadler](https://www.youtube.com/watch?v=IOiZatlZtGU)\n- [🎥 A Taste of Type Theory](https://www.youtube.com/watch?v=--2jJwdQ5js)\n- [🎥 A Type System From Scratch](https://www.youtube.com/watch?v=IbjoA5xVUq0)\n- [🎥 Bringing Types to Elixir by Giuseppe Castagna and Guillaume Duboc](https://www.youtube.com/watch?v=gJJH7a2J9O8\u0026ab_channel=CodeSync)\n- [🎥 Discrete Math — Dr. Trefor Bazett](https://www.youtube.com/playlist?list=PLHXZ9OQGMqxersk8fUxiUMSIx0DBqsKZS)\n- [🎥 Gradual Type Theory](https://www.youtube.com/watch?v=EGKeWg2ES0A\u0026ab_channel=POPL2019)\n- [🎥 Gradual Typing: A New Perspective](https://www.youtube.com/watch?v=JuwHDskX7Qg\u0026ab_channel=POPL2019)\n- [🎥 How to Evaluate the Performance of Gradual Type Systems](https://www.youtube.com/watch?v=7d6iJdSRFtQ\u0026ab_channel=CambridgeUniversityPress)\n- [🎥 Let's build a typesystem in Haskell!](https://www.youtube.com/watch?v=aZFWY6DxX54)\n- [🎥 The Hindley-Milner Type System](https://www.youtube.com/watch?v=OyrByPkiX7s\u0026ab_channel=NicolasLaurent)\n- [🎥 Thinking with Types](https://www.youtube.com/playlist?list=PLE-CSy3N6yEeYY5tx1u5IP3d_2xZOmpKO)\n- [🎥 Type Systems - The Good, Bad and Ugly](https://www.youtube.com/watch?v=SWTWkYbcWU0\u0026t=2s\u0026ab_channel=StrangeLoopConference)\n- [🎥 Type-safe embedded domain-specific languages 1/4](https://www.youtube.com/watch?v=4sTeT7poU3g)\n- [🎥 Type-safe embedded domain-specific languages 2/4](https://www.youtube.com/watch?v=OM_riJgZF8A)\n- [🎥 Type-safe embedded domain-specific languages 3/4](https://www.youtube.com/watch?v=gFJTKJgL2zI)\n- [🎥 Type-safe embedded domain-specific languages 4/4](https://www.youtube.com/watch?v=isAu8YuI6SA)\n- [🎥 Types and Programming Languages Book club](https://www.youtube.com/playlist?list=PLlw1FcLpWd42E0AMWz9fY-oXa_m3DA3SW)\n- [🎥 Types are like the Weather, Type Systems are like Weathermen](https://www.youtube.com/watch?v=XTl7Jn_kmio\u0026ab_channel=ClojureTV)\n- [🎥 Typing the Untyped: Soundness in Gradual Type Systems](https://www.youtube.com/watch?v=uJHD2xyv7xo)\n- [🎥 What is Decidable about Gradual Types?](https://www.youtube.com/watch?v=rPZ7HhyGPh4\u0026ab_channel=ACMSIGPLAN)\n- [🎥 Why Static Typing Came Back](https://www.youtube.com/watch?v=Tml94je2edk\u0026ab_channel=GOTOConferences)\n- [💻 Building a Typechecker from scratch](https://www.udemy.com/course/typechecker)\n- [📜 How to evaluate the performance of gradual type systems](https://users.cs.utah.edu/~blg/publications/pe4gt/gtnffvf-jfp-2019.pdf)\n- [📜 Optimizing and Evaluating Transient Gradual Typing](https://dl.acm.org/doi/pdf/10.1145/3359619.3359742)\n- [📜 Putting gradual types to work](https://arxiv.org/pdf/2101.12299.pdf)\n- [📜 Safe \u0026 Efficient Gradual Typing for TypeScript](https://www.cs.umd.edu/~aseem/safets.pdf)\n- [📜 What Is Decidable about Gradual Types?](https://dl.acm.org/doi/pdf/10.1145/3371097)\n- [📝 A brief introduction to type theory and the univalence axiom](https://math.uchicago.edu/~may/REU2015/REUPapers/Macor.pdf)\n- [📝 A reckless introduction to Hindley-Milner type inference](https://www.lesswrong.com/posts/vTS8K4NBSi9iyCrPo/a-reckless-introduction-to-hindley-milner-type-inference)\n- [📝 An accessible introduction to type theory and implementing a type-checker](https://mukulrathi.com/create-your-own-programming-language/intro-to-type-checking)\n- [📝 Bootstrapping a Type System](http://journal.stuffwithstuff.com/2010/10/29/bootstrapping-a-type-system)\n- [📝 Gradual Typing from Theory to Practice](https://blog.sigplan.org/2019/07/12/gradual-typing-theory-practice)\n- [📝 Hindley-Milner Type Checking AST](https://adamdoupe.com/teaching/classes/cse340-principles-of-programming-languages-f15/slides/Hindley-MilnerTypeChecking-Mohsen-Zohrevandi.pdf)\n- [📝 How should I read type system notation?](https://langdev.stackexchange.com/questions/2692/how-should-i-read-type-system-notation/2693#2693)\n- [📝 Introduction to Type Theory](https://www.cs.uoregon.edu/research/summerschool/summer22/topics.php)\n- [📝 MyPy TypeChecker](https://github.com/python/mypy/wiki/Type-Checker)\n- [📝 Programming and Programming Languages: Type Inference](https://papl.cs.brown.edu/2018/Type_Inference.html)\n- [📝 Propositions as types: explained](https://lawrencecpaulson.github.io/2023/08/23/Propositions_as_Types.html)\n- [📝 Python internals: Symbol tables, part 1](https://eli.thegreenplace.net/2010/09/18/python-internals-symbol-tables-part-1)\n- [📝 Python internals: Symbol tables, part 2](https://eli.thegreenplace.net/2010/09/20/python-internals-symbol-tables-part-2)\n- [📝 Strong arrows: a new approach to gradual typing](https://elixir-lang.org/blog/2023/09/20/strong-arrows-gradual-typing)\n- [📝 Type Checking If Expressions](http://journal.stuffwithstuff.com/2023/01/03/type-checking-if-expressions)\n- [📝 Type inference under the hood](https://www.aleksandra.codes/type-inference)\n- [📝 Type system of the React compiler](https://www.recompiled.dev/blog/type-system)\n- [📝 Type Systems by Luca Cardelli, Microsoft Research](http://lucacardelli.name/papers/typesystems.pdf)\n- [📝 Type Theory Workshop](https://functionalcs.github.io/curriculum/typetheory.html)\n- [📝 Understanding types as sets](https://portal.gitnation.org/contents/understanding-types-as-sets)\n- [📝 What is Gradual Typing](https://wphomes.soic.indiana.edu/jsiek/what-is-gradual-typing)\n\n## Parsers\n\n- [📝 Building Extensible Parsers with Camlp4](https://asankhaya.github.io/pdf/BuildingExtensibleParserswithCamlp4.pdf)\n- [📝 Demystifying Pratt Parsers](https://martin.janiczek.cz/2023/07/03/demystifying-pratt-parsers.html)\n- [📝 Rewriting the Ruby parser](https://railsatscale.com/2023-06-12-rewriting-the-ruby-parser)\n\n## Backend\n\n- [🎥 How LLVM \u0026 Clang work](https://www.youtube.com/watch?v=IR_L1xf4PrU\u0026ab_channel=tanmaybakshi)\n- [💻 Building a Virtual Machine](https://www.dmitrysoshnikov.education/p/virtual-machine)\n\n## Program Synthesis\n\n- [🎥 Generating Programs from Types](https://www.youtube.com/watch?v=ZPyVcnCabIU\u0026ab_channel=SkillsMatter)\n\n## Formal Methods\n\n- [Métodos Formais by @bugarela](https://bugarela.com/mfo)\n\n## Parallel/Concurrent Programming\n\n- [📚 A Science of Concurrent Programs](https://lamport.azurewebsites.net/tla/science.pdf)\n- [📚 The Art of Multiprocessor Programming](https://cs.ipm.ac.ir/asoc2016/Resources/Theartofmulticore.pdf)\n- [📚 The Parallel Event Loop Model and Runtime](https://design.inf.usi.ch/sites/default/files/biblio/daniele-bonetta-phd-parallel-javascript.pdf)\n\n## Language Learnings\n\n- [JavaScript](https://github.com/imteekay/programming-language-research/tree/master/language-learning/javascript)\n- [Python](https://github.com/imteekay/programming-language-research/tree/master/language-learning/python)\n- [Ruby](https://github.com/imteekay/programming-language-research/tree/master/language-learning/ruby)\n- [Haskell](https://github.com/imteekay/programming-language-research/tree/master/language-learning/haskell)\n- [Elixir](https://github.com/imteekay/programming-language-research/tree/master/language-learning/elixir)\n- [Clojure](https://github.com/imteekay/programming-language-research/tree/master/language-learning/clojure)\n- [Rust](https://github.com/imteekay/programming-language-research/tree/master/language-learning/rust)\n\n### TypeScript\n\n- [🎥 A horrifically deep dive into TypeScript module resolution](https://www.youtube.com/watch?v=MEl2R7mEAP8\u0026ab_channel=MichiganTypeScript)\n- [🎥 A Trip into the Compiler](https://www.youtube.com/watch?v=oNtz0fx_z_A\u0026ab_channel=SitePen)\n- [🎥 Advanced Types in TypeScript](https://www.youtube.com/playlist?list=PLw5h0DiJ-9PBIgIyd2ZA1CVnJf0BLFJg2)\n- [🎥 AreTheTypesWrong with Andrew Branch](https://www.youtube.com/watch?v=8pOi1ccd280\u0026ab_channel=MichiganTypeScript)\n- [🎥 Hidden Gems of TypeScript compiler](https://www.youtube.com/watch?v=WkJagE7b5U0\u0026t=12s\u0026ab_channel=NG-BE)\n- [🎥 How safe is \"safe enough\" for TypeScript](https://www.youtube.com/watch?v=ZwoPLuSB94I\u0026ab_channel=MichiganTypeScript)\n- [🎥 How the TypeScript Compiler Compiles](https://www.youtube.com/watch?v=X8k_4tZ16qU\u0026ab_channel=ortatherox)\n- [🎥 The Road to Private Methods](https://www.youtube.com/watch?v=wpgBdN9ZwkQ\u0026ab_channel=SitePen)\n- [🎥 Type Level Programming in TypeScript](https://www.youtube.com/watch?v=vGVvJuazs84)\n- [🎥 Typescript Performance: Going Beyond The Surface](https://www.youtube.com/watch?v=lJ63-j0OHG0\u0026ab_channel=BeJS)\n- [🎥 TypeScript Performance](https://www.youtube.com/watch?v=ZL3z1oBZntk\u0026ab_channel=MattPocock)\n- [🎥 Typescript Type System](https://www.youtube.com/watch?v=svQnyVny-Hw\u0026ab_channel=HansSchenker)\n- [📝 @typescript/analyze-trace](https://github.com/microsoft/typescript-analyze-trace)\n- [📝 A preview of Ezno's checker](https://kaleidawave.github.io/posts/a-preview-of-the-checker)\n- [📝 An Introduction To Type Programming In TypeScript](https://www.zhenghao.io/posts/type-programming)\n- [📝 Debugging the TypeScript Codebase](https://blog.andrewbran.ch/debugging-the-type-script-codebase)\n- [📝 Designing with types: Making illegal states unrepresentable](https://fsharpforfunandprofit.com/posts/designing-with-types-making-illegal-states-unrepresentable)\n- [📝 Investigating TypeScript compiler APIs](https://blog.scottlogic.com/2015/01/20/typescript-compiler-api.html)\n- [📝 JavaScript scope, Closures, and the TypeScript compiler](https://iamtk.co/javascript-scope-closures-and-the-typescript-compiler)\n- [📝 Making Sense of TypeScript Generics](https://kettanaito.com/blog/making-sense-of-typescript-generics)\n- [📝 Making sense of TypeScript using set theory](https://blog.thoughtspile.tech/2023/01/23/typescript-sets)\n- [📝 Modules in TypeScript](https://gist.github.com/andrewbranch/79f872a8b9f0507c9c5f2641cfb3efa6)\n- [📝 Optimizing TypeScript Memory Usage](https://swatinem.de/blog/optimizing-tsc)\n- [📝 Reconstructing TypeScript, part 0: intro and background](https://jaked.org/blog/2021-09-07-Reconstructing-TypeScript-part-0)\n- [📝 Reconstructing TypeScript, part 1: bidirectional type checking](https://jaked.org/blog/2021-09-15-Reconstructing-TypeScript-part-1)\n- [📝 Reconstructing TypeScript, part 2: functions and function calls](https://jaked.org/blog/2021-09-27-Reconstructing-TypeScript-part-2)\n- [📝 Reconstructing TypeScript, part 3: operators and singleton types](https://jaked.org/blog/2021-10-06-Reconstructing-TypeScript-part-3)\n- [📝 Reconstructing TypeScript, part 4: union types](https://jaked.org/blog/2021-10-14-Reconstructing-TypeScript-part-4)\n- [📝 Reconstructing TypeScript, part 5: intersection types](https://jaked.org/blog/2021-10-28-Reconstructing-TypeScript-part-5)\n- [📝 Reconstructing TypeScript, part 6: narrowing](https://jaked.org/blog/2021-11-11-Reconstructing-TypeScript-part-6)\n- [📝 Static TypeScript](https://www.microsoft.com/en-us/research/uploads/prod/2019/09/mplr19main-id10-p-41a6cf2-42682-final.pdf)\n- [📝 Type level programming in TypeScript](https://mjj.io/2021/03/29/type-level-programming-in-typescript)\n- [📝 Types as axioms, or: playing god with static types](https://lexi-lambda.github.io/blog/2020/08/13/types-as-axioms-or-playing-god-with-static-types)\n- [📝 TypeScript / How the compiler compiles](https://www.huy.rocks/everyday/04-01-2022-typescript-how-the-compiler-compiles)\n- [📝 TypeScript and the dawn of gradual types](https://github.com/readme/featured/typescript-gradual-types)\n- [📝 TypeScript AST Resources](https://twitter.com/grow_love/status/1585711764565811201)\n- [📝 TypeScript Bytecode Interpreter / Runtime Types](https://github.com/microsoft/TypeScript/issues/47658)\n- [📝 TypeScript Compiler API: Improve API Integrations Using Code Generation](https://blog.appsignal.com/2021/08/18/improve-api-integrations-using-code-generation.html)\n- [📝 TypeScript Compiler Internals](https://basarat.gitbook.io/typescript/overview)\n- [📝 TypeScript Compiler Manual](https://sandersn.github.io/manual/Typescript-compiler-implementation.html)\n- [📝 TypeScript Modules - Theory](https://www.typescriptlang.org/docs/handbook/modules/theory.html)\n- [📝 TypeScript Performance Tracing](https://github.com/microsoft/TypeScript/wiki/Performance-Tracing)\n- [📝 TypeScript Performance](https://github.com/microsoft/TypeScript/wiki/Performance)\n- [📝 TypeScript's type-independent output](https://neugierig.org/software/blog/2016/04/typescript-types.html)\n- [📝 The Making of a TypeScript Feature: Inferring Type Predicates](https://effectivetypescript.com/2024/04/16/inferring-a-type-predicate)\n\n### Ecmascript\n\n- [🎥 Create Your Own JavaScript Runtime](https://www.youtube.com/watch?v=ynNDmp7hBdo\u0026ab_channel=ErickWendel)\n- [🎥 Ectype - bringing type safety (and more!) to vanilla JavaScript](https://www.youtube.com/watch?v=vyjHRlQrVSA\u0026ab_channel=StrangeLoopConference)\n- [🎥 Implementing one feature set in two JavaScript engines](https://www.youtube.com/watch?v=V1Q9iqxhfgU\u0026ab_channel=WebEnginesHackfest)\n- [🎥 JavaScript and C++ in Node.js core](https://www.youtube.com/watch?v=GrgMT5zMgF4\u0026ab_channel=NearForm)\n- [🎥 Node.js startup performance](https://www.youtube.com/watch?v=G36lrPrF09c\u0026ab_channel=NearForm)\n- [🎥 Static Hermes: the Next Generation of Hermes](https://www.youtube.com/watch?v=q-xKYA0EO-c\u0026ab_channel=CallstackEngineers)\n- [🎥 TC39 – From the proposal to ECMAScript - Step by Step](https://www.youtube.com/watch?v=ZheFIz4FhXo\u0026ab_channel=FestDevConference)\n- [📝 `SingleEscapeCharacter`](https://262.ecma-international.org/13.0/#prod-SingleEscapeCharacter)\n- [📝 Automatic semicolon insertions in JavaScript](https://articles.wesionary.team/automatic-semicolon-insertions-in-javascript-best-practices-c49ed8222e12)\n- [📝 Deep JavaScript](https://exploringjs.com/deep-js/toc.html)\n- [📝 Empty Statement](https://tc39.es/ecma262/multipage/ecmascript-language-statements-and-declarations.html#sec-empty-statement)\n- [📝 From Research Prototypes to Continuous Integration: Guiding the Design and Implementation of JavaScript](https://blog.sigplan.org/2023/01/12/from-research-prototypes-to-continuous-integration-guiding-the-design-and-implementation-of-javascript)\n- [📝 JavaScript Closures](http://jibbering.com/faq/notes/closures)\n- [📝 JavaScript Garbage Collector](https://javascript.info/garbage-collection)\n- [📝 JavaScript Memory management](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_management)\n- [📝 JavaScript Static Analysis for Evolving Language Specifications](https://plrg.korea.ac.kr/assets/data/publication/thesis22-park.pdf)\n- [📝 Relation of Garbage Collector and Closure in JavaScript](https://www.geeksforgeeks.org/relation-of-garbage-collector-and-closure-in-javascript)\n- [📝 V8: full compiler](https://jayconrod.com/posts/51/a-tour-of-v8--full-compiler)\n- [📝 V8: Garbage Collection](https://jayconrod.com/posts/55/a-tour-of-v8-garbage-collection)\n\n### Rust\n\n- [🎥 Things I Learned (TIL) - Nicholas Matsakis](https://www.youtube.com/watch?v=LIYkT3p5gTs\u0026ab_channel=PLISS)\n- [📝 Notes on a smaller Rust](https://without.boats/blog/notes-on-a-smaller-rust)\n- [📝 Removing Garbage Collection From the Rust Language](https://pcwalton.github.io/_posts/2013-06-02-removing-garbage-collection-from-the-rust-language.html)\n- [📝 Rust fact vs. fiction: 5 Insights from Google's Rust journey in 2022](https://opensource.googleblog.com/2023/06/rust-fact-vs-fiction-5-insights-from-googles-rust-journey-2022.html)\n- [📝 Rust: Project Goals](https://smallcultfollowing.com/babysteps/blog/2023/11/28/project-goals)\n- [📝 Rust's language ergonomics initiative](https://blog.rust-lang.org/2017/03/02/lang-ergonomics.html)\n- [📝 Why Static Languages Suffer From Complexity](https://hirrolot.github.io/posts/why-static-languages-suffer-from-complexity)\n\n### Python\n\n- [🎥 A JIT Compiler for CPython](https://www.youtube.com/watch?v=HxSHIpEQRjs\u0026ab_channel=encukou)\n- [🎥 Python's type system explained: Static vs dynamic typing | Guido van Rossum](https://www.youtube.com/watch?v=kSXZHRsWXfU)\n\n### OCaml\n\n- [📝 How Jane Street is making OCaml the new Rust](https://www.efinancialcareers.com/news/2023/06/jane-street-programming-language)\n\n## Browser\n\n- [🎥 The internet computer](https://www.youtube.com/watch?v=v0160IirdL4\u0026ab_channel=TheBrowserCompany)\n- [🎥 Servo: Designing and Implementing a Parallel Browser](https://www.youtube.com/watch?v=67QP8t-89VM)\n- [🎥 Servo: A Web View From Somewhere Else](https://www.youtube.com/watch?v=tNWQkNvg3_U\u0026ab_channel=Igalia)\n- [🎥 Intro to Rust-lang (Building the Dom and an HTML Parser)](https://www.youtube.com/watch?v=brhuVn91EdY\u0026list=PLJbE2Yu2zumDF6BX6_RdPisRVHgzV02NW\u0026index=22\u0026ab_channel=TensorProgramming)\n- [🎥 Intro to Rust-lang (Adding a Style Tree to our Browser)](https://www.youtube.com/watch?v=8e37RsyiGSE\u0026list=PLJbE2Yu2zumDF6BX6_RdPisRVHgzV02NW\u0026index=25\u0026ab_channel=TensorProgramming)\n- [🎥 Intro to Rust-lang (Adding a CSS engine and CSS parsing to our Browser)](https://www.youtube.com/watch?v=dnrEto7adg0\u0026list=PLJbE2Yu2zumDF6BX6_RdPisRVHgzV02NW\u0026index=24\u0026ab_channel=TensorProgramming)\n- [🎥 Intro to Rust (Building a Browser Engine: Commands and Rendering in OpenGL)](https://www.youtube.com/watch?v=rszgtm7i0n8\u0026list=PLJbE2Yu2zumDF6BX6_RdPisRVHgzV02NW\u0026index=27\u0026ab_channel=TensorProgramming)\n- [🎥 In The Loop - setTimeout, micro tasks, requestAnimationFrame, requestIdleCallback](https://www.youtube.com/watch?v=cCOL7MC4Pl0\u0026ab_channel=JSConf)\n- [🎥 Critical rendering path - Crash course on web performance](https://www.youtube.com/watch?v=PkOBnYxqj3k\u0026ab_channel=IlyaGrigorik)\n- [🎥 Chrome University 2018: Life of a Script](https://www.youtube.com/watch?v=voDhHPNMEzg\u0026ab_channel=BlinkOn)\n- [🎥 Browser From Scratch Live Streams](https://www.youtube.com/playlist?list=PLgOaDFg2Sml4CG1tYeYhQ6eKqyh0hmyg1)\n- [📚 Web Browser Engineering](https://browser.engineering)\n- [📝 Browser from scratch](https://zerox-dg.github.io/blog/tags/browser-from-scratch)\n- [📝 Browser from Scratch](https://zerox-dg.github.io/blog/tags/browser-from-scratch)\n- [📝 Browser Performance](https://www.kuniga.me/blog/2020/03/28/browser-performance.html)\n- [📝 Building a Rust Web Browser](https://joshondesign.com/tags/browser)\n- [📝 Concurrent JavaScript: It can work!](https://webkit.org/blog/7846/concurrent-javascript-it-can-work)\n- [📝 David Baron's blog: Blink engineer](https://dbaron.org/log)\n- [📝 How Browsers Work: Behind the scenes of modern web browsers](https://www.html5rocks.com/en/tutorials/internals/howbrowserswork)\n- [📝 How browsers work](https://web.dev/howbrowserswork)\n- [📝 Key data structures and their roles in RenderingNG](https://developer.chrome.com/articles/renderingng-data-structures)\n- [📝 Let's build a browser engine!](https://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html)\n- [📝 Notes on how browsers work](https://www.kuniga.me/blog/2015/10/09/notes-on-how-browsers-work.html)\n- [📝 Notes on JavaScript Interpreters](https://www.kuniga.me/blog/2017/06/01/notes-on-javascript-interpreters.html)\n- [📝 Notes on Javascript Memory Profiling in Google Chrome](https://www.kuniga.me/blog/2015/06/07/notes-on-javascript-memory-profiling-in-google-chrome.html)\n- [📝 Overview of the RenderingNG architecture](https://developer.chrome.com/articles/renderingng-architecture)\n- [📝 reflows \u0026 repaints: css performance making your javascript slow?](http://www.stubbornella.org/content/2009/03/27/reflows-repaints-css-performance-making-your-javascript-slow)\n- [📝 Rendering: repaint, reflow/relayout, restyle](https://www.phpied.com/rendering-repaint-reflowrelayout-restyle)\n- [📝 RenderingNG deep-dive: LayoutNG](https://developer.chrome.com/articles/layoutng)\n- [📝 RenderingNG: an architecture that makes and keeps Chrome fast for the long term](https://blog.chromium.org/2021/10/renderingng.html)\n- [📝 Round-up of web browser internals resources](https://developer.chrome.com/blog/round-up-of-web-browser-internals-resources)\n- [📝 Understanding Reflow and Repaint in the browser](https://dev.to/gopal1996/understanding-reflow-and-repaint-in-the-browser-1jbg)\n- [📝 Web Browser Engineering](https://browser.engineering)\n- [📝 What forces layout / reflow](https://gist.github.com/paulirish/5d52fb081b3570c81e3a)\n\n## Web UI\n\n- [🎥 Algebraic effects, Fibers, Coroutines](https://www.youtube.com/watch?v=vzzOdWj4YyM\u0026ab_channel=YouGottaLoveFrontend)\n- [🎥 React Forget: React for developers and compilers](https://www.youtube.com/watch?v=kjOacmVsLSE)\n- [📝 Algebraic Effects for React Developers](https://blog.reesew.io/algebraic-effects-for-react-developers)\n- [📝 Algebraic Effects for the Rest of Us](https://overreacted.io/algebraic-effects-for-the-rest-of-us)\n- [📝 PL web frameworks](https://twitter.com/sliminality/status/1516175554550018048)\n- [📝 React - Basic Theoretical Concepts](https://github.com/reactjs/react-basic)\n- [📝 React Concurrent mode](https://twitter.com/dan_abramov/status/1120971795425832961)\n- [📝 TypeScript + fp-ts: ReaderTaskEither and React](https://andywhite.xyz/posts/2021-01-28-rte-react)\n\n## Careers\n\n### Jobs\n\n- [Chromium Engineer at Browser Company](/careers/chromium-engineer-browser-company.pdf)\n- [Senior Software Engineer at Mozilla Corporation](/careers/mozilla-firefox-senior-software-engineer.pdf)\n- [JavaScript Virtual Machine Compiler Engineer at Apple](/careers/javascript-virtual-machine-compiler-engineer.pdf)\n- [Compiler Jobs](https://mgaudet.github.io/CompilerJobs)\n- [Swift Type System Engineer](/careers/swift-type-system-engineer-apple.pdf)\n- [Compiler Engineer](/careers/woven-by-toyota.pdf)\n- [Groq Compiler Engineer](/careers/groq-compiler-engineer.pdf)\n- [Modular AI Compiler Engineer](/careers/modular-ai-compiler-engineer.pdf)\n\n### Schools\n\n- [Programming Language and Compiler Research Groups](https://www.cs.cmu.edu/~mleone/language/projects.html)\n- [Indiana University Bloomington](https://cs.indiana.edu)\n- [KAIST Programming Language Research Group](https://plrg.kaist.ac.kr)\n- [Tokyo Institute of Technology](https://prg.is.titech.ac.jp)\n  - [TIT: How to Join the Group](https://prg.is.titech.ac.jp/people/how-to-join)\n  - [Scholarships: Mext](https://www.titech.ac.jp/english/prospective-students/scholarships)\n  - [Examples of Dissertations](https://prg.is.titech.ac.jp/dissertations)\n\n## People in PL\n\n- [Anders Hejlsberg](https://www.youtube.com/watch?v=2K_4T7M1DKk\u0026ab_channel=AarthiandSriram)\n- [Bob Nystrom](http://journal.stuffwithstuff.com)\n- [Cynthia Richey](https://thia.codes)\n- [Dmitry Soshnikov](https://twitter.com/DmitrySoshnikov)\n- [Gavin Bierman](https://gavinbierman.github.io)\n- [Gilad Bracha](https://bracha.org/Site/Home.html)\n- [Graham Hutton](https://www.cs.nott.ac.uk/~pszgmh)\n- [Jihyeok Park](https://plrg.korea.ac.kr/members/jihyeok.park)\n- [Lexi Lambda](https://lexi-lambda.github.io)\n- [Mads Torgersen](https://twitter.com/madstorgersen)\n- [Matthias Felleisen](https://felleisen.org/matthias)\n- [Niko Matsakis](https://smallcultfollowing.com/babysteps)\n- [Patrick Walton](https://pcwalton.github.io)\n- [Paulette Koronkevich](https://koronkevi.ch)\n- [Programming Linnguistics](https://pling.jondgoodwin.com)\n- [Researchers in Programming Languages and Compilers](https://www.cs.cmu.edu/~mleone/language-people.html)\n- [Roberto Giacobazzi](http://profs.sci.univr.it/~giaco)\n- [Simon Peyton Jones](https://simon.peytonjones.org)\n- [StackExchange: Programming Language Design and Implementation](https://langdev.stackexchange.com)\n- [Stefan Marr](https://stefan-marr.de)\n- [Sukyoung Ryu](https://plrg.kaist.ac.kr/ryu)\n- [Ronald Garcia](https://www.cs.ubc.ca/~rxg)\n- [TK](https://iamtk.co)\n\n## License\n\n[MIT](/LICENSE) © [TK](https://iamtk.co)\n\n\u003c/samp\u003e\n","funding_links":["https://github.com/sponsors/imteekay","https://teekay.substack.com"],"categories":["Clojure","Uncategorized"],"sub_categories":["Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimteekay%2Fprogramming-language-research","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimteekay%2Fprogramming-language-research","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimteekay%2Fprogramming-language-research/lists"}