Programming languages
There is a great article that goes over how one program can be written in different languages from the most abstract level of Math to Haskell to C to Assembly to actual machine code.
Crafting Interpreters is an amazing book. Together with Writing Interpreters in Rust Guide. Exercism is a nice tool for language practice. I think Execute Program is currently the best way to learn your first programming language, currently it targets TypeScript. The interactiveness of it's teaching is incredible. I used it to teach my smaller brother & sister coding by helping them as they did all the exercises. We then went on to use the knowledge of JS/TS to build games & Minecraft mods together on Replit.
I dislike languages with semicolons which is why I prefer Swift (native GUI) / Go (servers/CLI) / TS (browsers/scripting) over any other language right now. Exploring using Rust more too. I find Go/Swift plenty fast when I need speed although wish Go was less boilerplaity, especially with its error handling.
I write Rust or Zig when I want to write embedded code without GC or target WASM. Although even there, TinyGo can be enough I think. Julia looks nice for any kind of heavy data processing code / ML.
OCaml seems interesting as a language to do some type theory research in. Has fast compile types and smart inferency type system. Same for Agda/Coq/Idris. Unison has some novel ideas to learn from too. Vale does novel research in memory management. Gluon is nice embedded functional language. Austral is great implementation of linear types. Cyber & Bog seem nice for scripting although I prefer TS/Bun.
Effects bibliography is a nice read.
Lady Deirdre is interesting for making IDE for your language.
Notes
- I have a very concrete approach for creating categorical models/semantics for PLs. I express the syntax as a GADT, wrap it with a free(r) monad, then work with the resulting kleisli category.
- In general, our software benefits when we use as few languages as possible, because programming languages have such powerful network effects. Embedded DSLs are usually strongly preferable to freestanding ones because we get to reuse so much knowledge and infrastructure.
Links
- Awesome programming languages
- Tour de Babel - Funny de tour of programming languages.
- Programming Language Theory
- Conal Elliott - Teaching New Tricks to Old Programs (2017)
- Awesome static analysis - Static analysis tools for all programming languages, build tools, config files and more.
- Lists of most popular repositories for most favored programming languages
- Rockstar - Idiomatic Rockstar FizzBuzz implementation is the best thing ever.
- Twelf - Language used to specify, implement, and prove properties of deductive systems such as programming languages and logics.
- GitHut - Place to discover languages on GitHub.
- Type inference (2018)
- Little Languages - (Lobsters)
- Course page Types and Semantics for Programming Languages (2018)
- Smallest possible syntactically valid files of different types
- History of Programming Languages course (GitHub repo)
- The Programming Language I’m Looking For (2018)
- Go, Tooling, and New Languages (2016)
- Programming paradigms for dummies: what every programmer should know (2019)
- What, if anything, is a programming paradigm? (2017)
- Programming Languages Zoo - Collection of implementations of miniature programming languages. (Web)
- Thinking in a Language (2019)
- What are some niche features you'd like to see in more languages? (2019)
- Ask HN: What programming language should I learn next? (2019)
- Next-Paradigm Programming Languages: What Will They Look Like and What Changes Will They Bring? (HN)
- Semantic - Haskell library and command line tool for parsing, analyzing, and comparing source code.
- DSLs for non-programmers are a hoax (2019) (HN)
- Comparing the Same Project in Rust, Haskell, C++, Python, Scala and OCaml (2019) (HN)
- Hello, World! - Hello world in every computer language.
- Exercism Language Tracks
- TabNine - All-language ML autocompleter.
- Say something you dislike about a language you love (2019)
- Say something nice about a programming language you dislike (2019)
- comby - Tool for changing code across many languages.
- On the Expressive Power of Programming Languages by Shriram Krishnamurthi [PWLConf 2019] (Web) (HN)
- The Rise of 'Worse is Better' by Richard Gabriel
- "All the Languages Together" by Amal Ahmed (2018)
- Co - Programming language and optimizing compiler written in TypeScript. (Doc)
- User Interfaces for Programming Languages course (2019)
- User Interfaces for Programming Languages: The Compendium
- Advanced Programming Languages Cornell Course (2018)
- A Programmable Programming Language (2018) (HN)
- Panel: the Future of Languages (2019)
- Programming Language Tourism: Leave Python and see the world (2019)
- A programming language by Kenneth E. Iverson book (1962)
- Factor - Practical stack language. (HN)
- Factor: a dynamic stack-based programming language paper
- Quine - Self-referential program that can, without any external access, output its own source.
- Comby - Structural code search and replace for every language. (Web) (Lobsters) (HN)
- Lobsters: What would a programming language designed from the ground-up for a multi-core world look like? (2020)
- Practical Foundations for Programming Languages
- What language do you prefer for new project starts? (2020)
- Flow-Charts of Programming Language Constructs (2020) (HN)
- Bestiary of Single-File Implementations of Programming Languages
- NEAL - Language-independent code analysis tool that aims to enable more people to write quality enforcement rules.
- Most(ly dead) Influential Programming Languages (2020) (HN)
- Sam Tobin-Hochstadt's research
- Mu - Minimal-dependency hobbyist computing stack (everything above the processor and OS kernel). (Mu's neighborhood) (Lobsters)
- Mu: A minimal hobbyist computing stack (2019)
- Bitsy - Best language to implement when writing your first compiler or interpreter.
- codespan-reporting - Beautiful diagnostic reporting for text-based programming languages.
- What language to learn during quarantine? (2020)
- Language designers, use
ident: Type
, notType ident
(2017) (Lobsters) - Row Polymorphism without the Jargon (2020) (Lobsters)
- Zero-cost Effect Handlers by Staging (Technical Report) (2019)
- A generic imperative language for polynomial time (2020)
- Designing flexible, modular linguistic abstractions (2019)
- An abstract domain for objects in dynamic programming languages (2019)
- A Simple Differentiable Programming Language (2020)
- The Hard Part of Learning a Language (2020) (Lobsters) (HN)
- Hoist - Visual programming language inspired by Excel & Datalog.
- Esoteric.Codes - Languages, platforms, and systems that break from the norms of computing.
- Resources for the working programmer to learn more about the fundamentals and theory of programming languages
- Call-By-Push-Value - New programming language paradigm, based on the slogan “a value is, a computation does".
- Semgrep - Tool for easily detecting and preventing bugs and anti-patterns in your codebase. (Web) (HN)
- Algol 60 implementation (1964)
- Code Search - Tool for indexing and then performing regular expression searches over large bodies of source code. (Lobsters)
- Zoekt - Fast text search engine, intended for use with source code.
- 10 more programming languages worth checking out (2018)
- A Beginner's Guide to Amiga E (Lobsters)
- Create your own programming language with Rust (Code)
- History of Programming Languages, Vol 4 (2020) (Lobsters)
- PLaST research group - Focuses on applied programming languages and software engineering.
- Piranha: An Open Source Tool to Automatically Delete Stale Code (2020) (HN)
- Performance improvements in precise code intel (2020)
- An Introduction to Efficient and Safe Implementations of Dynamic Languages (2020)
- What's your favorite programming language and what feature makes it your favorite? (2020)
- All about Modelica: An equation-based language for modeling physical systems (2020) (HN)
- Writing a VM for a Small Stack-Base Language in Pointless (Lobsters)
- Principles of Programming Languages – Graham Hutton
- Principles of Programming Languages (POPL) 2021 Videos
- Dijkstra: On the foolishness of "natural language programming" (Tweet)
- Semantics with Applications: A Formal Introduction
- The Formal Semantics of Programming Languages: An Introduction (1993)
- Semantics of Programming Languages in Agda
- The Fatal Flaw of Ownership Semantics (2020)
- The Pyret Code; or A Rationale for the Pyret Programming Language (Lobsters)
- Statically Sized Higher-kinded Polymorphism (2020) (Lobsters)
- The language strangeness budget (2015)
- Family spaghetti of programming languages (2019)
- Continuations by example: Exceptions, time-traveling search, threads, and more (2020) (HN)
- People of Programming Languages
- People of Language Design and Implementation
- Hindley-Milner Type Inference (2012) (HN)
- Deep learning to translate between programming languages (2020) (HN)
- Ask HN: What are you using new programming languages for? (2020)
- Build your own programming language (2020)
- A Foundation for Typed Concatenative Languages (2017) - Presents a sound and complete type inference algorithm.
- What Is The Minimal Set Of Optimizations Needed For Zero-Cost Abstraction? (2020)
- Kicking Off the Repl.it Programming Language Jam (2020) (HN)
- Structure and Interpretation of Computer Programs with Hal Abelson (2019)
- Collection of papers on modules
- Analysis Tools - Most Popular Analysis Tools by Programming Language. (Code)
- What's the Deal with Message Passing, Anyway (2020) (Lobsters)
- Things that are not strings (2020) (Lobsters)
- ICFP 2020
- Essentials of Programming Languages (Code) (HN) (Code in Racket) (Solutions in Scheme)
- UW PLSE - University of Washington Programming Languages and Software Engineering. (GitHub)
- Your Language Sucks, It Doesn’t Matter (2020) (Lobsters)
- Energy Efficiency across Programming Languages (2017) (HN)
- Deep learning to translate between programming languages (2020)
- Increasing the Impact of PL Research (2020)
- Programming Languages course by Dan Grossman (Answers)
- Polygott - Base Docker image for the Repl.it evaluation server.
- Chris Lattner: The Future of Computing and Programming Languages (2020) (Web) (HN)
- History of Programming Language Topics (Code)
- Language Design with Leo White (2020) (Lobsters) (HN)
- Make a Language Using Rust (HN)
- Turing Incomplete Languages (2020)
- Semantics-Guided Synthesis (2020)
- We need less powerful languages (2015) (HN)
- Learn languages that are not Java, Python and C++ (2020)
- PLIERS: A Process that Integrates User-Centered Methods into Programming Language Design (2020)
- Liquid information flow control
- teaberry - Learning project to implement a typed functional programming language/dialect of ML, which aims to be accessible and usable like Python is.
- Langkit - Tool whose purpose is to make it easy to create syntactic and semantic analysis engines. Language creation framework.
- remark-prism - Syntax highlighter for markdown code blocks using Prism.
- JIT compiler and runtime for a toy language, using Cranelift
- PhD Thesis: Greybox Automatic Exploit Generation for Heap Overflows (2020)
- Programming languages genealogical tree
- Q&A with Programming Language Beta Users (2020)
- Write You a Programming Language (Code)
- PLT research - Collection of PLT researching.
- History of programming languages concepts
- Programming Languages Study
- ALGT - Abstract Language Generation Tool.
- Stack Based Virtual Machines (2015) (Lobsters) (HN)
- How to design a new programming language from scratch (2020) (Lobsters)
- Automatic Language Bindings (2020) (Lobsters)
- Language resources - Links on how to learn how to create programming languages.
- Reflections on the Lack of Adoption of Domain Specific Languages (HN)
- Lobsters: What "glue" lanugages do you use/like? (2021)
- Build your own programming language in C++ (HN)
- Interactive Tutorials for programming languages
- Pygments - Generic syntax highlighter written in Python. (Code)
- Models of Programming Languages
- Designing an actor-based programming language (2020)
- CodeIntellify - Adds code intelligence to code views on the web.
- go-enry - Faster file programming language detector.
- Scriptometer - Measuring the ease of SOP (Script-Oriented Programming) of programming languages.
- FeOFu - Compiler Seminar - Ideas that would lead to better compilers for existing languages, better future programming languages, better APIs and better performance software solutions in the future.
- Theory and Practice of Programming Languages (Racket implementation)
- Quine Relay - Ruby program that generates Rust program that generates Scala program that generates.
- Language Graph - Shows a graph where the nodes are programming languages and the edges are compilers. (Code)
- GumTree - Complete framework to deal with source code as trees and compute differences between them.
- Linguist - Library is used on GitHub.com to create languages used breakdowns.
- Joern - Open-Source Code Querying Engine. (Code)
- ATS or Why Linear Types are the Future of Systems Programming (2021)
- Enclosure: Language-Based Restriction of Untrusted Libraries
- Programming Languages Group @ Penn
- SICP Book Notes
- Language Explorer - Explore 650+ programming languages, visualized based on paradigm influence relationships between languages.
- Brown University PLT (GitHub)
- DSL might be the answer (2021)
- PL Funding Panel with the Creators of Elm, Elixir, and Julia (2021)
- #PLTalk - YouTube
- Programming Languages for Enthusiasts
- Mathematically Structured Programming Group @ University of Strathclyde
- Women in Programming Languages and Software Engineering Research
- I don't want to learn your query language (2018) (HN)
- Lobsters: What's your experience been writing language tools? (2021)
- Performance comparison: counting words in Python, Go, C++, C, AWK, Forth, and Rust (2021) (HN) (Lobsters) (HN)
- What Programming Language Would Yoko Ono Create? (2021)
- 20 Intriguing, Unusual, and Goofy Programming Languages (2019)
- FSL.tools - Programming language to make complex Finite State Machines easy to create and maintain.
- Language evangelists, why should I use [language]? (2021)
- A history of ALGOL 68
- The BNF Dream (2021)
- Ask HN: How to study programming language theory as a non CS student? (2021)
- Wuffs the Language (Lobsters) (HN)
- Introducing Dawn (Part 1) (2021) (Lobsters)
- Dawn languagea
- Why concatenative programming matters (2012)
- PLTalk links
- Crash Course on Notation in Programming Language Theory (2012)
- Reflection for the Masses (Code)
- The end of history for programming (2021)
- Langs In Rust - List of programming languages implemented in Rust, for inspiration.
- Demystifying interpreters (2020)
- PLDI 2021
- treefmt - One CLI to format the code tree.
- Implementing Co, a Small Interpreted Language With Coroutines #1: The Parser (2021)
- Playground for PL ideas
- A Gentle Introduction to Ted Nelson's ZigZag Structure (2002) (HN)
- Recent Advances in Programming Language Pre-Trained Models (PL-PTMs)
- Sereal - Fast, compact, schema-less, binary serialization and deserialization oriented towards dynamic languages.
- Compilation as Multi-Language Semantics
- Domain-Specific Languages Syllabus (2016)
- Schrödinger's Code: Undefined behavior in theory and practice (2021)
- Riju - Fast online playground for every programming language. (Code)
- plyg - Playground to safely try out different programming languages in a single file.
- Principles of Programming Languages Course Notes
- Ask HN: Projects for learning a language? (2021)
- Langium - Language engineering tool with built-in support for the Language Server Protocol.
- Programming Language Memory Models (HN)
- The next 700 programming languages (1966) (Lobsters)
- Creating the Golfcart Programming Language (2021)
- Sham: A DSL for Fast DSLs (2021)
- Beautiful ideas in programming: generators and continuations (2021) (HN)
- Lizard - Code complexity analyser without caring about the C/C++ header files or Java imports, supports most of the popular languages.
- Abstracting Definitional Interpreters: Functional Pearl (Code)
- Lang Jam - Create a programming language in a weekend. (HN)
- flex - Tool for generating scanners: programs which recognize lexical patterns in text.
- Programming languages where you define control flow in terms of state machines
- Implicit ordering in relational languages (2021)
- Imba - Friendly full-stack programming language for the web that compiles to performant JavaScript. (Code) (HN) (Vite template)
- Shisho - Lightweight static analyzer for several programming languages.
- Hell Is Other REPLs (2021) (HN)
- Weird Languages (2021) (HN)
- Glean - System for collecting, deriving and working with facts about source code. (Web) (HN)
- Guesslang - Detects the programming language of a given source code. (Docs)
- Dispatch Techniques (Lobsters)
- A defense of boring languages (2015) (Lobsters)
- How to Rapidly Improve at Any Programming Language (2016) (HN)
- First-class Names for Effect Handlers (2021)
- Is it better to teach beginner coders a low level or a high level language as their first language? (2021)
- Cuddly, Octo-Palm Tree: Cheap interpreter, part 1: overview (2021)
- Code2flow - Generates call graphs for dynamic programming language.
- The seven programming ur-languages (2021) (Lobsters)
- Programming languages resources
- Implicit Overflow Considered Harmful (and how to fix it) (2021) (Lobsters)
- Project Verona - Research programming language for concurrent ownership. (Web) (Lobsters)
- Beyond ProgrammingLanguages (1979) (Lobsters)
- tree-sitter-graph - Construct graphs from parsed source code.
- Correct by Construction Language Implementations (2021) (Tweet)
- How do you write code in statically-typed functional programming languages (2021)
- LangSandbox - Project to illustrate how to build a programming language.
- Toward a Theory of Programming Language and Reasoning Assistant Design: Minimizing Cognitive Load (2021)
- Comparison of enumerations and similar features in different languages
- Static Analysis: An Introduction (2021)
- Static Analysis at GitHub (2021)
- Static Analysis at GitHub (2022)
- Most accessible programming language (2021)
- Ask HN: If you designed a new programming language, what would its features be? (2021)
- glot.io - Open source pastebin with runnable snippets and API. (Code)
- 1001 Representations of Syntax with Binding (2021) (Reddit)
- Chigraph - Visual systems language for beginners compiled using LLVM. (Code)
- Which programming language is fastest? - Website that shows toy-program performance measurements for ~24 language implementations. (Code)
- What's your favorite GC-based language? (2021)
- Selecting a programming language can be a form of premature optimization (2021)
- Shawn Wang - Growing a Meta-Language (2021)
- Kindly Bent to Free Us (2019)
- Microsoft Power Fx - Low-code general purpose programming language based on spreadsheet-like formulas. (Article) (HN)
- Undefined Behavior deserves a better reputation (2021) (Lobsters)
- Runno - Helps you make runnable code examples that can be embedded in web pages. (Code)
- Pattern matching in concatenative programming languages (2009)
- Static Value-Flow Analysis Framework for Source Code
- Dynamic Languages Strike Back (2008)
- Are there any ML style languages with no runtime? (2021)
- Tao - Statically-typed functional programming language.
- Do we really need Undefined Behavior? (2021) (HN)
- Shepherd - Utility for applying code changes across many repositories.
- "Incremental, zero-config Code Nav using stack graphs" by Douglas Creager (2021) (Web)
- How I wrote my own "proper" programming language (2020)
- Awesome Program Analysis
- Code Generation for Higher Inductive Types (2018)
- Ask HN: How would a programming language look if designed by non-programmer (2021)
- Nice esoteric compilers (2021)
- A Brief Introduction to Esoteric Languages (2021) (Video)
- Awesome Alt Languages
- Go Static or Go Home (2015) - In the end, dynamic systems are simply less secure.
- Features of a dream programming language (2021) (HN)
- Ask HN: What is your favorite programming language and why? (2021)
- Programing Language Documentations
- Profile Guided Optimization without Profiles: A Machine Learning Approach (2021)
- Automated Code Optimization with E-Graphs (2021) (HN)
- Tencent Cloud Code Analysis (TCA) - Code comprehensive analysis platform, which includes three components: server, web and client.
- What you can learn by merely writing a programming language changelog (2022)
- SQRL - Safe, Stateful Rules Language for Event Streams.
- Rethinking errors, warnings, and lints (2022)
- C++ Concepts vs Rust Traits vs Haskell Typeclasses vs Swift Protocols - Conor Hoekstra - ACCU 2021 (Slides)
- Following the programming language evolution, and taking it personally (2022) (Lobsters)
- Destroy All Values: Designing Deinitialization in Programming Languages (2022)
- Why Static Languages Suffer From Complexity (2022) (Lobsters)
- In defense of complicated programming languages (2022) (HN)
- Bagel - Programming language designed for JavaScript programmers to write reactive UIs, using a paradigm where stateful procedures and pure functions are mutually exclusive categories. (Article) (Update) (Bagel Bites: Type Refinement)
- The complete guide to (external) Domain Specific Languages
- SAPP - Post Processor for Facebook Static Analysis Tools.
- Concise language to write an interpreter for? (2022)
- Awesome programming languages
- Have you found side-effects a problem by increasing complexity in your code bases? (2022)
- Graphene - Create and share beautiful code snippets. (Code)
- crie - Using a mix of other tools and libraries to create a dead simple meta-linter and formatter.
- CodeshiftCommunity - Community-owned global registry and documentation hub for codemods. (Code)
- Programming Language and compiler Benchmarks (Code)
- Benchmarks of different languages
- Kcov - Code coverage tester for compiled languages, Python and Bash.
- CS 152: Programming Languages Course (2022) (Code)
- Returning Values and Errors (2022) (HN) (Lobsters)
- flamegraph.com - Upload and Share Interactive Flamegraphs.
- So you want to design a programming language (2017) (HN)
- Esolang Park - Online visual debugger for esoteric languages. (Code) (HN)
- Practical Normalization by Evaluation for EDSLs
- Advanced Programming Languages
- complexity - Calculate an approximation of code complexity per file in a language-agnostic way.
- Hare - Systems programming language designed to be simple, stable, and robust. (Code)
- Why am I building a programming language in private? (2022) (HN)
- Eclectica - Unifies management of any language under one cohesive and minimalistic interface.
- ABI-Checker - Automate testing that two languages/compilers agree on ABIs for the purposes of.
- Gistit - Quick and easy code snippet sharing tool. (Web)
- Languages with native support for tables
- List of new budding programming languages and their interesting features (2022)
- Generics syntax in different languages (2022)
- Ask HN: Are you using actors in production? Why/Why not? (2022)
- A Typed Programming Language: The Semantics of Rank Polymorphism (2020) (Paper)
- OneLinerHub - Open source code library. (Code)
- Uniform Structured Syntax, Metaprogramming and Run-time Compilation
- Most interesting languages to learn (from)? (2022)
- Surprising Weak-Ref Implementations: Swift, Obj-C, C++, Rust, and Vale (2022)
- Programming Languages Design: Ultimate Bundle
- It-Depends - Tool to automatically build a dependency graph and Software Bill of Materials (SBOM) for packages and arbitrary source code repositories.
- treequery - Run Tree-sitter queries on source code.
- Awesome Codemods - Curated list of tools that can fix your code for you.
- Spoofax - Open-source language designer's workbench with everything you need for designing your next textual (domain-specific) programming language. (Code)
- Codestat.dev - Stats from 2M open-source repositories. (HN) (Code)
- Copybara - Tool for transforming and moving code between repositories. Used at Google.
- Ott - Tool for writing definitions of programming languages and calculi.
- PL Papers You Might Love Newsletter
- ogma - Scripting language focused on processing tabular data.
- massCode - Free and open source code snippets manager for developers. (Web)
- CodeImage - Create elegant screenshots of your source code. (Code) (Tweet)
- Course on Metaprogramming
- Germanium - Generate image from source code.
- 10 papers that all PhD students in programming languages ought to know
- LanguageTool - Style and Grammar Checker for 25+ Languages.
- Compile time evaluation in Nim, Zig, Rust and C++ (2022) (Reddit) (HN)
- Prybar - Universal interpreter front-end. Same interface, same REPL, different languages.
- Copy-and-Patch Compilation: A fast compilation algorithm for high-level languages and bytecode (2020)
- Reple - "Replay-based" REPLs for compiled languages.
- Sphinx - Dynamically typed programming language that is inspired by Lua and Python, and implemented entirely in Rust. (HN)
- What's a good general-purpose programming language? (2022) (Reddit)
- Inform 7 - Programming language for creating interactive fiction, using natural language syntax. (HN) (OSS release post)
- Scopes - Retargetable programming language & infrastructure.
- Scope Sets as a Piñata for Name Resolution (2021)
- Principled Ad-Hoc Polymorphism (2018)
- Langbot - Run code from many programming languages.
- Effekt - Research language with effect handlers and lightweight effect polymorphism. (Web)
- Worst Design Decisions You've Ever Seen in Programming Languages (2022)
- Exercism - Develop fluency in over 55 programming languages with our unique blend of learning, practice and mentoring. (Twitter) (GitHub)
- Starry Night - Syntax highlighting, like GitHub.
- Wrong by Default (2022)
- Code to Image Converter (Code)
- MLscript - Principal Type Inference for Object-Oriented Programming in a Boolean Algebra of Types.
- Can you have too many programming language features? (2022)
- Programming Languages and Theory of Computation
- Modern programming languages require generics (2022) (HN)
- Passerine - Small extensible programming language designed for concise expression with little code. (Lobsters)
- StackOverflow trends
- The appeal of bidirectional type-checking (2022) (Lobsters)
- A Pattern Language for the LIMITS Community (2022)
- Awesome low level programming languages
- Inko - Statically-typed, safe, object-oriented programming languages for writing concurrent programs.
- wastebin - Minimal pastebin shamelessly copied from bin. (Code)
- Well Done: A Sentinel Value (2013)
- Emerge - Code analysis tool to gather insights about source code structure, metrics, dependencies and complexity of software projects.
- What's a condition system and why do you want one? (2011) (Lobsters)
- Thoughts on infectious systems: async/await and pure (Lobsters)
- Jai vs Odin systems programming languages (Non-spicy takes!) (2022)
- Multimethods, Global Scope, and Monkey-Patching (2012)
- Almost Rules (2022) (Lobsters)
- Six Programming Languages I'd Like to See (2022) (Lobsters) (HN)
- Ask HN: What do you code when learning a new language/framework? (2022)
- Concatenation is composition (HN)
- Languages with Rust's eums
- Quicksort implemented in different languages
- Language Incubator - Learning compilers, interpreters, code generation, virtual machines, assemblers, JITs, etc.
- ipso - Functional scripting language.
- Ask HN: How to make a native GUI with a modern language? (2022)
- Scopes - Retargetable programming language & infrastructure. (Lobsters)
- ASTGrep - Fast and easy tool for code searching, linting, rewriting at large scale. Written in Rust. (Web) (GitHub)
- Awesome Actor Model
- Roc - Language for making delightful software.
- KavaScript - Minimalistic dynamically-typed programming language for didactic purposes.
- Peacock | Bind Patterns (Lobsters)
- Jank - Clojure/LLVM/Gradual Typing language. (Code) (Lobsters)
- PLDB - Programming Language Database. (Code) (HN)
- Book recommendations after reading "crafting interpreters" (2022)
- Programming Language Research
- Acutis - Declarative, type-safe template language.
- ICFP Contest 2022 (Twitter)
- Language garden - Some toy programming language implementations, mostly implemented in OCaml.
- Prettify - Code beautification tool for formatting HTML, Liquid, JavaScript, TypeScript, CSS/SCSS and more. (Code)
- Odin - General-purpose programming language with distinct typing, built for high performance, modern systems, and built-in data-oriented data types. (Review) (Interview)
- What would be your “perfect” programming language? (2022)
- Ask HN: What is the coding exercise you use to explore a new language? (2022)
- The Golden Age of PL Research (2022)
- Brown CS: Programming Languages Course (2012)
- Val - Research programming language to explore the concepts of mutable value semantics and generic programming for high-level systems programming. (Code)
- Program Analysis (an Appetizer) (2020)
- Useful lesser-used languages? (2022)
- SIGPLAN: Special Interest Group on Programming Languages (Code)
- Introduction to the Theory of Programming Languages (1991) (Lobsters)
- Code Language Converter - Convert code to other languages using AI.
- Melang - Script language of preemptive scheduling coroutine in single thread.
- Duo - Research language focused on the combination of subtyping, type inference and type-theoretic dualities.
- CodeGeeX - Open Multilingual Code Generation Model.
- Adventures in Dynamic Software, Visualisations, Creating a JVM Language, UI, and More (2022)
- CMSC 430: Design and Implementation of Programming Languages (2022) (HN)
- So you're using a weird language (2022) (HN)
- Technical exercises and experiments
- SCIP Code Intelligence Protocol - Language-agnostic protocol for indexing source code, which can be used to power code navigation functionality such as Go to definition, Find references, and Find implementations.
- codestrings - Extracts all the strings from your source code.
- The Hundred-Year Programming Language (2022)
- Simplified Piet interpreter written in Python
- Why is it hard to learn another programming language? (2022) (Lobsters)
- When to Use Memory Safe Languages (2022) (Lobsters)
- "Stop Writing Dead Programs" by Jack Rusher (Strange Loop 2022) (HN) (HN) (Lobsters)
- Syntax Design (HN) (Lobsters)
- Concatenative Programming: From Ivory to Metal (2017) (Lobsters)
- [What Operators Do You WISH Programming Languages Had? (2022)(https://www.reddit.com/r/ProgrammingLanguages/comments/ya87l1/what_operators_do_you_wish_programming_languages/)
- Tips on performance when building programming language in Rust (2022)
- Programming language comparison by reimplementing the same transit data app (HN)
- Which programming paradigm had the most impact on you as an engineer and why? (2022)
- System level language considerations (2022)
- Mica - Simple, human-friendly, embeddable scripting language.
- Om - Novel, maximally-simple concatenative language. (HN)
- Jakt - Memory-safe systems programming language.
- Dropcode - Simple and lightweight code snippet manager.
- Amber - Language for High-Level Programming with Self-Extension.
- Singeli - Domain-specific language for building SIMD algorithms with flexible abstractions and control over every instruction emitted.
- Designing a programming system/language to never break backwards compatibility while allowing the system to evolve
- Frank - Strict functional programming language with a bidirectional effect type system designed from the ground up around a novel variant of Plotkin and Pretnar's effect handler abstraction.
- Malbolge - Self-modifying programming language that is made to be deliberately difficult to program in and close to impossible to read.
- P4 Compiler
- Elvish - Expressive Programming Language + Versatile Interactive Shell.
- The Cost of Exception Handling (2022) (HN)
- go.vm - Simple virtual machine - compiler & interpreter - written in Go.
- Millet - ML-like pure functional language that can be used as a template for creating your own language.
- Certified Interpreter for ML with Structural Polymorphism
- Tamarin - Fun and pragmatic scripting language written in Go. May be used as a CLI or embedded as a library.
- Plunder - Programming model that makes it possible to have programs that "run forever", eliminating the need for a separate storage abstraction.
- Buzz - Strongly typed scripting language written in Zig. (HN)
- Little Languages Are The Future Of Programming (2022) (Lobsters) (HN)
- AutoTransform - Framework for large-scale, automated code modification in a production environment.
- (Re)writing an interpreter in Rust (2022) (HN)
- languagetool-code-comments - Integrates the LanguageTool API to parse, spell check, and correct the grammar of your code comments.
- Eclipse OMR - Cross platform components for building reliable, high performance language runtimes.
- Simple Refinement of Anonymous Sum Types in Pattern Matches (2022)
- Writing Interpreters in Rust: a Guide (HN)
- Rune - Programming language developed to test ideas for improving security and efficiency. (HN)
- A review of elementary data types : numbers and strings (2022)
- Need for speed: static analysis version (2022)
- Higher-orderness is first-order interaction (2022)
- Building an interpreter for my programming language with ChatGPT (2022) (HN)
- Create a programming language in ChatGPT
- DreamBerd - Perfect programming language.
- Right and wrong: ten choices in language design (2022) (Lobsters)
- Noulith - Pareto-optimal choice for quick-and-dirty scripts. (HN) (Lobsters)
- CSpell - Spell Checker for Code.
- gprof2dot - Converts profiling output to a dot graph.
- Programming Languages: Application and Interpretation (HN)
- Vyxal - Golfing language that has aspects of traditional programming languages - terse, elegant, readable.
- Garnet: The Generics Problem (Lobsters)
- Coroutines As Threads (2018)
- Ten influential programming languages (2020) (HN)
- Jonathan Blow - Programming Language Q&A (2022)
- SantaCoder: New 1.1B code model for generation and infilling
- Language design: providing guarantees (Rust) vs communicating intent (Raku) (Reddit)
- Cyber - Fast, efficient, and concurrent scripting language. (Web) (Lobsters) (HN)
- Compilation Speed discussed (2022)
- Vox - Small and fast JIT/AOT compiler with zero dependencies.
- APScript - Speedy interpreter for the AP Computer Science Principles pseudocode language built in Rust.
- Tomas Petricek's teaching on programming language design
- Anzen - General purpose programming language that aims to make assignments easier to understand and manipulate.
- Cara - Programming language aiming to be pleasant to use and maintain while staying safe and dependable.
- What features would you want in a new programming language? (2023)
- Microfeatures I'd like to see in more languages (2023) (HN) (Lobsters) (Reddit)
- Vel - Language for verified low-level software.
- Compiled and Interpreted Languages: Two Ways of Saying Tomato (2023)
- Faster virtual machines: Speeding up programming language execution (2023) (HN)
- Type Checking If Expressions (2023)
- Adding For Loops to an Interpreter (2023) (Lobsters)
- Squirrel - High level imperative, object-oriented programming language. (Code)
- What does it mean to have an "algebraic" type system? (2023)
- Troupe - Programming language based on the actor model for concurrent and distributed programming that provides dynamic information flow control.
- Sylver - Language agnostic source code exploration and analysis. (Lobsters)
- duckscript - Simple, extendable and embeddable scripting language.
- rtx - Polyglot runtime manager. (Lobsters)
- Garble - Turing-Incomplete Programming Language for Multi-Party Computation with Garbled Circuits.
- Inpla: Interaction nets as a programming language
- Bog - Small, strongly typed, embeddable language. (HN)
- Aocla - Advent of Code toy language. (Lobsters)
- FLAME: A small language model for spreadsheet formulas (2023) (HN)
- UwU - Next generation esoteric language.
- Compis - Contemporary systems programming language in the spirit of C.
- Volar.js - Embedded Language Tooling Framework. (Code) (Article)
- A Wishlist of Zero-Cost Abstractions (2017)
- Tiger - Small imperative language that I'm writing while reading the Modern Compiler Implementation in ML.
- Free Variables and Free Effects
- The unsafe language doom principle (2023) (Lobsters)
- Implementing Co, a Small Language With Coroutines #3: Adding Coroutines (2023) (Lobsters)
- Coping with nontermination: some thoughts on stopping loops (2023)
- Why Aren't Programming Language Specifications Comprehensive? (2023) (Lobsters)
- C-rusted: The Advantages of Rust, in C, without the Disadvantages (2023) (Lobsters) (HN)
- voxu - Strongly and statically typed, memory-efficient functional programming language.
- Cotton - Simple functional programming language built with Rust.
- Lobsters: Killer libraries (2023) (HN)
- The Usability of Advanced Type Systems: Rust as a Case Study (2023) (HN)
- Writing high-performance clients for TigerBeetle (2023)
- Give Me Flexibility and Give Me Types (2023)
- Stdout Buffering (2016)
- Architecting Asynchronous Schedulers (2020)
- Adventures in REPL Implementation (2023) (HN)
- Letlang - Functional language with a powerful type system.
- Codeverter - Convert code to your programming language of choice. (Code)
- What conlangs should be "required reading" for someone thinking about making their own? And why? (2023)
- Alumina - Imperative, general-purpose, statically typed, compiled system programming language.
- Advanced Topics in Programming Languages (2023)
- What are the issues with algebraic effects? (2023)
- Mamba - Compiles to Python.
- What features have you seen in a PL that helped encourage code re-use? (2023)
- Decreasing the number of memory accesses (2023) (HN)
- Type system of Fortnite's Verse language (2023) (HN)
- proto - Multi-language version and dependency manager.
- AI Code Translator - Use AI to translate code from one language to another.
- Admissibility graphs
- Can PL theory make you a better software engineer? (2023)
- Designing a Programming Language to Speedrun Advent of Code (2023)
- CrabLang
- Zydeco - Programming language based on Call-by-push-value.
- Destroy All Values: Designing Deinitialization in Programming Languages (2023)
- Stack Exchange Programming Language Design and Implementation is ready for launch (Lobsters)
- Wipple - Programming language that’s natural to read, write and learn. (Code)
- comelang - Modern compiler using reference count GC.
- ScrapScript - Tiny functional language for sharable software. (HN)
- Native Implementation of Mutable Value Semantics (2021)
- PL Grad Schools
- loxcraft - Language server, and online playground for the Lox programming language. (Lobsters)
- Mojo - Programming language for all of AI. (Lobsters) (HN) (HN)
- Value Oriented Programming Needs Implicits? (2023) (Lobsters)
- The seven programming ur-languages (2023) (Lobsters)
- Classification of the principal programming paradigms
- lenar - Programming language written in Rust.
- The N Calculus (2022)
- Noether programming language
- RowScript - Robustly-typed functional language that compiles to efficient and reliable JavaScript.
- Way to Jai - Gradual guide to discover and learn the Jai programming language.
- What is the last programming language you learned and why? (2023)
- Ki - High performance compiled language with simplicity and safety.
- Degens Interpreter Competition
- Language Pragmatics Engineering (HN)
- Code-switching Research Resources
- interpreter for the Monkey programming language written in Rust
- Higher-Order, Data-Parallel Structured Deduction (2022)
- Building a Programming Language in Twenty-Four Hours (2023)
- Languages Zoo (2023)
- List and count of keywords in programming languages
- Squeezing a Little More Performance Out of Bytecode Interpreters (2023) (Lobsters)
- The Type Checker - Simon Peyton Jones (2023)
- Ask HN: Why aren't modern programming languages, like Rust, more legible? (2023)
- An opinion on what's a good general-purpose programming language (2023) (Lobsters)
- Minotaur: A SIMD-Oriented Synthesizing Superoptimizer (2023)
- Diamond - Programming language with polymorphic reachability types that track freshness, sharing and separation.
- L.B. Stanza - Optionally-typed general purpose programming language.
- The magic of dependency resolution (2023) (HN)
- The path to implementing a programming language (2023) (Lobsters)
- Ill-Typed Programs Don't Evaluate (2023)
- Writing Hurl's grammar, twice (2023)
- Error handling patterns (2023)
- Jule - Safe and fast programming language that focuses on systems programming.
- Continue - Open-source coding autopilot. (HN)
- What's in a Module? (2023) (Lobsters)
- Representing Heterogeneous Data (2023)
- Type inference algorithms for functional programing languages
- Fix - Language which uses reference counting to provide garbage collection and interior mutability.
- Jblow Talks About Rust, Jai, And More | Prime Reacts (2023)
- Expressive Code - Text marking & annotation engine for presenting source code on the web.
- Why Static Languages Suffer From Complexity (2022)
- The AST Typing Problem (2023) (HN)
- Starting a programming language: setting up the project and the lexer (2022)
- Compile-Time Checked Truth Tables (2023) (HN)
- My Thoughts on OCaml vs Haskell/Rust in 2023
- Vectorized Interpreters: MRT for PL (2023) (Lobsters)
- Ad-hoc polymorphism erodes type-safety (2023)
- Lura - IDE focused programming language study.