User loginNavigation |
ImplementationLowering: A Static Optimization Technique for Transparent Functional ReactivityLowering: A Static Optimization Technique for Transparent Functional Reactivity, Kimberley Burchett, Gregory H. Cooper, and Shriram Krishnamurthi. PEPM 2007.
Whenever I read about compiler optimizations, I try (with mixed success) to relate them to transformations in the lambda calculus. I haven't managed to figure out what's going on with the By neelk at 2007-02-15 17:22 | Functional | Implementation | Logic/Declarative | 10 comments | other blogs | 11205 reads
Threads in JavaScript?Threads in JavaScript? "Over your dead body," says Brendan. But Neil Mix begs to differ -- they're already there! Neil's latest blog post presents a cool hack combining JavaScript 1.7's generators with trampolined style to implement very lightweight cooperative threads. The implementation weighs in at a breathtakingly small 4k. By Dave Herman at 2007-02-14 00:43 | Implementation | Javascript | Object-Functional | Parallel/Distributed | 19 comments | other blogs | 39841 reads
Regular Expression Matching Can Be Simple And FastWith Peter's observation that everything good in Computer Science happened during the "Golden Age" freshly in mind, I found Russ Cox's recent article on regular expressions to be enjoyable reading.
Combining implementation details, finite automata, and a foray into decades-old theory, this article shows how most of our favorite little languages have an enormous performance bottlenecks for certain categories of string comparisons. An additional data point: The Shootout benchmarks have a large string comparison test. It's interesting that Tcl is at the top of the heap for performance. Guess which one is using the Thompson NFA algorithm for regular expressions? Lightweight Fusion by Fixed Point PromotionLightweight Fusion by Fixed Point Promotion, Atsushi Ohori and Isao Sasano.
Deforestation is one of those optimizations every functional programmer who has ever had to rewrite a beautiful composition of maps and filters into an evil, ugly explicit fold has always longed for. Unfortunately, the standard lightweight fusion algorithms have trouble with examples as simple as By neelk at 2007-02-12 23:52 | Functional | Implementation | Lambda Calculus | 4 comments | other blogs | 7224 reads
The Missing Link - Dynamic Components for MLThe Missing Link - Dynamic Components for ML, Andreas Rossberg. ICFP 2006.
This is a very nice paper showing how to integrate dynamic loading into the ML module system. Er, I guess I'm repeating the abstract. I thought this paper, in addition to the feature it gave, was also a good demonstration of how to put the Dreyer-Crary-Harper account of ML modules to work. By neelk at 2007-02-10 19:32 | Functional | Implementation | Type Theory | 1 comment | other blogs | 9677 reads
ACM Queue: Realtime Garbage Collection
The article is primarily about the Metronome garbage collection technology, but includes a nice introduction to garbage collection and realtime terminology as well. State of the Union: Type Inference via Craig InterpolationState of the Union: Type Inference via Craig Interpolation, by Ranjit Jhala, Rupak Majumdar, and Ru-Gang Xu The ad-hoc use of unions to encode disjoint sum types in C programs and the inability of C's type system to check the safe use of these unions is a long standing source of subtle bugs. We present a dependent type system that rigorously captures the ad-hoc protocols that programmers use to encode disjoint sums, and introduce a novel technique for automatically inferring, via Craig Interpolation, those dependent types and thus those protocols. In addition to checking the safe use of unions, the dependent type information inferred by interpolation gives programmers looking to modify or extend legacy code a precise understanding of the conditions under which some fields may be safely accessed. We present an empirical evaluation of our technique on 350KLOC of open source C code. In 80 out of 90 predicated edges (corresponding to 1472 out of 1684 union accesses), our type system is able to infer the correct dependent types. This demonstrates that our type system captures and explicates programmers' informal reasoning about unions, without requiring manual annotation or rewriting. By Jim Apple at 2007-02-04 05:05 | Implementation | Type Theory | 4 comments | other blogs | 6387 reads
Programming the Greedy CAM MachineProgramming the Greedy CAM Machine. Erik Ruf. January 2007
Section 6.8 is on the suitability of LINT, the low-level intermediate language described in the paper, as a target language for the compilation of higher-level abstractions. But comments on the general issues discussed in the paper are welcome as well... By Ehud Lamm at 2007-01-27 10:17 | Implementation | Parallel/Distributed | login or register to post comments | other blogs | 5498 reads
Back to the FutureBack to the future: the story of Squeak, a practical Smalltalk written in itself by Dan Ingalls, Ted Kaehler, John Maloney, Scott Wallace, Alan Kay, 1997.
This paper is so good that it's hard to believe it was written after 1990! A Garbage-Collecting Typed Assembly LanguageA Garbage-Collecting Typed Assembly Language. Chris Hawblitzel; Heng Huang; Lea Wittie; Juan Chen.
The TAL-GC proofs can be found here. By Ehud Lamm at 2006-12-03 11:10 | Implementation | Type Theory | 1 comment | other blogs | 7759 reads
|
Browse archives
Active forum topics |
Recent comments
1 week 2 days ago
1 week 3 days ago
13 weeks 3 days ago
13 weeks 4 days ago
13 weeks 5 days ago
13 weeks 5 days ago
14 weeks 3 days ago
14 weeks 3 days ago
14 weeks 3 days ago
17 weeks 4 days ago