Results 1 - 10
of
48
Concurrent Programming in ERLANG
, 1993
"... Syntax Notation One (ASN.1), Recommendation X.208, Geneva, Switzerland. [13] CCITT Specification of Basic Encoding Rules (BER for Abstract Syntax One (ASN.1), Recommendation X.209, Geneva, Switzerland. [14] Gray, Jim and Reuter, Andreas Transaction Processing Concepts and Techniques, Morgan Kaufmann ..."
Abstract
-
Cited by 87 (0 self)
- Add to MetaCart
Syntax Notation One (ASN.1), Recommendation X.208, Geneva, Switzerland. [13] CCITT Specification of Basic Encoding Rules (BER for Abstract Syntax One (ASN.1), Recommendation X.209, Geneva, Switzerland. [14] Gray, Jim and Reuter, Andreas Transaction Processing Concepts and Techniques, Morgan Kaufmann Publishers, 1993. 143 144 Bibliography ...
Weaving executability into object-oriented meta-languages
- in: International Conference on Model Driven Engineering Languages and Systems (MoDELS), LNCS 3713 (2005
, 2005
"... Abstract. Nowadays, object-oriented meta-languages such as MOF (Meta-Object Facility) are increasingly used to specify domain-specific languages in the model-driven engineering community. However, these meta-languages focus on structural specifications and have no built-in support for specifications ..."
Abstract
-
Cited by 73 (29 self)
- Add to MetaCart
Abstract. Nowadays, object-oriented meta-languages such as MOF (Meta-Object Facility) are increasingly used to specify domain-specific languages in the model-driven engineering community. However, these meta-languages focus on structural specifications and have no built-in support for specifications of operational semantics. In this paper we explore the idea of using aspectoriented modeling to add precise action specifications with static type checking and genericity at the meta level, and examine related issues and possible solutions. We believe that such a combination would bring significant benefits to the community, such as the specification, simulation and testing of operational semantics of metamodels. We present requirements for such statically-typed meta-languages and rationales for the aforementioned benefits. 1
Optimistic parallelism requires abstractions
- In PLDI
, 2007
"... Irregular applications, which manipulate large, pointer-based data structures like graphs, are difficult to parallelize manually. Automatic tools and techniques such as restructuring compilers and runtime speculative execution have failed to uncover much parallelism in these applications, in spite o ..."
Abstract
-
Cited by 65 (8 self)
- Add to MetaCart
Irregular applications, which manipulate large, pointer-based data structures like graphs, are difficult to parallelize manually. Automatic tools and techniques such as restructuring compilers and runtime speculative execution have failed to uncover much parallelism in these applications, in spite of a lot of effort by the research community. These difficulties have even led some researchers to wonder if there is any coarse-grain parallelism worth exploiting in irregular applications. In this paper, we describe two real-world irregular applications: a Delaunay mesh refinement application and a graphics application that performs agglomerative clustering. By studying the algorithms and data structures used in these applications, we show that there is substantial coarse-grain, data parallelism in these applications, but that this parallelism is very dependent on the input data and therefore cannot be uncovered by compiler analysis. In principle, optimistic techniques such as thread-level speculation can be used to uncover this parallelism, but we argue that current implementations cannot accomplish this because they do not use the proper abstractions for the data structures in these programs. These insights have informed our design of the Galois system, an object-based optimistic parallelization system for irregular applications. There are three main aspects to Galois: (1) a small number of syntactic constructs for packaging optimistic parallelism as iteration over ordered and unordered sets, (2) assertions about methods in class libraries, and (3) a runtime scheme for detecting and recovering from potentially unsafe accesses to shared memory made by an optimistic computation. We show that Delaunay mesh generation and agglomerative clustering can be parallelized in a straight-forward way using the Galois approach, and we present experimental measurements to show that this approach is practical. These results suggest that Galois is a practical approach to exploiting data parallelism in irregular programs.
Linear invariant generation using non-linear constraint solving
- IN COMPUTER AIDED VERIFICATION
, 2003
"... We present a new method for the generation of linear invariants which reduces the problem to a non-linear constraint solving problem. Our method, based on Farkas' Lemma, synthesizes linear invariants by extracting non-linear constraints on the coefficients of a target invariant from a program. These ..."
Abstract
-
Cited by 48 (8 self)
- Add to MetaCart
We present a new method for the generation of linear invariants which reduces the problem to a non-linear constraint solving problem. Our method, based on Farkas' Lemma, synthesizes linear invariants by extracting non-linear constraints on the coefficients of a target invariant from a program. These constraints guarantee that the linear invariant is inductive. We then apply existing techniques, including specialized quantifier elimination methods over the reals, to solve these non-linear constraints. Our method has the advantage of being complete for inductive invariants. To our knowledge, this is the first sound and complete technique for generating inductive invariants of this form. We illustrate the practicality of our method on several examples, including cases in which traditional methods based on abstract interpretation with widening fail to generate sufficiently strong invariants.
Specification Directed Module Testing
- IEEE Transactions on Software Engineering
, 1986
"... Abstract — If a program is developed from a specification in a mathematically rigorous manner, work done in the development can be utilized in the testing of the program. We can apply the better understanding afforded by these methods to provide a more thorough check on the correct operation of the ..."
Abstract
-
Cited by 26 (0 self)
- Add to MetaCart
Abstract — If a program is developed from a specification in a mathematically rigorous manner, work done in the development can be utilized in the testing of the program. We can apply the better understanding afforded by these methods to provide a more thorough check on the correct operation of the program under test. This should lead to earlier detection of faults (making it easier to determine their causes), more useful debugging information, and a greater confidence in the correctness of the final product. Overall, a more systematic approach should expedite the task of the program tester, and improve software reliability. The testing techniques described in this paper apply to testing of abstract data types (modules, packages). The techniques utilize information generated during refinement of a data type, such as the data type invariant and the relationship between the specification and implementation states; this information is used to specify parts of the code to be written for testing. The techniques are illustrated by application to the implementation of a symbol table as an ordered list and as a height-balanced tree. Index Terms — Abstract data types, data type invariant, modules, module testing, packages, pre- and postconditions, retrieval function, software reliability, specification language—Z.
Demeter: A CASE study of software growth through parameterized classes
- the 10th International Conference on Software Engineering
, 1988
"... Copyright c○1988 Karl Lieberherr The Demeter T M system is a CASE (Computer-Aided Software Engineering) tool designed for the development of large software projects using a new software design methodology which focuses on growing rather than building software. We describe the software development pr ..."
Abstract
-
Cited by 24 (17 self)
- Add to MetaCart
Copyright c○1988 Karl Lieberherr The Demeter T M system is a CASE (Computer-Aided Software Engineering) tool designed for the development of large software projects using a new software design methodology which focuses on growing rather than building software. We describe the software development process as one of growth and evolution as opposed to building and rebuilding because most complex objects in the real world are grown and not built. Since software design is obviously a complex process this new paradigm may be helpful in unraveling some of the problems associated with current software design practices. Demeter begins by providing an ideal environment for the sprouting and nuturing of a seed (class dictionary) into a plant (large scale software project). In addition, through the combined use of object-oriented programming technology, and parameterized classes, Demeter provides a facility for the reuse of software which was developed in previous software projects. A short form of this paper was published in [LR88].
Sorting Morphisms
- 3rd International Summer School on Advanced Functional Programming, volume 1608 of LNCS
, 1998
"... . Sorting algorithms can be classified in many different ways. The way presented here is by expressing the algorithms as functional programs and to classify them by means of their recursion patterns. These patterns on their turn can be classified as the natural recursion patterns that destruct or co ..."
Abstract
-
Cited by 23 (0 self)
- Add to MetaCart
. Sorting algorithms can be classified in many different ways. The way presented here is by expressing the algorithms as functional programs and to classify them by means of their recursion patterns. These patterns on their turn can be classified as the natural recursion patterns that destruct or construct a given data-type, the so called cata- and anamorphisms respectively. We show that the selection of the recursion pattern can be seen as the major design decision, in most cases leaving no more room for more decisions in the design of the sorting algorithm. It is also shown that the use of alternative data structures may lead to new sorting algorithms. This presentation also serves as a gentle, light-weight, introduction into the various morphisms. 1 Introduction In this paper we present several well known sorting algorithms, namely insertion sort, straight selection sort, bubble sort, quick sort, heap sort and merge sort (see e.g. [Knu73, Wir76]) in a non-standard way. We express...
Experience with the SETL optimizer
- ACM Transactions on Programming Languages and Systems
, 1983
"... The structure of an existing optimizer for the very high-level, set theoretically oriented programming language SETL is described, and its capabilities are illustrated. The use of novel techniques (supported by state-of-the-art interprocedural program analysis methods) enables the optimizer to accom ..."
Abstract
-
Cited by 22 (0 self)
- Add to MetaCart
The structure of an existing optimizer for the very high-level, set theoretically oriented programming language SETL is described, and its capabilities are illustrated. The use of novel techniques (supported by state-of-the-art interprocedural program analysis methods) enables the optimizer to accomplish various sophisticated optimizations, the most significant of which are the automatic selection of data representations and the systematic elimination of superfluous copying operations. These techniques allow quite sophisticated data-structure choices to be made automatically. Categories and Subject Descriptors: D.3.2 [Programmiug Languages]: Language Classifications--very high-level languages; SETL; D.3.4 [Programming Languages]: Processors--compUers; opti-mization; 1.2.2 [Artificial Intelligence]: Automatic Programming--automatic analysis of algo-rithms; program modification; program transformation
Transforming Set Data Types to Power Optimal Data Structures
- IEEE Transactions on Computer-aided Design
, 1996
"... In this paper we present a novel approach to model the search space for the custom implementation of set data types, a data type that is commonly found in important application domains such as network component realisations and database applications. The main objective is to arrive at power efficien ..."
Abstract
-
Cited by 22 (6 self)
- Add to MetaCart
In this paper we present a novel approach to model the search space for the custom implementation of set data types, a data type that is commonly found in important application domains such as network component realisations and database applications. The main objective is to arrive at power efficient realisations of these data types in custom data structures, but the model can also be used with non-power cost functions. Based on the model, we propose an efficient optimisation method for finding the implementation with minimum power consumption without performing an exhaustive scan of the search space. The range of power costs for different solutions can easily span 4 orders of magnitude, so a near optimal solution is crucial. This work also strongly contributes to our overall goal of a higher level of specification and shorter design cycles for table-based memory organisations for applications where these data types are frequently used. The proposed model and methodology are suited for...
Selection Predicate Indexing for Active Databases Using Interval Skip Lists
- INFORMATION SYSTEMS
, 1996
"... A new, efficient selection predicate indexing scheme for active database systems is introduced. The selection predicate index proposed uses an interval index on an attribute of a relation or object collection when one or more rule condition clauses are defined on that attribute. The selection pre ..."
Abstract
-
Cited by 21 (4 self)
- Add to MetaCart
A new, efficient selection predicate indexing scheme for active database systems is introduced. The selection predicate index proposed uses an interval index on an attribute of a relation or object collection when one or more rule condition clauses are defined on that attribute. The selection predicate index uses a new type of interval index called the interval skip list (IS-list). The IS-list is designed to allow efficient retrieval of all intervals that overlap a point, while allowing dynamic insertion and deletion of intervals. IS-list algorithms are described in detail. The IS-list allows efficient on-line searches, insertions, and deletions, yet is much simpler to implement than other comparable interval index data structures such as the priority search tree and balanced interval binary search tree (IBS-tree). IS-lists require only one third as much code to implement as balanced IBS-trees. The combination of simplicity, performance, and dynamic updateability of the IS-li...

