User loginNavigation |
ImplementationHaskell is not not MLHaskell is not not ML. Ben Rudiak-Gould, Alan Mycroft, and Simon Peyton Jones. European Symposium on Programming 2006 (ESOP'06).
The authors start from the claim that most of the differences between SML and Haskell are independent of evaluation order. Is it possible, they wonder, to design a hybrid language which in some way abstracts over possible evaluation orders? This papers leaves the language design for future work, and concentrates on the implementation costs. The results seem positive, so one hopes this project will mature and end the civil war between lazy and eager functional programming... More information on this project is likely to appear here. By Ehud Lamm at 2006-01-23 18:02 | Functional | Implementation | 8 comments | other blogs | 15009 reads
Programming a compiler with a proof assistant
Xavier Leroy's contribution to POPL'06 is Formal certification of a compiler back-end, or: programming a compiler with a proof assistant, which describes a fairly realistic mini-compiler from a subset of C, called Cminor, to PPC assembler.
So what? It's written entirely in Coq, which pretty much makes a certified compiler for free, and all done in a particularly easy way to leverage if you want to show particular implementations correct. He's got a resource page up with the implementation (which he calls CompCert), and some further notes. By Charles Stewart at 2006-01-17 22:45 | Implementation | login or register to post comments | other blogs | 10873 reads
Project OberonImpossible? Had we not designed compilers, operating systems, and document editors in small teams? And had I not repeatedly experienced that an inadequate and frustrating program could be programmed from scratch in a fraction of source code used by the original design? Our brain-storming continued, with many intermissions, over several weeks, and certain shapes of a system structure slowly emerged through the haze. After some time, the preposterous decision was made: we would embark on the design of an operating system for our workstation (which happened to be much less powerful than the one used for my rectangle-pushing) from scratch.Download the PDF edition of this classic book today! via Heiko Wengler in the discussion forum. (Thanks!!) Java Subtype Tests in Real-Time
Java Subtype Tests in Real-Time. Krzysztof Palacz and Jan Vitek.
Dynamic subtype tests are frequent operations in Java programs. Naive implementations can be costly in space and running time. The techniques that have been proposed to reduce these costs are either restricted in their ability to cope with dynamic class loading or may suffer from pathological performance degradation penalizing certain programming styles. We present R&B, a subtype test algorithm designed for time and space constrained environments such as Real-Time Java which require predictable running times, low space overheads and dynamic class loading. Our algorithm is constant-time, requires an average of 10.8 bytes per class of memory and has been shown to yield an average 2.5% speedup on a production virtual machine. The Real-Time Specification for Java requires dynamic scoped memory access checks on every reference assignment. We extend R&B to perform memory access checks in constant-time. I don't recall this paper or this subject being discussed here. Also see this paper and this presentation. Lego Mindstorms NXT Robotics Announced
(via Lemonodor)
This looks cool. I am not sure about the details of how these bricks are to be programmed, but from the Slashdot dicussion is seems that there is some kind of dataflow language. Even more interesting is the claim that the VM is going to be documented, so third party language developers can target this low end robotics platform. By Ehud Lamm at 2006-01-06 11:40 | DSL | Fun | Implementation | 4 comments | other blogs | 9821 reads
Accelerator: simplified programming of graphics processing units for general-purpose uses via data-parallelism
Accelerator: simplified programming of graphics processing units for general-purpose uses via data-parallelism. David Tarditi, Sidd Puri, and Jose Oglesby.
GPUs are difficult to program for general-purpose uses. Programmers must learn graphics APIs and convert their applications to use graphics pipeline operations. We describe Accelerator, a system that simplifies the programming of GPUs for general-purpose uses. Accelerator provides a high-level data-parallel programming model as a library that is available from a conventional imperative programming language. The library translates the data-parallel operations on-the-fly to optimized GPU pixel shader code and API calls. A library provides programmers with a new type of array, a data-parallel array. Data-parallel arrays differ from conventional arrays in two ways. First, the only operations available on them are aggregate operations over entire input arrays. The operations are a subset of those found in languages like APL. They include element-wise arithmetic and comparison operators, reductions to compute min, max, product, and sum, and transformations on entire arrays. Second, the data-parallel arrays are functional: each operation produces an entirely new data-parallel array. By Ehud Lamm at 2005-12-29 11:43 | Functional | Implementation | Parallel/Distributed | 21 comments | other blogs | 16135 reads
Module Mania: A Type-Safe, Separately Compiled, Extensible InterpreterModule Mania: A Type-Safe, Separately Compiled, Extensible Interpreter
This is an excellent example of how the ML module language doesn't merely provide encapsulation but also strictly adds expressive power. It also demonstrates how a dynamic language (Lua) can be embedded in the statically-typed context of ML. Finally, it demonstrates that none of this need come at the expense of separate compilation or extensibility. Norman Ramsey's work is always highly recommended. By Paul Snively at 2005-12-07 14:58 | DSL | Functional | General | Implementation | Semantics | Theory | Type Theory | login or register to post comments | other blogs | 8860 reads
ClassicJava in PLT Redex
This might be interesting to folks curious about how to formalize a real language, or about how PLT Redex works in practice. By Paul Snively at 2005-12-07 14:51 | General | Implementation | Semantics | Theory | Type Theory | login or register to post comments | other blogs | 6869 reads
What good is Strong Normalization in Programming Languages?There's a neat thread about strong normalization happening on The Types Forum.
Termination is good:
Termination is good!
Termination is good and with fixpoints is turing complete?
Terminating reductions allows exhaustive applications of optimizations:
Rene Vestergaard also gave a link to a 2004 discussion of strong normalization on the rewriting list. By shapr at 2005-11-17 12:31 | Implementation | Lambda Calculus | Theory | Type Theory | 15 comments | other blogs | 10707 reads
Extensible Records With Scoped Labels
Extensible Records With Scoped Labels
Daan Leijen Records provide a safe and flexible way to construct data structures. We describe a natural approach to typing polymorphic and extensible records that is simple, easy to use in practice, and straightforward to implement. A novel aspect of this work is that records can contain duplicate labels, effectively introducing a form of scoping over the labels. Furthermore, it is a fully orthogonal extension to existing type systems and programming languages...Last time one of Daan's papers was mentioned, there was a very positive response (after Frank reminded us a couple of times). This is equally good: clever, elegant, and clearly presented. (Between this and the Sheard paper, it's a good week for practical type systems...) By Matt Hellige at 2005-11-15 16:29 | Implementation | Type Theory | 9 comments | other blogs | 16451 reads
|
Browse archives
Active forum topics |
Recent comments
23 weeks 7 hours ago
23 weeks 11 hours ago
23 weeks 11 hours ago
45 weeks 1 day ago
49 weeks 3 days ago
51 weeks 19 hours ago
51 weeks 19 hours ago
1 year 1 week ago
1 year 6 weeks ago
1 year 6 weeks ago