90 minute video presentation from Marc Feeley, along with accompanying PowerPoint slides and source code, for a Scheme to C compiler. Good discussion of continuations and closures, as well as some dipping into the area of compiler construction.
The emphasis is on the 4 major problem areas that crop up in an attempt to convert Scheme to C:
The solution presented gives a series of source-to-source transformations. Stage 1 of the compiler expands the 'let' forms in the Scheme code. Stage 2 converts continuations to CPS. Stage 3 converts the code to closures using encapsulated closure objects. Stage 4 is not presented but touches on how the results would lend itself to a GC implementation.
Gordon Plotkin's Call-by-Name, Call-by-Value and the Lambda Calculus (Theoretical Computer Science , Vol. 1, pp. 125-159, 1975), is available online.
The fundamental point made in the paper should seem natural to most LtU readers: In order to reason about programming language semantics one should look for programming language/calculus pairs.
The paper contrasts CBN and CBV, and shows the differences between the Lambda Calculi appropriate for describing each of them.
Yet another simple example of decorators in Pyhton (via Daily Python-URL).
Microsoft gave a demo of their Software Factories & DSL tools and philosophy over at OOPSLA. It would be great to see the slides but as far as I can see they aren't available online.
I want to love the DSL approach, but I still haven't seen enough examples and detailed discussion to be convinced.
I'd be happy to hear what others think about the UML vs. DSL controversy.
An article from IEEE Security & Privacy magazine.
The article is an accessible introduction to the idea of static code analysis. Several security-related tools are described.
I guess it's tool-week here on LtU what with Dialyzer, JFluid and now this...
I am pleased to announce that the Scheme Language Editors Committee
The progress report can be found at
The Steering Committee has also made some small amendments to the
The members of the Scheme Language Editors Committee are:
The members of the Scheme Language Steering Committee are:
For the Steering Committee,
According to Infoworld,
JFluid is a "profiling" tool, software that examines Java applications and informs developers of potential performance bottlenecks in their code. It was developed by a team lead by Misha Dmitriev, who was transferred from Sun Labs to the software group last week, according to a statement on Sun's Web site.
Which makes me wonder about performance tools in IDEs. On the one hand, performance can be an important factor in software development, and educating programmers about performance isn't such a bad idea. On the other hand, performance considerations are often abused ('the root of all evil,' and all that).
So what kind of performance tools do we really want inside our IDEs? How is the answer effected by the type of programming language language considered? How about IDEs targeting students (DrScheme etc.)?
A highlight from the Erlang/OTP User Conference 2004:
A lot of static-analysis programs have been written for Erlang but this is the first one that programmers have immediately downloaded, used, and liked. I would love to see more researchers following the development philosophy they describe in their paper.
via Planet Lisp
Brad Parker has released an emulator for CADR, the second-generation MIT Lisp Machine. The emulator comes bundled with the operating system and you can run it on a regular Unix machine.
He estimates that it is 90% complete. I can confirm that it does boot up and run ZWEI, the Lisp Machine Emacs. (Note that this is MIT's Lisp Machine and not the fancier Symbolics derivative.)
This is really cool!
Active forum topics
New forum topics