On Sun, Feb 04, 2007 at 12:13:56AM -0800, Brandon J. Van Every wrote: > If you want to lead some Chicken project, please tell us what you have > in mind. Perhaps we can find people to assist you.
Here is a project I've always wanted to do. It sounds impossible, but that is what attracts me to it. Even if it fails, as long as it a recorded what was done and how far we got, others can continue it. --------------------------------------------- A "cradle to grave" metacompiler. One of my dreams has been to design and implement a metacompiler that describes *all* phases of the compiler--especially the type checking and optimization. While this would be cool in its own right, I also want the metacompiler to *automatically* produce the debugger and the linker (if applicable) for the language given additional markup. After designing the description language, we'd markup scheme, C, java 1.5, prolog, eiffel, fortress, and inform 7. Once the metacompiler looks like it'll be able to represent such languages/linkers/debuggers (or why it wouldn't), the actual metacompiler is written in one fell swoop. The first use of the metacompiler will be to describe its own specification, and then we'll get a debugger for free. (Imagine a world where you can test the compiler's correctness by watching a debugger for the compiler speak in the native language of parse trees, syntax relations, etc, etc, etc) I'd need 2 people that have more than a passing interest in compilers and compiler theory and have written at least a few compilers in their lives. Initially there would be a research phase getting as much current info we can on the topics, then a synthesis phase where we suck all the info into our minds and construct useful abstractions, then a metacompiler language description phase, then a "smoke test" phase where we simply write models of the above languages, then the implementation phase which we test on our models. --------------------------------------------- Does this directly affect chicken? Not really. Some more eggs would probably show up, but this is a straight application, through and through and I'd only ever write the above in scheme due to its complexity. Another project, more of a daydream unlike the above, and not so impossible :) --------------------------------------------- A "Master Worker" distributed computation framework. We'd design an API in scheme which describes a "master", "master-proxy", and "slave" task (along with the idea of a lexical closure available across machines in a special (tuplespace-let ...) type of environment). You write your code against the API, and the whole code is shipped, in ascii form, to the compiler/interpreter on the other side who compiles it (could be cached) and then executes it. This could be done with 1-2 people who've done some network programming. --------------------------------------------- For the first one, I wouldn't be able to start that in earnest for 1-2 years, but for people who wanted to start it now, I can give direction in what research material should be found, how it should be organized, and what is it that should be being gotten out of the research. For the second, I could actually work on that one in a couple of months or so since I know about how much work it should take. If anything, all of these ideas should be recorded somewhere and they should act like seeds for people to look over and see what they'd like to water. Later, -pete _______________________________________________ Chicken-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/chicken-users
