This book looks amazing. Last month I put in a purchase request for a copy at my local library. I may end up buying a few copies: for myself and for gifts; especially if I could get them signed by the author.. :D
10% smaller is 3*0.1=0.3 smaller than 3, which is 3-0.3=2.7
So 200% smaller is 3*2=6 smaller than 3, which is 3-6=-3
Which is why these kinds of statements usually don't make any sense at all. Usually something can't be more than 100% smaller, at which point it is completely gone.
Compact language implementations are increasingly popular for use in resource constrained environments. For embedded applications such as robotics and home automation, it is useful to support a Read-Eval-Print-Loop (REPL) so that a basic level of interactive development is possible directly on the device. Due to its minimalistic design the Scheme language is particularly well suited for such applications and several implementations are available with different tradeoffs. In this paper we explain the design and implementation of a compact Scheme system that supports a REPL, is extensible and has a 4 KB executable code footprint.
The Ribbit system is a compact Scheme implementation running on the Ribbit Virtual Machine (RVM) that has been ported to a dozen host languages. It supports a simple Foreign Function Interface (FFI) allowing extensions to the RVM directly from the program’s source code. We have extended the system to offer conformance to the R4RS standard while staying as compact as possible. This leads to a R4RS compliant REPL that fits in an 7 KB Linux executable. This paper explains the various issues encountered and our solutions to make, arguably, the smallest R4RS conformant Scheme implementation of all time.
LispBM (LBM) is a Lisp or Scheme-like programming language for microcontrollers. LispBM also borrows a couple of ideas from Erlang when it comes to concurrency, message passing, pattern matching and process monitoring. The LispBM runtime system can be compiled for either 32 or 64-bit platforms and runs on a wide range of hardware such as, for example, STM32, NRF52, ESP32 or X86. When running the LispBM runtime system on a microcontroller, it can be built on top of ChibiOS, FreeRTOS or ZephyrOS or, if you are adventurous, on bare-metal. LispBM can also be built to run on top of regular Linux (and now even Windows).
Who wouldn’t want a REPL (read eval print loop) on their embedded platform? This is what LispBM is for!
I don't feel likely to get much out of typing (+ 2 2) and getting 4 in a web REPL. What I want is a 1-page writeup with basics about the implementation: Lisp dialect, implementation strategy, special features and limitations, how the concurrency works, resource requirements, source code SLOC, stuff like that. It's ok for the writeup to assume I'm familiar with Lisp. I looked at the web site for a few seconds and the home page was almost entirely uninformative. I didn't try reading the documentation but might look at it later.
The home page of ulisp.com isn't exactly what I want either, but it's a lot closer.
Literate programming is a methodology that combines a programming language with a documentation language, thereby making programs more robust, more portable, more easily maintained, and arguably more fun to write than programs that are written only in a high-level language. The main idea is to treat a program as a piece of literature, addressed to human beings rather than to a computer. The program is also viewed as a hypertext document, rather like the World Wide Web. (Indeed, I used the word WEB for this purpose long before CERN grabbed it!) This book is an anthology of essays including my early papers on related topics such as structured programming, as well as the article in The Computer Journal that launched Literate Programming itself. The articles have been revised, extended, and brought up to date.
We should revisit literate programming in the agent era (silly.business)
292 points by horseradish 6 months ago | hide | past | favorite | 266 comments
reply