[comp.software-eng] Application generators

abbott@aero.ARPA (Russell J. Abbott) (10/06/88)

  I'm interested in experiences with and opinions about application
  generators.
  
  I define an application generator as a computer program that has the
  following properties.
  
     1. It encapsulates the semantics of a particular application domain  
        or computational paradigm.
  
     2. It  provides  a  way for "programmers" to tailor, i.e., program, 
        the encapsulated knowledge for the use of "end users."  In  other  
        words it defines both "programming" and "end user" roles.
  
  I'd like to take a broad view of application generators and include, for
  example, spreadsheet systems as application generators.  Spreadsheet
  systems encapsulate a limited version of the computational paradigm of
  constrained arrays of values.  They are used to generate applications
  when "a programmer" encodes, for example, an organizational structure
  (i.e., a set of constraints), which is used by "an end user" who enters
  specific data values.  (Of course the programmer and end user may be the
  same individual, but they need not be.)
  
  I realize that such a broad view allows one to consider general purpose
  programming languages as application generators as well as perhaps any
  interactive system.  My real interest, though, is in application
  generators that provide programming leverage in powerful and interesting
  ways, and it is experiences with these sorts of systems that I'm
  soliciting comments about
  
  I believe that this topic merits open discussion, so I request that
  comments be posted so that others can join in the discussion.
  
  Thanks,
  
  -- Russ Abbott
  

scott@shuksan.UUCP (Scott Moody) (10/12/88)

In article <39048@aero.ARPA>, abbott@aero.ARPA (Russell J. Abbott) writes:
> 
>   I'm interested in experiences with and opinions about application
>   generators.
>   
>   I define an application generator as a computer program that has the
>   following properties.
>   
>      1. It encapsulates the semantics of a particular application domain  
>         or computational paradigm.
>   
>      2. It  provides  a  way for "programmers" to tailor, i.e., program, 
>         the encapsulated knowledge for the use of "end users."  In  other  
>         words it defines both "programming" and "end user" roles.
>   

I have just recently heard about the term 'application generators'. 
I would like to know if these can also be construed as 'Supercompilers' 
as described in an article by Turchin in TOPLS (July 86) on 
'The Concept of a Supercompiler'. Basically a program transformer. 

I could see such a tool as just a higher abstraction for a programmer
to use, in much the same way a high level programming language is 
a higher abstraction to the low level machine level. Why not provide
a tool (language,set of tools) that will allow programming of an application.

In my case, we have a set of graphic prototyping tools that are very useful to
develope specific applications (something like visual programming).
Unfortunately the tools are so generic that the end result is a great
MODEL of the applications, but the execution performance isn't as good
as a taylored end product. Why not provide a application generator
or metasystem transformer, that will take the prototype and generate
a streamlined end product. This way changes can be made to the generic
high level prototype, without having to diddle in the low level 
end produce. (Have we heard this before?)

Does this even come close to your concept of an application generator?

Could you post any references that are explicitly on the application
generators. 

(Actually after posting this I found an article in July 1988 issue of 
Computer on application generators, and am now editing the batched
news message:
  Do feel that the application generators you want are actual formal
  definitions of the end system? Or do you think that a running 
  prototype would also fit?  )

Thanks.

scott moody