User loginNavigation |
Meta-ProgrammingNormal-order direct-style beta-evaluator with syntax-rules, and the repeated applications of call/cc
Oleg's presentation at the workshop in honor of Daniel Friedman is great fun as usual.
The topic of repeated applications of call/cc has been mentioned on LtU previously, a few years
ago. New this time: the full and correct beta-normalizer written as a
direct-style syntax-rule. The normalizer implements calculus of
explicit substitutions. The talk presents probably the shortest (and
the fastest) normal-order beta-normalizer as a (stand-alone) Scheme
macro. Another new feature is the discussion of self-applications of
delimited continuation operators. The talk mentions incidentally that
shift, control, shift0 and other, less-delimited control operators are the members of the same family: gshift/greset.
Hot stuff. By Ehud Lamm at 2005-01-19 13:07 | Lambda Calculus | Meta-Programming | Semantics | 1 comment | other blogs | 8475 reads
Ian Bicking: The challenge of metaprogrammingSo I think it's really important that we approach metaprogramming with caution. I think Guido has been right to resist macros. Not because they are necessarily wrong, but because we haven't yet figured out how to do them right. And maybe we never will, maybe source code simply isn't the right level for abstractions. I think it's good that Python doesn't do tail-call elimination; it seems like a nice feature, but in subtle ways it makes the language harder. And I think continuations could lead to bad things. There are wrong paths on the road to higher-level programming. (Though in some ways I also feel the opposite: tell us not to shoot ourselves in the foot, and expect us to listen, don't assume we'll abuse every feature that exists; there's always a tension in these design choices.) This deserves more attention than I can give it right now, but I am sure others here will want to comment. By Ehud Lamm at 2005-01-07 20:21 | Meta-Programming | Python | Software Engineering | 105 comments | other blogs | 31080 reads
Python, metaprogramming, and macrosA nice blogpost from Ian Bicking. By Ehud Lamm at 2004-11-24 10:48 | Meta-Programming | Python | login or register to post comments | other blogs | 8177 reads
Haskell Communities and Activities Report, Seventh Edition, November 2004The November 2004 edition of the biannual Haskell Communities and Activities Report has been published. Lots of new stuff in the last six months, and some old stuff updated as well. The HC&AR has been steadily growing over the last three years, showing that FP is gaining users both professional and private. By shapr at 2004-11-12 18:23 | DSL | Functional | General | Implementation | Meta-Programming | Teaching & Learning | Theory | XML | 2 comments | other blogs | 6658 reads
Fresh O'Caml
Fresh O'Caml is Mark Shinwell's sucessor to Andrew Pitts's last summer's blockbuster FreshML. It's experimental, but Tom tells me it's very cool, and I trust him. This work comes out of... no, not INRIA, enclave of O'Caml High Acolytes, but rather the University of Cambridge Computer Laboratory Theory and Semantics Group. Here are the obligatory tasty paper morsels:
More papers than you can shake a stick at on Fresh O'Caml's dad, FreshML, are also available. Pythologic - Prolog syntax in PythonThe "recipe" for Pythologic is given and discussed here: http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/303057 The discussion is interesting in itself, as it identifies the "wildly unpythonic" and "abusive" "overhaul of the function semantics" involved. One thing I've always liked about Python is the extent to which it supports this kind of metaprogramming. You can, if the mood takes you, quite seriously deform the language's conventional semantics. That isn't necessarily a good thing; but it can be fun sometimes. David Mertz has written an article on embedding declarative mini-languages in Python, which demonstrates some other techniques. By Dominic Fox at 2004-09-03 09:28 | Meta-Programming | login or register to post comments | other blogs | 29384 reads
A Deeper Look At MetafunctionsIn this Artima article, David Abrahams and Aleksey Gurtovoy take a deeper look at metafunctions, and introduce the Boost metaprogramming library. The article is an extract from the authors' forthcoming C++ Template Metaprogramming. The authors' example application of C++ metafunctions is compile-time dimensional analysis. Higher order metafunctions, partial metafunction application and lazy evaluation are also discussed. Wouldn't an Amazon sponsored link to the book be a good idea here? Attribute-Oriented Programming with Java 1.5From Peeking Inside the Box. An interesting look at the addition of annotations to the next generation Java. Not sure what the main purpose of this metadata is, but the author discusses it in terms of debugging and instrumentation. Annotation definitions look a lot like interface definitions, but the keyword @interface is used instead of interface and only methods are supported (though they act more like fields). public @interface Status { String value(); } I can now define my method as follows: @Status("Connecting to database") public void connectToDB (String url) { ... } Multi-stage Programming in MetaOCaml
Interesting tutorial.
I don't recall seeing the link to this set of slides here before. Code Generation Netwrok
A nice site dedicated to all things related to code generation.
This site includes a detailed list of code generators for various languages and platforms. |
Browse archives
Active forum topics |
Recent comments
16 weeks 5 days ago
16 weeks 6 days ago
16 weeks 6 days ago
39 weeks 8 hours ago
43 weeks 2 days ago
44 weeks 6 days ago
44 weeks 6 days ago
47 weeks 4 days ago
1 year 16 hours ago
1 year 17 hours ago