logo

Miscellaneous Programming Language

Posted on: 2022-09-27

Books

Opinion Pieces

Adventures in Dynamic Software

link

Introduced carp which I haven't heard of before.

Carp borrows its looks from Clojure but the runtime semantics are much closer to those of ML or Rust. Types are inferred but can be annotated for readability using the the keyword (see below).

Memory management is handled by static analysis, a value is owned by the function where it was created. When a value is returned or passed to another function the initial function will give up ownership of it and any subsequent use will lead to a compiler error. To temporarily lend a value to another function (for example to print it) a reference must be created, using the ref special form (or the & reader macro).

Bret Victor and has links to his videos.

Talks about the Glamourous Toolkit which is an editor for SmallTalk/Pharo.

Bolt compiler

Articles on how the compiler was created.

https://news.ycombinator.com/item?id=33793108

Async discussion

Videos

https://www.youtube.com/playlist?list=PLS9MbmO_ssyCzjONn8v796nUGRXMX389H https://gamefromscratch.com/odin-programming-language/

Linear Types

Linear types allow for a simplified model for handling lifetimes, and as used in Austral capability system. As originally described they are threaded. Later in the document a more ergonomic 'borrowing' style is allowed (as taken from Rust). Australs 'borrowing' is more limited, but usage is more clear.

Things to explore

Post C++ Languages

Naming Conventions

Language Adoption

General