Nano-Blog : June 1, 2025
Nano-Blog for the week of June 1, 2025.
§ June 7, 2025 ![[QR Code]](IM/qr.png)
-
Literate Programming (LP) is a concept first described by Donald Knuth in the 1980s. He noted that parsing techniques were advanced enough to extract source code from texts otherwise intended for human consumption. By tagging blocks of code it was possible to type human-language code narratives around the source code, ideally highlighting a code fragment with a potentially extended discussion of its design or intent.
There's a bit more to it than this simplistic description would imply. How do you merge bits of code that may be functionally related but appear in differnt parts of the narrative? How do you specify compilation context? None of these questions are insurmountable, but should be addressed.
An early paper on Literate Programming is mirrored on the web at http://www.literateprogramming.com/knuthweb.pdf. And Knuth maintains a Literate Programming page on his site at Stanford: https://www-cs-faculty.stanford.edu/~knuth/cweb.html. The latter references the text "The CWEB System of Structured Documentation" and the book called "Literate Programming" contains more essays about software. All can be recommended. The articles are short and the texts are inexpensive.
-
AppCypher's List of Awesome WebAssembly Languages
Stephen Akinyemi (aka AppCypher) maintains a list of programming languages that can generate Web Assembly bytecodes. If you're interested in such things, point your browser at this GitHub repo: https://github.com/appcypher/awesome-wasm-langs.
§ June 5, 2025 ![[QR Code]](IM/qr.png)
-
System-Crafters posted this video a year ago. It's sort of a rambling review of the Fennel language, its tools and community. It is probably a little longer than it needs to be, but the presenter is personable and the information is good. Worth a watch if you're not on a deadline.
-
Fennel, the Lisp that Compiles to Lua Byte-Codes
Fennel is a newish Lisp dialect which complies down to Lua. Lua is a delightful non-lisp language from Brazil which has gained a bit of a following over the decades. It's been used as an extension language, similar to the way Guile or TCL were once intended to be used. The Lua Virtual Machine is simple and well defined and has even run on microcontrollers. It even works well in the browser.
Fennel merges the increasing ubiquity of Lua with the syntax and macro system of lisp. A plethora of packages are avilable via Lua's package manager, LuaRocks. And now you can easily access that functionality via Fennel.
Fennel is not without some warts, however. It seems to have been strongly influenced by Clojure. But one person's wart is another's feature and though Fennel's conventions are more complex than a bog-simple Lisp, the complications appear to have derived from extended discussions in the community. Fennel requires you to keep more in your head than Pico-Lisp, but so does Scheme and SBCL. Fennel appears to be a somewhat refined language easily usable in places where Tiny- or Pico-Lisps often show up.
§ June 3, 2025 ![[QR Code]](IM/qr.png)
-
Many decades ago, the Pascal Programming Language was popular. One of the reasons was the complexity of solutions which could be extracted from a language with a simple syntax. If you look at early versions of Java, it's paucity of features could be said to mimic Pascal instead of C++.
A bit of wall-art from the era was this poster from an early Apple Computer. This digital version is archived at the Internet Archive (Pascal Poster). Geeks of a certain age may remember this.
Figure: "Train-Track" Diagram for Apple Pascal Syntax