Programming languages
Languages
- Effekt
- Elixir
- Elm
- Expresso
- Flix
- Gluon
- IntercalScript
- Case objects are similar to polymorphic variants in OCaml.
- Koka
- Lean 4
- Lobster
- Lua
- Nim
- Its garbage collection with deferred reference counting is interesting.
- OCaml
- Scala
- Swift
- Uiua
- Unison
- Yatima
- Ruby
- Scheme
- Racket
Go
- Go
- The package namespace system like Go works only with object-oriented programming as classes create sub-namespaces.
- Channels - A Tour of Go
DQNEO/babygo
Haskell
Python
Scheme
TypeScript
Ruby
Rust
Technologies and concepts
Language design
- プログラミング言語の未来はどうなるか
- Robert Virding - On Language Design (Lambda Days 2016)
- The Rise of “Worse is better”
- Design Criteria for Programming Languages
- Go at Google: Language Design in the Service of Software Engineering
- Language Design
Type system
- Lecture slides of recursive types at Cornell University
- Algebraic subtyping
- Practical type inference for arbitrary-rank types
- Complete and Easy Bidirectional Typechecking for Higher-Rank Polymorphism
Effect system
Garbage collection
Reference counting
- Counting Immutable Beans: Reference Counting Optimized for Purely Functional Programming
- Perceus: Garbage Free Reference Counting with Reuse
- Reference Counting with Frame Limited Reuse
Immix GC
mu/immix-rust
- Immix: A Mark-Region Garbage Collector with Space Efficiency, Fast Collection, and Mutator Performance
- Taking Off the Gloves with Reference Counting Immix
- Rust as a Language for High Performance GC Implementation
Algorithms and data structures
- Optimizing Hash-Array Mapped Tries for Fast and Lean Immutable JVM Collections
- LazyList | Scala
- Foreign Function Interface | Deno
RRB tree
Coroutine
- From folklore to fact: comparing implementations of stacks and continuations
- Coroutines for Go
- Stackful coroutine実装まとめ
- Coroutine | Boost
Lossless syntax tree
WASM
- Emscripten
- Wasmtime
- Cranelift
bytecodealliance/wasi
microsoft/mimalloc
bytecodealliance/wasm-micro-runtime
Concurrency and parallelism
- Keynote: Announcing Broadway - ElixirConf EU 2019
- Basic back pressure can be implemented as queue limits.
dashbitco/broadway
- Akka Stream
- Runtime Support for Multicore Haskell