- repo:
debrief.pl
- desc: about programming languages
- link: https://github.com/mandober/debrief.pl.git
Notes about concrete programming languages: concrete syntax, grammar, edge cases, etc. A quick reference of common language constructs and idioms. Languages: Rust, JS, bash, Haskell, Scheme, Racket, Python, Ruby, C, C++, C#, Java, PHP, Powershell, VB, Cobol, Sass, Prolog, HOL, LC. Including some meta topics: comparisons, approaches to common PL concepts and constructs (iterators, generators, futures, concurrency, data types, data structures, handling of errors, etc.), classification, paradigms.
Topics
- Classifications, types, factors, paradigms,
- Type systems
- Concepts and constructs
- Means of abstraction
- Components
- Expressiveness (vs Provability)
Pl abstractions:
- procedure, routine, function
- macros
- class
- module
- package
- component
- microservices
PL concepts:
- type system
- generics
- iterators
- concurrency
- async: async/wait, futures, promises, generators
- error handling: ADT, exceptions, (in-band) signaling, NULL, nullability
PL components (generalizations):
- control flow
- code org
- types
- data structures