SICP stands for “Structure and Interpretation of Computer Programs”, and is an introductory computer science book, written by Hal Ableson and Gerald Sussman for their introductory computer science course given at MIT from 1981 until 2007. A professional recording done in 1986 and is also available for download online, as is the book itself. Why …
Author Archives: admin
The Python debate on Tail Calls
The Beginning It started with an innocent enough blog post by Guido van Rossum commenting on Python’s lack of tail call elimination in Python’s history. Okay, not even commenting – it was a parenthetical sentence fragment! “Origins of Python’s “Functional” Features” on The History of Python The internet went crazy with comments. Guido attempted to …
50 in 50 at JAOO
[repost, from fall 2008] I caught this talk on earlier blogs – well, not so much a technical talk as a performance. Richard P. Gabriel and Guy L. Steele wax poetic on 50 programming languages in 50 statements each of 50 words. “50-in-50” http://blip.tv/file/1472720 That is all.
CLOS circa 1987, Dynamic Dispatch in C++/C#
As reported by programming musings, http://www.archive.org/details/DanielGB1987 Common Lisp Object Standard presentation, by Daniel G Bobrow. Some reflections: Fast Multiple Dispatch "[for dynamic method resolution] A cache of 1000 entries is hit 98% of the time". Assuming this is accurate, it explains how you could get by with the cached virtual dispatch lookup that the desktop …
Continue reading “CLOS circa 1987, Dynamic Dispatch in C++/C#”
Understanding Continuations
Experimenting with Lisp variants eventually led me to the programming construct of continuations as popular with the Scheme programming language. In case you’re not familiar with the construct, it’s a control construct (like the if statement or exception dispatch) that works a little like this: Say you’re in the kitchen in front of the refrigerator, …
You Can be a Lisper Too!
"Really?" I hear you saying, "you can’t be serious! Python and Ruby, that’s one thing, but Lisp? Seriously?!" About Lisp Briefly, Lisp is a family of programming languages that date back to 1958. It is characterized by a very simple syntax, garbage collection, reference semantics, and very powerful language extension and self introspection capabilities. Many …
Memoizer 4b – Common Lisp
Continuing this series, in Common Lisp… Memoizer 1 – C++ Memoizer 2 – Python Memoizer 3 – Lua Memoizer 4a – Lisp for Mortals Memoizer As before, we’ll be walking through a memoizing function — for review, it’s a function that will transforms an existing function into one that remembers previous results instead of recomputing …
Lisp Style
Some followup from my previous post on Lisp… — Lisp Resources — The book "Practical Common Lisp" is available online, published by the author in its entirety. Also, a CS professor Slava Akhmechet wrote an essay in the same vein, translating from C++ to Lisp — via Xml of all things. (In full disclosure, I’ve …
Memoizer 4a – Lisp for Mortals
Now that this is getting to be a series, I ought to provide links to the previous entries, in case anyone is actually reading this thing: Memoizer 1 – C++ Memoizer 2 – Python Memoizer 3 – Lua Other than the C++ example, this series has been part of an experiment to bootstrap my experience …
Your Favorite PL
In your favorite programming language I came across this site, hanoimania, when researching application virtual machines. The author, personally, has translated a towers of hanoi solver to dozens of programming languages, utilizing: Recursion, with Scheme of course, Pattern matching, with Haskell And bare assembly, such as this MIPS example Although, the embedded world uses the …