User loginNavigation |
ImplementationThe Glasgow Haskell Compiler Survey - GHC needs your feedback!If you're a GHC user, the Glasgow Haskell Compiler HeadQuarters needs your feedback! See Simon Peyton-Jones original message, or go directly to the user survey. Here's a quote from the original message:
By shapr at 2005-04-15 16:35 | Functional | Implementation | Software Engineering | login or register to post comments | other blogs | 5536 reads
OmegaΩmega is a new programming language by Tim Sheard which is descended from Haskell and adds new facilities for defining static type constraints, such as allowing "users to write functions at the level of types, and then use those functions in the type of functions at value level". It also has "equality qualified types". See also Programming with Static Invariants in Omega and the manual for more information. Mentioned previously (in passing) on LtU. By Bryn Keller at 2005-04-07 21:24 | Functional | Implementation | Meta-Programming | Type Theory | 6 comments | other blogs | 9497 reads
MetaphorMetaphor is a strongly-typed, multi-stage, object-oriented programming language. Metaphor is based on a subset of C# and is extended with multi-stage programming constructs in the style of MetaML or MetaOCaml. Metaphor is implemented as a compiler on the .NET CLR. By Bryn Keller at 2005-04-07 21:08 | Implementation | Meta-Programming | OOP | 1 comment | other blogs | 6767 reads
Pugs, Practicing the Theories.A lot of language theory goes past here on Lambda the Ultimate, but we rarely see that theory directly impacting commercial programmers. By shapr at 2005-04-05 21:09 | DSL | Fun | Functional | Implementation | Meta-Programming | OOP | Paradigms | Software Engineering | Teaching & Learning | 5 comments | other blogs | 10679 reads
UCPy: Reverse Engineering PythonInteresting paper from PyCon 2003 (so yes, it's old news - but new on Lambda, as far as I can see): UCPy: Reverse-Engineering Python. The project partly entails replacing the "CISC-style" Python VM with a much smaller "RISC-style" VM. The authors' comments on this decision are worth considering in the light of recent discussions about the design of the Parrot VM. By Dominic Fox at 2005-03-22 16:23 | Implementation | Python | 23 comments | other blogs | 10769 reads
Reproducing Programs implement Lazy ListsAlong the lines of the quine discussion happening in another thread, Manfred von Thun wrote a new page for the Joy site, Reproducing Programs implement Lazy Lists. This connects nicely with Jeremy Gibbons spigot algorithms paper, one example of which is his IOHCC 2004 submission PiSpigot. By shapr at 2005-03-18 17:08 | Fun | Functional | Implementation | 1 comment | other blogs | 4974 reads
JavaScript and domain specific Languages
Interesting sounding projects...
Embedded InterpretersThis is a tutorial on using type-indexed embedding projection pairs when writing interpreters in statically-typed functional languages. The method allows (higher-order) values in the interpreting language to be embedded in the interpreted language and values from the interpreted language may be projected back into the interpreting one. This is particularly useful when adding command-line interfaces or scripting languages to applications written in functional languages. We first describe the basic idea and show how it may be extended to languages with recursive types and applied to elementary meta-programming. We then show how the method combines with Filinski's continuation-based monadic reflection operations to define an extensional version of the call-by-value monadic translation and hence to allow values to be mapped bidirectionally between the levels of an interpreter for a functional language parameterized by an arbitrary monad. Finally, we show how SML functions may be embedded into, and projected from, an interpreter for an asynchronous pi-calculus via an extensional variant of a standard translation from lambda into pi. Another paper from Nick Benton. Like the previous one this paper is dense and detailed, but this time there are some useful practical techniques that may come handy next time you build a DSL in a functional language. By Ehud Lamm at 2005-02-25 19:32 | DSL | Functional | Implementation | Meta-Programming | 10 comments | other blogs | 14648 reads
Nick Benton: Simple Relational Correctness Proofs for Static Analyses and Program TransformationsWe show how some classical static analyses for imperative programs, and the optimizing transformations which they enable, may be expressed and proved correct using elementary logical and denotational techniques. The key ingredients are an interpretation of program properties as relations, rather than predicates, and a realization that although many program analyses are traditionally formulated in very intensional terms, the associated transformations are actually enabled by more liberal extensional properties. We illustrate our approach with formal systems for analysing and transforming while-programs. The first is a simple type system which tracks constancy and dependency information and can be used to perform dead-code elimination, constant propagation and program slicing as well as capturing a form of secure information flow. The second is a relational version of Hoare logic, which significantly generalizes our first type system and can also justify optimizations including hoisting loop invariants. Finally we show how a simple available expression analysis and redundancy elimination transformation may be justified by translation into relational Hoare logic. Not really exciting as such, but this technical report version of the POPL 2004 paper includes most of the proofs, which some might find helpful. By Ehud Lamm at 2005-02-24 13:55 | Implementation | Semantics | 2 comments | other blogs | 5741 reads
Python Optimization SurprisesThis weekend, I took another crack at trimming microseconds off the common-case path for generic function execution, and succeeded in dropping the excution time from 13.2 microseconds to just over 9.8. (Which is about 9 microseconds overhead added relative to a hand-optimized Python version of the same trivial function.) Along the way, however, I realized a couple of surprising things about Python performance tuning. An amusing story that tells you something about Python's implementation. The discussion of closures is of particular interest... |
Browse archives
Active forum topics |
Recent comments
22 weeks 6 days ago
22 weeks 6 days ago
22 weeks 6 days ago
45 weeks 1 day ago
49 weeks 2 days ago
51 weeks 3 hours ago
51 weeks 3 hours ago
1 year 1 week ago
1 year 6 weeks ago
1 year 6 weeks ago