archives

A Tail-Recursive Machine with Stack Inspection

A Tail-Recursive Machine with Stack Inspection. John Clements and Matthias Felleisen, TOPLAS 2004.

Security folklore holds that a security mechanism based on stack inspection is incompatible with a global tail call optimization policy... In this article, we prove this widely held belief wrong. ... Our machine is surprisingly simple and suggests that tail calls are as easy to implement in a security setting as they are in a conventional one.

I don't believe we've discussed this paper before, although it was mentioned in this thread. Tail calls have been a topic of discussion here several times. [1][2][3]

Do us proud, Dave!

Brendan Eich clues us in about the future of Javascript and, lo and behold, who do we find helping the process along? Our very own Dave!

I'm happy to announce that we are now working with Dave Herman, a fourth year graduate student at Northeastern, of PLT and lambda-the-ultimate renown, whom I invited as an expert to help ECMA TG1 develop sound specifications for critical parts of ECMAScript Edition 4 (ES4), also known as JavaScript 2 (JS2).

Life and Times of Anders Hejlsberg

This episode of “Behind the Code” features industry luminary, Anders Hejlsberg. Before coming to Microsoft in 1996 he was well noted for his work as the principal engineer of Turbo Pascal and the chief architect of the Delphi product line. At Microsoft he was architect for the Visual J++ development system and the Windows Foundation Classes (WFC). Promoted to Distinguished Engineer in 2000, Anders is the chief designer of the C# programming language and a key participant in the development of Microsoft’s .NET framework.

This isn't a technical interview but it is fun none the less. Anders describes, for example, how his team works and how their meetings are organized.

When asked about the future of C#, Andres mentions better data integration (e.g., LINQ etc.), and the mismatch between programming languages and database programming. These are issues we discussed here many times, of course. As regards the future of programming languages in general, we are told that more declarative languages (or language features, I suppose) are going to appear. I quite suspect that different programmers have different ideas of what declarative programming really means, and I think question is worth exploring.

It's nice to hear Andres say that OOP is a tool, and not a religion, and mention that there are useful ideas in language such as Haskell, ML, Lisp and Scheme. I guess we weren't wasting our time after all...

LiteratePrograms wiki

Derrick Coetzee has recently announced an interesting new wiki called LiteratePrograms. LP is based on Wikipedia's MediaWiki system, but adds some capabilities from the noweb literate programming system. Quoting from the LP website:
LiteratePrograms is a unique wiki where every article is simultaneously a document and a piece of code that you can download, compile, and run by simply using the "download code" tab at the top of every article. See Insertion sort (C, simple) for a simple example. To date we have 3 articles.
Based on Donald Knuth's concept of literate programming, LiteratePrograms is a collection of code samples displayed in an easy-to-read way, collaboratively edited and debugged, and all released under the liberal MIT/X11 License (see LiteratePrograms:Copyrights) so that anyone can use our code and text for any purpose.
While it's obviously just getting started, and thus has fairly minimal content, I think that the idea behind LP is an interesting one. It seems like there's a lot of potential for the LP wiki to become both a handy resource for (well-documented) code-snippets, and a great educational tool.