| J. C. Cleaveland. Building application generators. IEEE Software,pages 25--33, July 1988. |
....is a much broader definition than the one given in [132] where components are defined as binary units. Abstractions are hard to define for generally reusable artifacts because we do not have many universal abstractions available that go beyond the abstraction level of stacks, lists, trees etc. [19, 44, 92]. Consequently, the cognitive distance of such domain independent abstractions is high and the payoff for reusing them is relatively small. On the other hand, software reuse can be successful in case it is domainspecific and the domain provides proper domain concepts for reusable artifacts ....
J. C. Cleaveland. Building application generators. IEEE Software, 5(4):25--33, July 1988.
....as micro languages and little languages [3] There are many examples of DSLs in practice and as is often the case with the familiar, users may not even realize that they are dealing with a DSL. A taxonomy of application domains for DSL is given in [2] Associated with DSLs is a design methodology [6, 25] in which the Analysis step essentially captures the domain specific knowledge, notations and abstractions as well as the design of the DSL itself. This paper is based on the premise that DSLs need not be restricted to text based languages. For very many domains a DSVL is a far more intuitive ....
J.C. Cleaveland. Building application generators. IEEE Software, pages 25--33, July 1988.
....to develop program families traditional programming methods, which are intended for the development of a single program, are not ideal. This paper discusses the process of designing and developing program families and surveys work on program families. The work surveyed is: 19] 20] 12] 18] [7], 5] 6] 4] 3] 16] 23] 10] 8] 9] 13] 14] 15] and [24] These papers have several things in common: 1. They all suggest that we should make the family the unit of software development. Here the set of programs that constitute the family are identified by defining a set of ....
....of change. Productivity and Quality. A Survey of Work on Program Families 6 . Manageability. Items [18] 6] 4] 23] and [24] propose systematic approaches to designing and implementing program families. Others present technologies that are used in these processes. The approaches in [18] [7], 5] 6] 4] 23] 15] and [24] are general purposes. In [3] 16] and [14] specific application areas are discussed. In [7] and [16] a translator is needed to translate the high level language to a lower level. In [5] and [6] the term abstract interface was used and discussed in [12] in ....
[Article contains additional citation context not shown here]
Cleaveland, J.C., "Building Application Generators", IEEE Software, pp. 25 - 33, 1988.
....to the environment and that of reacting to disturbances in the actual production process (i.e. reactive scheduling) 2. 2 Application Generators Application generators operate like programming language compilers input specifications are automatically translated into executable programs (Cleaveland 1988). Application generators differ from traditional compilers in that the input specifications are typically very highlevel, special purpose abstractions from a very narrow domain. By focusing on a narrow domain, the code expansion in application generators can be one or more orders of magnitude ....
Cleaveland, J. C. (1988) Building application generators, IEEE Software 5 (4) pp. 25-33.
....sure which transformation to choose. Application generators, also known as component generators, are also a domain specific reuse approach to languages. They are like programming language compilers because they take specifications as inputs and automatically translate them into executable programs [5]. However, they differ from traditional compilers in that the input specifications are typically very high level, special purpose, abstractions from a very narrow application domain . 60] Using specialized languages is an alternative to using program libraries. The languages serve as a general ....
....who are familiar with the domain because they raise the level of abstraction to specification in terms and notations of the problem domain . be used to prototype applications because the time needed to produce application is reduced . be used to implement standards so that they are adhered to [5] However, a difficult challenge for implementors of application generators is defining the optimal domain coverage and the optimal distribution of domain concepts into the fixed and variable parts of the abstractions. 60] Even though the benefits are high for using application generators, the ....
Cleaveland, J., Building application generators. IEEE Software July 1988
....can greatly simplify software construction they have the potential to provide an order of magnitude increase in programmer productivity. Unfortunately, they have three major disadvantages: Limited domain of applicability. The domain of applicability (a.k.a. domain width or domain coverage [Cle88]) is the size of the family of related systems that a generator or kit can produce. The relatedness of these systems is the source of the strength, but also the fundamental weakness, of generators and kits they greatly increase productivity in one domain, but one domain only. Difficulty of ....
....an order of magnitude more difficult to build a generator. Solutions to this difficulty including building the generator on top of a transformation system, using a specialized language such as P [Sin93a b, Sin96] or using a generator kit such as Stage MetaTool Specification Driven Tool Builder [Cle88] or JTS [Bat98a] Poor run time performance relative to hand coding. Generators and kits may not be able to perform certain low level optimizations or select optimal algorithm and data structures, and the resulting system may contain vestiges of generality (e.g. layering and interpretation) ....
J. C. Cleaveland. Building application generators. In IEEE Software, July 1988, pages 25-33. Also in [Pri91], pages 241-249.
....usually depend on a special purpose design notation and require special software tools. The fact that frameworks are programs makes them easier for programmers to learn and to apply, but it also causes some problems that we will discuss later. Frameworks are similar to application generators [Cle88] Application generators are based on a high level, domain specific language that is compiled to a standard architecture. Designing a reusable class library is a lot like designing a programming language, except that the only concrete syntax is that of the language it is implemented in. A ....
J. C. Cleaveland. Building application generators. IEEE Software, 4(5):25--33, July 1988.
....Transformation Process This phase of the design involves the provision of a program generator that performs a translation from the visual representation to the Simula programming language syntax. Applications generators are usually built for some of the following reasons advanced by Cleaveland [Cleaveland,88] in his paper on this topic: 1) letting the designer concentrate on specification (2) generating and maintaining applications by non programmers (3) ease of prototyping and testing alternative specifications Some of the problems of building application generators are that they are difficult ....
....intermediate language representation permits designs to be easily stored, altered and re used. 8.2.3. Application Generation 178 The information, captured through the interaction with the objects dynamic forms, and complemented by the visually represented design is used by a program generator [Cleaveland,88] to produce Simula stubs. The program generator plays, in a design context, a useful role. Some of the benefits are: i) It extends the design process from a conceptual exercise to a building phase. This, in turn, provides the designer or eventual user with further evaluation insights into the ....
Cleaveland, J. C., "Building Application Generators," IEEE Software, 5(4), pp. 25-33, (July 1988). 191
.... are both well recognized approaches [3] They represent a flexible form of reuse that not only allows the reuse of the implementations of abstract functional units, as in the component based approaches, but also allows the reuse of how these functional units are combined to form a complete system [5]. The only limitation in the amount of design knowledge that can be reused by an application generator is the ability to express that knowledge as an algorithm. Furthermore, application generators allow this knowledge to be reused by non programmers because the domain specific language can provide ....
....or replacing existing operations. This model has been successfully applied to the construction of several small, but interesting interpreters. 7 Related Work One approach to the design of application generators is the use of templates such as that found in [9] The approach taken in STAGE [5] is to use a metalanguage which, based on the micro program, generates various code fragments. These techniques provide a lower level view than techniques like DRACO [7] SDDR [2] and AMPHION [11] These systems require some type of formal specification to build an application generator. DRACO ....
J. Graig Cleaveland. Building application generators. IEEE Software, July 1988.
.... tools [18] At the rst thought, a feasible solution to the maintenance problem is to predict the typical modi cation requests that are expected to arise, and then design the language so that such requests are expressible in the language itself and do not lead to modi cations in the compiler [10, 33]. However, this is easier said than done. And trying to design the language so that it can accommodate possible future modi cations might unnecessarily complicate the present form of the language, rather than keeping it small and compact, and thereby defeat the goals of using a DSL. To accommodate ....
J. C. Cleaveland. Building application generators. IEEE Software, pages 25-33, 1988.
.... are both well recognized approaches [3] They represent a flexible form of reuse that not only allows the reuse of the implementations of abstract functional units, as in the component based approaches, but also allows the reuse of how these functional units are combined to form a complete system [5]. The only limitation in the amount of design knowledge that can be reused by an application generator is the ability to express that knowledge as an algorithm. Furthermore, application generators allow this knowledge to be reused by non programmers because the domain specific language can provide ....
....or replacing existing operations. This model has been successfully applied to the construction of several small, but interesting interpreters. 7 Related Work One approach to the design of application generators is the use of templates such as that found in [9] The approach taken in STAGE [5] is to use a metalanguage which, based on the micro program, generates various code fragments. These techniques provide a lower level view than techniques like DRACO [7] SDDR [2] and AMPHION [11] These systems require some type of formal specification to build an application generator. DRACO ....
J. Graig Cleaveland. Building application generators. IEEE Software, July 1988.
....Programming Expertise Needed Since software robots automatically invoke algorithms and data structures, the software developer can concentrate on what the system should do rather than how it is done. That is, most software robots clearly separate the system specification from its implementation [Cle88]. The input language of a software robot has usually a more declarative nature, stating what instead of how . At this level of abstraction, it is possible for even non programmers familiar with the concepts in an application domain to create software systems [HKN85] Reuse of Knowledge If the ....
....can be found [EW94] Etz95] Was95] HK93] Moreover, these references do not always exactly cover the notions as they are used in this paper. Apart from compiler technology, two other fields are strongly related to textual oriented software robots. These are application generators [HKN85] [Cle88], Kru92] and domain specific languages [LR94] HC89] War94] KB95] Tul94] Both fields are also aiming at automating software tasks but only by using high level textual input languages. If the input language of a software robot is of a highly graphical nature, we enter the area of visual ....
Cleaveland, J.C., Building Application Generators, IEEE Software, July 1988, 1988.
....to be retrieved and which layout has to be produced. In Sect. 2 we describe instance of a report generator for a bibliographic data base that is used as a running example in this paper. The term application generator was initially coined in [3] for the problem domain of data base tools. Cleaveland [1] generalizes the principle of application generators, points out their relationship to compilers, and describes tools to construct them. In [7] application generators are discussed as one of several principles for software reuse. The input for an application generator can be considered as a ....
....are affected by the description. The specification of type analysis for binary operators in expression then reduces to the following specification: SYMBOL BinOpr INHERITS BinTgtOpr, ChkOpr END; RULE: Expr : Expr BinOpr Expr COMPUTE BinOpr.LType = Expr[2] Type; BinOpr.RType = Expr[3] Type; Expr[1].Type = BinOpr.ResType; END; The operand types are passed by attributes (LType, RType) to the BinOpr symbol. The computations for overloading resolution are obtained from the module and inherited to BinOpr. They use the above specified operator properties, and yield the result type of the ....
Cleaveland, J. C., "Building Application Generators", IEEE Software 5 (July 1988), 25--33.
....(ii) the memory allocation algorithm, and (iii) the ordering algorithm [149] Let there be no mistake, no application generator available today can build a corporate information system. However, big chunks of such systems (e.g. report generators) can be generated using application generators [34]. January 2, Software Reuse Page 13 r e It is fair to say that as we go down Table 2, the focus shifts from components to composition, and the language fo xpressing compositions moves up in terms of abstraction. This corresponds closely to Simos s reuse lifecycle , which n a prescribes an ....
....that a relevant item to the search is retrieved by the system. The recall of a retrieval system is the statistical average over a sample of representative searches queries. January 2, Software Reuse Page 25 o w systems that need to be developed and maintained within that domain (see e.g. [34, 89]) The second question has to d ith the extent of application development that should be automated. Levy argued that deciding the coverage of the genf a erator should be based on rational economic decisions, namely, on the marginal costs of automating an extra e percent o pplications, relative to ....
[Article contains additional citation context not shown here]
Craig T. Cleaveland, "Building Application Generators," IEEE Software, pp. 25-33, July 1988.
....specific software architecture (DSSA) or an application framework [16, 79] The role of a component within the framework may also form part of the domain taxonomy and be used in classification and retrieval. For mature architectures and product families, one can build an application generator [22]. This is reuse by generation, where the components or system are generated automatically from a description of the desired solution. The description of the solution may use a script language, such as a fourth generation language (4GL) for relational databases, or a visual metaphor as in graphical ....
....can simply be included in a large contract. The invariant clauses of a contract with sub contracts are formed from the union of the corresponding statements from the sub contracts. 4. 3 Application Generators For mature architectures and product families, one can build an application generator [22]. This is reuse by generation, where the components or system are generated automatically from a description of the desired solution. The description of the solution may use a script language, such as a fourth generation language (4GL) for relational databases, or a visual metaphor as in graphical ....
J. Craig Cleaveland, Building application generators, IEEE Software 5 (July 1988) 25--33.
....designs have not been frozen yet. It holds also for the implementation of technical special purpose (programming) languages, which is often performed by specialists from the field, and which will usually have just comparatively small groups of potential users, not justifying ambitious efforts. [3, 7, 10, 16] This is becoming more important as one can observe a growing insight that computing machinery should be controlled preferably in terms of application domains (not those of programming) thus becoming a certain specialised task machine (cf. 15] The Depot4 meta language Ml4 is an extension of ....
Cleaveland, J.C. Building Application Generators. IEEE Software 5, 4 (1988), 25-33.
.... major efforts are underway to establish operational domain specific asset libraries (e.g. ASSET [Ass92] and CARDS [Cen92] There has been other important work focusing on reuse automation, as well, ranging from application generation technology to reuse based software environments (e.g. Cle88, Bai89, Sca92] In addition, there have been a number of recent advances in disciplines that are not generally recognized as being reuse oriented, but that focus on many of the same goals as reuse and are beginning to influence reuse practice, particularly from a management perspective. Among ....
J.C. Cleaveland. Building Application Generators. IEEE Software, 5(4):25--33, July 1988.
....are true for all members of the family and variations among members. This process should be performed by both domain experts and software engineers. Though actual uses of DSLs record benefits such as productivity, reliability and flexibility [20] implementing DSLs is often difficult and costly [9]. There are two kinds of approaches to language implementation, each with significant disadvantages. Approaches that are based on compilers, such as application generators (translation from the DSL to a GPL) are not easy to write or to extend, and extensions require skills in compiler technology ....
....machine. 2.2 Abstract Machine Design The analysis phase identifies key objects of the domain and program family, as well as basic operations on those objects. These operations are used to define an abstract machine, which offers a model of computation that underlies all programs in the family [9]. Other operations are also included so that it is possible to construct any program in the family from those operations. The use of abstract machines is a natural progression from established reuse practices. Starting from the idea of highly parameterized subroutines in a reuse library [6] one ....
J. Graig Cleaveland. Building application generators. IEEE Software, July 1988.
No context found.
J. C. Cleaveland. Building application generators. IEEE Software,pages 25--33, July 1988.
No context found.
J. C. Cleaveland, "Building application generators," IEEE Software, Vol. 5, No. 4, pp. 25-33, July 1988.
No context found.
C. Cleaveland, "Building Application Generators", IEEE Software, July, 1988.
No context found.
Cleaveland, J. C. Building Application Generators, IEEE Software 4(9) pp. 25-33, July 1988.
No context found.
Cleaveland, J. Craig (1988), `Building application generators', IEEE Software 5(4), 25--33.
No context found.
J. C. Cleaveland, "Building Application Generators," IEEE Software, Vol. 5, No. 5, July 1988, pp. 25--33.
No context found.
Cleaveland, J. Craig, Building Application Generators, IEEE Software, pp. 25-33, 1988
First 50 documents
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC