Results 1 - 10
of
15
Accurate Binding-Time Analysis For Imperative Languages: Flow, Context, and Return Sensitivity
"... Since a binding-time analysis determines how an off-line partial evaluator will specialize a program, the accuracy of the binding-time information directly determines the degree of specialization. We have designed and implemented a binding-time analysis for an imperative language, and integrated it ..."
Abstract
-
Cited by 37 (4 self)
- Add to MetaCart
Since a binding-time analysis determines how an off-line partial evaluator will specialize a program, the accuracy of the binding-time information directly determines the degree of specialization. We have designed and implemented a binding-time analysis for an imperative language, and integrated it into our partial evaluator for C, called Tempo [11]. This binding-time analysis includes a number of new features, not available in any existing partial evaluator for an imperative language, which are critical when specializing existing programs such as operating system components [27,28]. ffl Flow sensitivity. A different binding-time description is computed for each program point, allowing the same variable to be considered static at one program point and dynamic at another. ffl Context sensitivity. Each function call is analyzed with the context of the call site, generating multiple binding-time annotated instances of the same function definition. ffl Return sensitivity. A different bi...
Notable design patterns for domain-specific languages
, 2001
"... The realisation of domain-specific languages (DSL DSLs) differs in fundamental ways from that of traditional programming languages. We describe eight recurring patterns that we have identified as being used for DSL design and implementation. Existing languages can be extended, restricted, partially ..."
Abstract
-
Cited by 36 (5 self)
- Add to MetaCart
The realisation of domain-specific languages (DSL DSLs) differs in fundamental ways from that of traditional programming languages. We describe eight recurring patterns that we have identified as being used for DSL design and implementation. Existing languages can be extended, restricted, partially used, or become hosts for DSLs. DSL Simple DSLs DSL can be implemented by lexical processing. In addition, DSLs DSL can be used to create front-ends to existing systems or to express complicated data structures. Finally, DSLs DSL can be combined using process pipelines. The patterns described form a pattern language that can be used as a building block for a systematic
A Framework of Application Generator Design
, 1996
"... Application generators have been demonstrated as a successful approach to achieving software reuse and typically yields higher productivity gains than methods such as component-based reuse. Despite their advantages, industrial software developers are reluctant to adopt these methods due to the lack ..."
Abstract
-
Cited by 20 (10 self)
- Add to MetaCart
Application generators have been demonstrated as a successful approach to achieving software reuse and typically yields higher productivity gains than methods such as component-based reuse. Despite their advantages, industrial software developers are reluctant to adopt these methods due to the lack of tools for constructing generators. This paper presents a framework for the development of application generators. This framework provides a structured design approach and automatic tools for design. The framework consists of a two level design process: The first level is the identification of operations that expresses the fundamental computations of the application domain. The second level is the design of a domain-specific language which allows one to express variations within a family of applications. The domain-specific language is implemented in terms of the operations defined by the first level. We show that the uniform application of partial evaluation enables automatic applicati...
Substitution: A formal methods case study using monads and transformations
, 1994
"... The specification and derivation of substitution for the de Bruijn representation of - terms is used to illustrate programming with a function-sequence monad. The resulting program is improved by interactive program transformation methods into an efficient implementation that uses primitive machine ..."
Abstract
-
Cited by 17 (3 self)
- Add to MetaCart
The specification and derivation of substitution for the de Bruijn representation of - terms is used to illustrate programming with a function-sequence monad. The resulting program is improved by interactive program transformation methods into an efficient implementation that uses primitive machine arithmetic. These transformations illustrate new techniques that assist the discovery of the arithmetic structure of the solution. Introduction Substitution is one of many problems in computer science that, once understood in one context, is understood in all contexts. Why, then, must a different substitution function be written for every abstract syntax implemented? This paper shows how to define substitution once and use the monadic structure of the definition to instantiate it on different abstract syntax structures. It also shows how to interactively derive an efficient implementation of substitution from this very abstract definition. The authors are supported in part by a grant fr...
The Information Furnace: Consolidated Home Control
- Personal and Ubiquitous Computing
, 2003
"... The Information Furnace is a basement-installed PC-type device that integrates existing consumer home-control, infotainment, security, and communication technologies to transparently provide accessible and value-added services. A modern home contains a large number of sophisticated devices and te ..."
Abstract
-
Cited by 11 (0 self)
- Add to MetaCart
The Information Furnace is a basement-installed PC-type device that integrates existing consumer home-control, infotainment, security, and communication technologies to transparently provide accessible and value-added services. A modern home contains a large number of sophisticated devices and technologies. Access to these devices is currently provided through a wide variety of disparate interfaces.
Software Design Automation: Language Design in the Context of Domain Engineering
, 1997
"... Domain-specific languages improve the productivity of application engineers by raising the level at which they define domain instances. However, more support for designing and implementing these languages in practice is needed. The Software Design Automation (SDA) method is a specific approach for d ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
Domain-specific languages improve the productivity of application engineers by raising the level at which they define domain instances. However, more support for designing and implementing these languages in practice is needed. The Software Design Automation (SDA) method is a specific approach for doing domain-specific language design and implementation based on a principled, semantics-based approach to language definition and implementation. This paper articulates SDA as a software development method to be used in the context of existing domain engineering methods. 1. Introduction Throughout the history of computing, domain-specific languages (DSLs) have codified knowledge and increased the productivity of software developers. Significant DSLs include the Formula-Translator (FORTRAN), yet another compiler compiler (yacc), spread sheet languages, and hyper-text markup languages. Traditionally, DSLs have been created opportunistically by visionary experts. Also, techniques for designi...
Using Domain Specific Languages to Instantiate Object-Oriented Frameworks
- IEE PROCEEDINGS – SOFTWARE ENGINEERING
, 1998
"... Prior research has shown that high levels of software reuse can be achieved through the use of objectoriented frameworks. An object-oriented framework captures the common aspects of a family of applications, and thus, allows the designers and implementers to reuse this experience at the design and c ..."
Abstract
-
Cited by 5 (2 self)
- Add to MetaCart
Prior research has shown that high levels of software reuse can be achieved through the use of objectoriented frameworks. An object-oriented framework captures the common aspects of a family of applications, and thus, allows the designers and implementers to reuse this experience at the design and code levels. Despite of being a powerful design solution, frameworks are not always easy to use. This paper describes a technique that uses domain specific languages (DSL) to describe the framework variation points and therefore syntactically assure the creation of valid framework instances. This approach allows framework users to develop applications without worrying about the framework implementation and remaining focused on the problem domain. In addition, the use of DSLs allow for better error handling, when compared to the standard approach of adapting frameworks by directly adding subclasses. The DSL programs are translated to the framework instantiation code using a transformational system. The approach is illustrated through two real-world frameworks.
Reliable Software Implementation Using Domain-Specific Languages
- Proceedings ESREL ’99 — The Tenth European Conference on Safety and Reliability
, 1999
"... : We describe the use of domain-specific languages for expressing critical design values and constraints in a civil engineering CAD software application. Through the use of these specialised languages information that is critical to the correct operation of the software can be expressed in a form th ..."
Abstract
-
Cited by 5 (3 self)
- Add to MetaCart
: We describe the use of domain-specific languages for expressing critical design values and constraints in a civil engineering CAD software application. Through the use of these specialised languages information that is critical to the correct operation of the software can be expressed in a form that can be easily drafted, verified, and maintained by domain experts (civil engineers) thus minimising the risk inherent from the mediation of software engineers. Although domain-specific languages can offer increased expressiveness, runtime efficiency, and reliability at a modest implementation cost, system architects should take into account the issues of training costs, tool support, and software process integration. In G. I. Schueller and P. Kafka, editors, Proceedings ESREL '99 --- The Tenth European Conference on Safety and Reliability, pages 627--631, MunichGarching, Germany, September 1999. ESRA, VDI, TUM, A. A. Balkema. This is a machine-readable rendering of a working paper draft...
Formal Language Design in the Context of Domain Engineering
- WIK + 96] James R. Wilson, David M. Dikel (Principal Investigator), David Kane, Dr. Marcia Carlyn, Carol Terry, Elizabeth Cavanaugh (EDS), and
, 1998
"... Domain specific languages are one approach for achieving reuse in a domain. Instead of creating systems from scratch in a general purpose language, a domain specific language is used, which provides high level domain specific abstractions, for specifying domain instances. Thus reducing production ti ..."
Abstract
-
Cited by 3 (0 self)
- Add to MetaCart
Domain specific languages are one approach for achieving reuse in a domain. Instead of creating systems from scratch in a general purpose language, a domain specific language is used, which provides high level domain specific abstractions, for specifying domain instances. Thus reducing production time and cost and potentially increasing quality
The Information Furnace: User-friendly Home Control
- In Proceedings of the 3rd International System Administration and Networking Conference SANE 2002
, 2002
"... The Information Furnace is a basement-installed PC-type device that integrates existing consumer home-control, infotainment, security, and communication technologies to transparently provide user-friendly access and value-added services. ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
The Information Furnace is a basement-installed PC-type device that integrates existing consumer home-control, infotainment, security, and communication technologies to transparently provide user-friendly access and value-added services.

