[Introspector-developers] Fwd: [intentionalprogramming] What IP is.
Status: Beta
Brought to you by:
mdupont
|
From: James M. D. <mdu...@ya...> - 2002-12-04 19:55:49
|
Here is a nice article that might be of interest to you --- techtrader_bob <f5w...@sn...> wrote: > To: int...@ya... > Mailing-List: list int...@ya...; contact > int...@ya... > Date: Wed, 04 Dec 2002 18:15:55 -0000 > Subject: [intentionalprogramming] What IP is. > > My take on this: > IP is infrastructure on which you build code generators. Period. > > Please read the following paper NOW! I added the homesite of this > paper to the 'Links' section of the group.. > > ftp://ftp.cs.utexas.edu/pub/predator/distil.pdf > > Ok, now that you are back.. > > I think of IP as a glorified Question/Answer system along with a > database of code fragments. The code fragments have attributes. > It also has some stuff to visualize code (graphically, math symbols, > whatever) via attributes on an intention telling the IP system how to > > display it. You could display any code as Java, C, Math, arbitrary > bitmap, etc). IP is infrastructure, not a language. > > Depending on the attributes, different code would be generated. > IE for Sorts, and less than 1000 items, use a quick sort, for 1 > billion items, generate code for a disk based B-Tree. > > You need to state your INTENT to the IDE. When it can not resolve > what you mean, you would actually type some code (c, java, etc) that > you want pasted in. > > If you find a better way to do something, type in the code, then add > attributes to that code that would allow the IP system to determine > which code (old or new) that should be used. With the above example, > > say your program got a ton of new data. You would code up the b- > tree, and say for LARGE sets, use this. Then in your Sort intention, > > you would add the "LARGE" attribute/requirement. > > Your code would then be transformed to use the new algorythm. > > These code fragments could be entire components, subroutines, or even > > lines of code. > > The magic of IP is it knows how to weave it all together into a > cohesive functioning program. This allows huge amounts of re-use > since you just have to describe the desired output. If no code > matches, create some new attributes, and some new code, allowing it > to be wove in to the new enhanced codebase. > > With regard to the sort, your code would be independant of the data > types. Sorting integers, characters or names would be the same. The > > generator would look to the layer above to determine the datatype and > > then generate code specific to that type. > > This quickly leads into a need for Refactoring, and code aspects, > hence simonyi's new company. > > These ideas are shown in: > ftp://ftp.cs.utexas.edu/pub/predator/tr-95-26.pdf > ftp://ftp.cs.utexas.edu/pub/predator/tr-95-04.pdf > ftp://ftp.cs.utexas.edu/pub/predator/sigsoft-93.pdf REALLY GOOD!! > ftp://ftp.cs.utexas.edu/pub/predator/wisr-93-p2.pdf > ftp://ftp.cs.utexas.edu/pub/predator/sigsoft-94.pdf REALLY GOOD!! > > > Hope this makes sense.. > > ===== James Michael DuPont http://introspector.sourceforge.net/ __________________________________________________ Do you Yahoo!? Yahoo! Mail Plus - Powerful. Affordable. Sign up now. http://mailplus.yahoo.com |