archives

Transactional Memory with data invariants (draft sequel to the STM-Haskell paper)

Transactional memory with data invariants
From the abstract:
This paper introduces a mechanism for asserting invariants that are maintained by a program that uses atomic memory transactions.
The idea is simple: the programmer write always E where E is an expression that should be preserved by every atomic update for the remainder of the program's execution. We have extended STM Haskell to dynamically check always statements atomically with the user's updates: the result is that we can identify precisely which update is the first one to break an invariant.
This seems connected to Typed Contracts for Functional Programming by Ralf Hinze, Johan Jeuring, and Andres Löh (noticed on the blog of Dominic Fox).
Maybe this year design-by-contract is the hot subject?

I haven't gotten far enough into either of these papers to have much opinion, but the motivational paragraph at the beginning of the Typed Functional Contracts paper grabbed my attention instantly, and I know I want more STM in my applications, so I look forward to a few enjoyable hours.

Class decorators in Python

Guido resisted the few calling for class decorators, because there wasn't a clear use case that wasn't more readable done another way... [but] Guido has conceded, class decorators will make it into some future version of Python.

More + links: here.

Uniform Proofs as a Foundation for Logic Programming

Uniform Proofs as a Foundation for Logic Programming (Dale Miller, Gopalan Nadathur, Frank Pfenning & Andre Scedrov 1989/1991) introduces the concept of unirform provability, which is fundamental to abstract logic programming, which in turn drives much of the more principled work in modern logic programming.

In particular, this paper (i) shows that logics that support uniform provability support goal-directed proof search, and so may be used as the foundation of a logic programming language, and (ii) the notion of uniform provability may be used to explore new forms of logic programming, in particular introducing the class of hereditary Harrop formulae which underlies lambda-Prolog. A classic...

Abstract logic programming is expored in a more introductory manner in this paper.

academic collab request

Hi all,
So I'm working on a simple project where I am specifying relatively large sets of chemical reactions (graph transformations) with these things called SMILES strings.

It's kinda neat that once you start working with many strings, it feels like you need to look at the science of programming languages. How does on specify large sets of transformations efficiently in such a way that those specifications are maintainable and debugable etc. I like to think of the SMILES strings as assembly language, and I hope to create something a little higher level to make the job of specification a little easier.

It turns out I am in need of a simple preprocessor type language where I can specify and apply functions in a very "embedded" way. I think it would be pretty simple to do, I should be able to do it myself, but I really want to make sure that I am doing it the "right" way. I.e. under the guidance of someone who really knows a lot about the science programming languages. It'd be really nice to see if this work gives anyone any new good ideas.

Why am I doing this? Well it turns out there is a very important question about chemistry I can answer with this system in hand..it don't want to clutter this post, but it has to do with predicting what sorts of molecules will manufactured in the future.

I wonder if there are people other than chemists who would need to specify and maintain large sets of graph transformations and run them on large data sets...

I'm technically a chemistry grad student who does crystallography for living. I've written a lot of of the other parts I need already (i.e. some plumbing to apply a set of rules over the linux cluster at our instiute). I've got a good publication record and I'd be happy to forward my cv to anyone that would be interested in devoting a little time with me to this project. It's weird, I already have enough publications to graduate, but I am kinda using this last little bit of time to try to do something different instead of slumbering into retirement like I see a lot of grad students do.

If you have a strong knowledge of programming languages and would be interested in doing something simple, but unique and very useful, please write me at yadavm with the domain name scripps.edu. Maybe your interested in using your talents in something closer to chemistry and biology.

Famous words, but I expect to write the whole thing up in just a month or two, of course just about all I can offer to you is co-authorship. Lunch if you're in San Diego.