WRT the original quest, I realize that the trail is probably cold for most of the list by now and that tangential discussions have now generated more interest, but I think I have a reasonable answer.
In functional programming map and reduce are often called *meta-functions*. GA, GP, Ant Colony Optimization, etc. are often called *meta-heuristics*. *Meta programming* is even in Wikipedia referring to programs that manipulate other programs. *Meta-programming* is a bit too general for what I'm after since a compiler is a meta-program and that's not really the point. But * meta-application* may do the trick. Thanks for all your help. -- Russ On Mon, Sep 7, 2009 at 9:12 PM, Tom Carter <[email protected]> wrote: > All -- > Apropos some of this, today I found myself going back and forth between > the FRIAM discussion and this review/analysis of what's new in Mac OSX Snow > Leopard . . . > > http://arstechnica.com/apple/reviews/2009/08/mac-os-x-10-6.ars/8 > > tom > > On Sep 7, 2009, at 7:14 PM, Birchard Hayes wrote: > > Doug, > > True, but now we have boatloads of RAM to fill - he he he. > Garbage collection remains a real problem whenever it is included in a > language implementation. I've been working in C#/.NET lately and I would > venture to say that there is as much "bookkeeping" involved as there was > with pointers and explicit destructors; only now, one must learn an entirely > new set of rule and MS generated foibles. > > I wonder if what Russ really wants is an architecture of abstract classes > that use a wide variety of interfaces and concrete classes to provide the > palette of functions, i.e. an aggregate of abstractions, to provide enough > variability in behavior at runtime. That could be done in C++ (STL) with > Policy Based Templates and a few other patterns; lot's of heavy lifting > though. > > -Birch > > -- > > "When I am working on a problem, > I never think about beauty but when I have finished, > if the solution is not beautiful, I know it is wrong." > - > Buckminster Fuller > > **** Use of advanced messaging technology does not imply **** > ***** an endorsement of western industrial civilization ***** > > > > > On Sep 7, 2009, at 6:41 PM, Douglas Roberts wrote: > > Birch, > > Written like a true computer scientist. I lived in a LISP world for a > happy period between, say '85 - '90. > > But then the real-world encroached, and C++ began to become the only > realistic way to implement large ABMS of complex systems. LISP was nice, > but the virtual machine and garbage collection made it a non-player in the > modern HPC computing arena. > > --Doug > > On Mon, Sep 7, 2009 at 6:33 PM, Birchard Hayes <[email protected]> wrote: > >> Okay Russ, >> >> There are several options to chose from, depending on just how adaptive >> you'd like the functionality to be. >> >> LISP (Scheme, et alia): Allows for partial instantiation or "currying." >> This mechanism allows your program to build functions out of little pieces >> of text and then call _eval()_ on them when completed. LISP uses a list for >> a generic structure but does not infer type until you use something. Thus >> you could have a collection of objects that were all completely different >> with functionality created on the fly. >> >> Javascript: Which, it turns out is a functional language; makes functions >> first class objects and allows appending objects or replacing their methods >> at run-time. I believe there is a native "Collection" structure but one >> could be written if there is not. Javascript also has an _eval()_ function, >> so partial instantiation is possible. >> >> Java (and, to an extent, C++): Allow for Collections of heterogeneous >> objects, although the language is strongly typed and will try to dissuade >> the programmer from being too abstract. The smoothest way to apply >> different behavior is through interfaces, keeping in mind that each class >> can implement the interface however it chooses. The drawback here is that >> the interfaces must be concrete at compile time and I don't know of an easy >> way to modify them at runtime (I'm sure that it can be done but requires >> more work than the other two options.) The STL has _functors_, generally >> for comparison but could be extended, which can be called on arbitrary >> classes iffi those classes provide the requisite methods the functor needs. >> One would iterate over a Collection and apply the functor to each object, >> or each pair. However, even with cool stuff like Policy Based Templates >> (LOKI Libraries, Alexandrescu et al.) I think that compile time type >> checking will make things less flexible than you desire.) I haven't looked >> for functors in Java, but I imagine they are there or could be created. >> Additionally, Java has lent itself to the "new" paradigm of _Aspect >> Oriented Programming_ which I have not played with very much, but I >> understand that functionality can be cross-cut across classes and assembled >> at runtime but I would think that it would still be pretty strongly typed. >> >> IMHO, LISP and its bretheren fit what you seek although Javascript >> potentially offers fertile ground and may be easier to integrate with Java. >> >> As for a single term to describe this, I still like Data Structure but >> that's probably being purist and I could get behind active structure. >> >> -Birch >> >> -- >> >> "Humanity is acquiring all the right technology for all the wrong >> reasons." >> ~R. Buckminster Fuller >> >> **** Use of advanced messaging technology does not imply **** >> ***** an endorsement of western industrial civilization ***** >> >> >> >> >> On Sep 7, 2009, at 5:48 PM, Russ Abbott wrote: >> >> Let me bring this back to where I started with this. You may recall that a >> while ago I was talking about what I wanted in an ideal agent-based modeling >> system. I have been thinking about as a starting point. One of the things I >> like about Drools is that it is a forward chaining system that supports a >> workspace that can contain arbitrary Java objects along with rules that >> operate on those objects. I find that very attractive because it allows new >> primitives to be added at any time while at the same time providing a >> reasonable framework for logical operations. >> >> I wanted a term that would describe this sort of openness. >> >> As I've been attempting to describe it, the closest comparison seems to be >> to a general Genetic Algorithm system in which the population, genetic >> operators, and fitness function are all left open. The analogy is that the >> GA population plays a role similar to the Drools workspace and the GA >> genetic operators and fitness function plays a role similar to the Drools >> rules. >> >> I was looking for a term that would capture the sort of operational >> framework within which the lowest level objects and operations were left >> open while the framework implemented some higher level functionality in >> terms of those objects and operations. >> >> -- Russ >> >> >> On Mon, Sep 7, 2009 at 4:27 PM, Steve Smith <[email protected]> wrote: >> >>> Birch - >>> >>>> I thought Container as well (although Bag leapt to mind too) but Russ >>>> decided against so all that was left was the more abstract descriptor. >>>> Besides, LISP has a data structure or two and underlying types, loosely >>>> defined but they are there - IMHO "Data Structure" is neither procedural, >>>> declarative, nor functional. >>>> >>> Of course. >>> >>> I merely have my face being rubbed in this right now cuz I'm the >>> old-school C programmer working with some new-school C++ kids who don't >>> really even know what a Struct is... They will create a Class when a >>> Struct is what they really need. >>> Since I grew up in the early days of Knuth's Art of Computer Programming >>> (when you were still in a Brooklyn grammar school beating up honor-roll >>> students for their lunch money)... I tend to the Procedural view of >>> things... I learned all the Applicative and Object Oriented and >>> Concatenative ( In my NeWS days) languages offered up to me in the g(l)ory >>> days. I have loved my Snobol and APL and Prolog and PostScript (*as a >>> programming language!*) and Objective C and Java and loved to hate LISP and >>> Haskell and Simula, and made peace with C++, but at heart, I love the >>> half-step of abstraction from hardware that good ole C provides. It's a >>> goddamn bit processing machine, gimme some register variables and an easy >>> way to do bit-shifts and I'll build the rest from raw stock! >>> >>>> Of course due to my current work situation I am drawn to "bring me a >>>> rock" like a moth to the flame. >>>> >>> Does this mean you are avoiding deadlines? Or just so morbidly >>> fascinated with all things work-related that answering enelucidable riddles >>> is like mother's milk? >>> >>>> >>>> I have a bottle of Irish Whiskey to replenish yours and Bourbon is >>>> always good (rot gut or not) but you know that I can't condone burning >>>> books >>>> for any reason! >>>> >>> Yes, I believe we did do some damage to a bottle of Jamesons last time >>> you were over. And I don't need you to condone the burning of books, but >>> that doesn't mean you can't warm your hands by the woodstove while *I* do. >>> The real sin would be to use good whiskey as an accellerant (for the >>> combustion, not the attitude). >>> >>>> >>>> -Birch >>>> >>>> >>> >>> ============================================================ >>> FRIAM Applied Complexity Group listserv >>> Meets Fridays 9a-11:30 at cafe at St. John's College >>> lectures, archives, unsubscribe, maps at http://www.friam.org >>> >> >> ============================================================ >> FRIAM Applied Complexity Group listserv >> Meets Fridays 9a-11:30 at cafe at St. John's College >> lectures, archives, unsubscribe, maps at http://www.friam.org >> >> >> >> ============================================================ >> FRIAM Applied Complexity Group listserv >> Meets Fridays 9a-11:30 at cafe at St. John's College >> lectures, archives, unsubscribe, maps at http://www.friam.org >> > > > > -- > Doug Roberts > [email protected] > [email protected] > 505-455-7333 - Office > 505-670-8195 - Cell > ============================================================ > FRIAM Applied Complexity Group listserv > Meets Fridays 9a-11:30 at cafe at St. John's College > lectures, archives, unsubscribe, maps at http://www.friam.org > > > ============================================================ > FRIAM Applied Complexity Group listserv > Meets Fridays 9a-11:30 at cafe at St. John's College > lectures, archives, unsubscribe, maps at http://www.friam.org > > > > ============================================================ > FRIAM Applied Complexity Group listserv > Meets Fridays 9a-11:30 at cafe at St. John's College > lectures, archives, unsubscribe, maps at http://www.friam.org >
============================================================ FRIAM Applied Complexity Group listserv Meets Fridays 9a-11:30 at cafe at St. John's College lectures, archives, unsubscribe, maps at http://www.friam.org
