User loginNavigation |
Reflections on reflection - Henk Barendregt(Link)Here's something to exercise both brain hemispheres. Henk Barendregt needs no introduction for many LtU readers - he literally wrote "the book" on the lambda calculus, and that only hints at the profound impact his work has had on lambda calculus and type theory.The page linked above lists two overlapping papers, both about reflection:
As the first paragraph quoted above implies, the scope of these two papers extends far beyond the lambda calculus, into fields such as biology and meditation. Between the two papers, there's something for everyone: "Reflection and its use, from science to meditation" is wide-ranging, covering reflection related to living cells, formal languages, mathematics, art, computers, and the human mind. "Reflection and its use, with an emphasis on languages and lambda calculus", focuses specifically on reflection in formal languages, including combinatory logic and lambda calculus.
By Anton van Straaten at 2004-07-13 16:32 | Fun | General | Lambda Calculus | login or register to post comments | other blogs | 12998 reads
Two books
While downtown doing something else entirely I managed to find myself in a bookshop. One of the few bookshops not belonging to a chain; in fact one that was established in 1908. They had some used books, and I managed to find two that were both interesting and cheap (around $6 each): Pascal User Manual and Report by Jensen and Wirth, 1974 Springer (alas only the 3rd edition from 1985) and Performance and Evaluation of Lisp Systems by Richard Gabriel (1985, MIT).
Here's a taste from both. Wirth and Jensen:
Upon first contact with Pascal, some programmers tend to bemoan the absence of certain "favorite features." Examples include an exponentiation operator, concatenation of strings, dynamic arrays, arithmetiac operations on Boolean values, automatic type conversions and default declerations. These were not oversights, but deliberate omissions. In some cases their presence would be primarily an invitation to inefficient programming solutions; in others it was felt that they would be contrary to the aim of clarity and reliability and "good programming style." Gabriel:
Benchmarking is a black art at best. Stating the results of a particular benchmark on two Lisp systems usually causes people to believe that a blanket statement ranking the systems in question is being made. The proper role of benchmarking is to measure various dimensions if Lisp system performance and to order these systems along each of these dimensions. Gabriel includes a pertinent quote from Vuaghan Pratt: Seems to me benchmarking generates more debate than information. How true... I enjoyed the discussion of the various Lisp implementations in chapters 1 and 2. The Tak, Stak, Ctak, Takl and Takr series of benchmarks is enlightening. It shows how easy it is for benchmarks to measure "overheads" you haven't intended to measure, and how to engineer benchmarks to overcome this fundamental problem.
alt.lang.jre @ IBM developerWorks
Welcome to the new series alt.lang.jre. While most readers of this series are familiar with the Java language and how it runs on a cross-platform virtual machine (part of the JRE), fewer may know that the JRE can host languages besides the Java language. In its support for multiple languages (including some that pre-exist the Java platform) the JRE provides a comfortable entry point for developers coming to the Java platform from other backgrounds. It also gives developers who have rarely, if ever, strayed from the Java language the opportunity to explore the potential of other languages without sacrificing the familiarity of the home environment.
This series may become an amusing resource. The first installment is about Jython. Making Asynchronous Parallelism Safe for the World
(link)
Guy L. Steele, Thinking Machines Corporation, 1990
Here we propose a programming model with the benefits of both styles. We allow asynchronous threads of control but restrict shared-memory accesses and other side effects so as to prevent the behavior of the program from depending on any accidents of execution order that can arise from the indeterminacy of the asynchronous process model. This paper and the ones below may be of special interest in light of the current discussion of modern parallel computer architectures. By Luke Gorrie at 2004-07-12 15:57 | Parallel/Distributed | login or register to post comments | other blogs | 6145 reads
Richard Feynman and the Connection Machine
by way of lemonodor
An entertaining article by Danny Hillis about Richard Feynman's work at Thinking Machines Corporation on the Connection Machine. We've mentioned the Connection Machine's data-parallel programming style on LtU before, and Connection Machine Lisp remains my all-time favourite paper in computer science. Functional programming with GNU makeOne of the gems squirreled away on Oleg's site is "Makefile as a functional language program":
Although I've classified this under Fun, Oleg exploits
See the article for a code comparison By Anton van Straaten at 2004-07-11 19:19 | Fun | Functional | login or register to post comments | other blogs | 12967 reads
What's up guys?
So I am busy a couple of days, and not one editor manages to post something new? I am disappointed...
Maybe it's time we recruited some more contributing editors. If you are a regular and want to join, let me know. Generics in Visual Basic 2005
You knew it couldn't be far behind, right?
Defining and Using Generics in Visual Basic 2005 on MSDN has the details.
By Ehud Lamm at 2004-07-09 08:40 | Software Engineering | login or register to post comments | other blogs | 4997 reads
New Chip Heralds a Parallel FutureMissing no chance to stand on my soapbox about the need for easy PL retargeting, I bring you insights from Paul Murphy about our parallel-processing, Linux future. [T]he product has seen a billion dollars in development work. Two fabs...have been custom-built to make the new processor in large volumes....To the extent that performance information has become available, it is characterized by numbers so high that most people simply dismissed the reports.... The machine is widely referred to as a cell processor, but the cells involved are software, not hardware. Thus a cell is a kind of TCP packet on steroids, containing both data and instructions and linked back to the task of which it forms part via unique identifiers that facilitate results assembly just as the TCP sequence number does. The basic processor itself appears to be a PowerPC derivative with high-speed built-in local communications, high-speed access to local memory, and up to eight attached processing units broadly akin to the Altivec short array processor used by Apple. The actual product consists of one to eight of these on a chip -- a true grid-on-a-chip approach in which a four-way assembly can, when fully populated, consist of four core CPUs, 32 attached processing units and 512 MB of local memory. Paul follows up with a shocker. I'd like to make two outrageous predictions on this: first that it will happen early next year, and secondly that the Linux developer community will, virtually en masse, abandon the x86 in favor of the new machine. Abandonment is relative. The new processor will emulate x86 no problem, as Paul notes. In the PowerPC line, already today we have Linux for PowerPC complete with Mac OS X sandbox. From a PL standpoint, however, this development may cattle-prod language folks off their x86 back ends and into some serious compiler refactoring work. I hope so! Eric Gunnerson's JavaOne report
This may be of interest to LtU readers.
Most of the specific language features were discussed here previously, but the C# perspective may make this worth a look. |
Browse archives
Active forum topics |
Recent comments
20 weeks 1 hour ago
20 weeks 5 hours ago
20 weeks 5 hours ago
42 weeks 1 day ago
46 weeks 3 days ago
48 weeks 13 hours ago
48 weeks 13 hours ago
50 weeks 5 days ago
1 year 3 weeks ago
1 year 3 weeks ago