Results 1 - 10
of
39
Type inheritance in strongly typed genetic programming
- Advances in Genetic Programming 2, chapter 18
, 1996
"... Genetic Programming (GP)isanautomatic method for generating computer programs, which are stored as data structures and manipulated to evolve better programs. An extension restricting the search space is Strongly Typed Genetic Programming (STGP), which has, as a basic premise, the removal of closure ..."
Abstract
-
Cited by 45 (9 self)
- Add to MetaCart
Genetic Programming (GP)isanautomatic method for generating computer programs, which are stored as data structures and manipulated to evolve better programs. An extension restricting the search space is Strongly Typed Genetic Programming (STGP), which has, as a basic premise, the removal of closure by typing boththe arguments and return values of functions, and by also typing the terminal set. A restriction of STGP is that there are only two levels of typing. We extend STGP by allowing atype hierarchy, which allows more than two levels of typing. 1
Polymorphic Bytecode: Compositional Compilation for Java-like Languages
- In ACM Symp. on Principles of Programming Languages 2005
, 2005
"... We define compositional compilation as the ability to typecheck source code fragments in isolation, generate corresponding binaries, and link together fragments whose mutual assumptions are satisfied, without reinspecting the code. Even though compositional compilation is a highly desirable feature, ..."
Abstract
-
Cited by 37 (16 self)
- Add to MetaCart
We define compositional compilation as the ability to typecheck source code fragments in isolation, generate corresponding binaries, and link together fragments whose mutual assumptions are satisfied, without reinspecting the code. Even though compositional compilation is a highly desirable feature, in Java-like languages it can hardly be achieved. This is due to the fact that the bytecode generated for a fragment (say, a class) is not uniquely determined by its source code, but also depends on the compilation context.
Information Extraction for Run-time Formal Analysis
, 2001
"... The significance of software systems has rapidly increased. The assurance of software systems has become a critical requirement of the information age. Formal verification on the design of a system and testing on a system implementation with a variety of inputs has been used for this purpose. Howeve ..."
Abstract
-
Cited by 10 (6 self)
- Add to MetaCart
The significance of software systems has rapidly increased. The assurance of software systems has become a critical requirement of the information age. Formal verification on the design of a system and testing on a system implementation with a variety of inputs has been used for this purpose. However, verifying a design can not guarantee the correctness of an implementation. Although testing is performed on implementation, it does not give formal guarantees because it is not possible to test exhaustively. Run-time formal analysis is proposed to combat the weaknesses of formal verification and testing. Run-time formal analysis aims to assure the correctness of the current execution at run-time. Run-time formal analysis is performed based on a formal specification of system requirements. This dissertation proposes a framework for run-time formal analysis. We investigate general issues for the framework. We show that a set of the properties run-time formal analysis can detect is a subset...
Flexible exception handling in process support systems
, 1998
"... Exceptions are one of the most pervasive problems in process support systems. In installations expected to handle a large number of processes, having exceptions is bound to be a normal occurrence. Any programming tool intended for large, complex applications has to face this problem. However, curren ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
Exceptions are one of the most pervasive problems in process support systems. In installations expected to handle a large number of processes, having exceptions is bound to be a normal occurrence. Any programming tool intended for large, complex applications has to face this problem. However, current process support systems, despite their orientation towards complex, distributed, and heterogeneous applications, provide almost no support for exception handling. This paper shows how exible mechanisms for failure handling are incorporated into the OPERA process support system using a combination of programming language concepts and transaction processing techniques. The resulting mechanisms allow the construction of fault-tolerant work ow processes in a transparent and exible way while ensuring reusability ofwork ow components. 1
Pattern-Based Tool Support for Frameworks: Towards Architecture-Oriented Software Development Environment
, 2005
"... Software engineering aims at techniques for producing better software products with less resources. A central concept for achieving this goal is a product line architecture. Frameworks are a popular object-oriented way to implement product line architectures. However, frameworks are often difficult ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
Software engineering aims at techniques for producing better software products with less resources. A central concept for achieving this goal is a product line architecture. Frameworks are a popular object-oriented way to implement product line architectures. However, frameworks are often difficult to learn and their specializations consist of small and crosscutting logical entities that overlap with other design solutions of the software product. Implementation becomes fragmented, difficult to trace, and the original reasoning of the design is easily forgotten. Thus, the essential problems to be solved are the following: • How to teach the software developer to understand different frameworks and design principles in the context of her software product? • How to guide the software developer to use frameworks and product line architectures? • How to maintain and document implemented design solutions and framework specializations? In this
Language Design and Implementation by Selection
- WDSL'97 1st ACM Workshop on Domain-Specific Languages
"... This paper demonstrates that design and implementation of languages for a specific domain can be done on a very high level of abstraction: elements and properties of a language are composed mainly by simple yes/no decisions. Consistency and completeness of the decisions are automatically checked. An ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
This paper demonstrates that design and implementation of languages for a specific domain can be done on a very high level of abstraction: elements and properties of a language are composed mainly by simple yes/no decisions. Consistency and completeness of the decisions are automatically checked. An implementation of the chosen language is obtained by selecting combinable specification components according to the user decisions and then feeding them into the language implementation system Eli. This approach is especially useful for designers of domain specific languages who usually have to deal with languages that have to be revised quite frequently and who normally do not have deep knowledge in the field of languages design and implementation. 1 Introduction When studying a programming language or a language for a specific application domain one soon recognizes whether it is well designed, e.g. program objects and their properties are well chosen, they fit well to the operations defi...
A Flexible Framework for Dynamic and Static Slicing of Logic Programs
- In Proc. of the First Int’l Workshop on Practical Aspects of Declarative Languages (PADL’99
, 1999
"... . Slicing is a technique for automatically obtaining subparts of a program with a collective meaning. When the slicing takes into account the actual execution of the program, it is said to be dynamic; when only statically available information is used, it is said to be static. In this paper we d ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
. Slicing is a technique for automatically obtaining subparts of a program with a collective meaning. When the slicing takes into account the actual execution of the program, it is said to be dynamic; when only statically available information is used, it is said to be static. In this paper we describe a flexible framework to slice logic programs that accommodates both dynamic and static approaches naturally. Our framework addresses practical aspects of logic programs such as different executions, system predicates and side-effects and can be customized to any logic language, provided we have its (concrete or abstract) interpreter and information on the behavior of system predicates. Keywords. Logic program slicing, program analysis & understanding. 1 Introduction Slicing is a technique for obtaining subparts of a program with a collective meaning. It was originally proposed by Weiser [35, 36], in the context of procedural languages. When we slice a program, we are interest...
Interactive Knowledge Elicitation For Application Dependent Feature Evaluation Supported By Conditional Attributed Rewriting Systems
- Numero Special, Actes de MICAD '95, V
, 1994
"... SUMMARY: According to the general design theory, a design process is a cyclic activity that transfers the model of the design object from the design specification to the design solution. During this activity experts in different phases of the production process (e.g. design, manufacturing, handling, ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
SUMMARY: According to the general design theory, a design process is a cyclic activity that transfers the model of the design object from the design specification to the design solution. During this activity experts in different phases of the production process (e.g. design, manufacturing, handling, etc.) cooperate to propose, evaluate and adapt, in a stepwise manner, the model to the working environment requirements. This cooperative methodology is general in that it was proved in different fields from aerospatial, to electronic, to mechanical. However each implementation is highly application-dependent. Our approach implements the general design approach allowing the design and implementation of specific support systems, and provides tools to customize the systems with rules and strategies depending on the specific design application. In this work we stress the interaction aspects which allow users to elicit their knowledge and to customize their own design system. The customization is based on the definition of the features that are significant for the specific field. Features for different fields are represented in terms of rewriting rules of a particular kind of conditional attribute rewriting system (CARW). The central components of a prototype implementation, of the proposed interactive system, are introduced and discussed together with examples of interactive rule definitions.
PL-Detective: A System for Teaching Programming Language Concepts
- In 35rd ACM Technical Symposium on Computer Science Education (SIGCSE
, 2004
"... The educational literature recognizes that people go through a number of stages in their intellectual development. During the first stage, called received knowledge or dualism, people expect knowledge to be handed to them by authority figures (thus "received") and think in terms of black and white ( ..."
Abstract
-
Cited by 3 (2 self)
- Add to MetaCart
The educational literature recognizes that people go through a number of stages in their intellectual development. During the first stage, called received knowledge or dualism, people expect knowledge to be handed to them by authority figures (thus "received") and think in terms of black and white (thus "dualism"). Our experience indicates that many computer science students are at this first stage of learning. To help students move beyond this stage, we describe a system and strategy, the PL-Detective, to be used in a "concepts of programming languages" course. Assignments using this system directly confront students with the notion that there are often multiple equally good answers and that discussion with students (rather than asking the instructor) is an effective way of learning how to reason.

