Results 1 - 10
of
25
Specifying Open GIS with Functional Languages
- in Advances in Spatial Databases
, 1995
"... The concept of Open GIS depends on precise definitions of data, operations and interfaces. This paper argues for the use of functional programming languages as specification and prototyping tools for Open GIS components. It shows how functional programming languages fulfill the key requirements for ..."
Abstract
-
Cited by 23 (8 self)
- Add to MetaCart
The concept of Open GIS depends on precise definitions of data, operations and interfaces. This paper argues for the use of functional programming languages as specification and prototyping tools for Open GIS components. It shows how functional programming languages fulfill the key requirements for formal specification languages and allow for rapid prototyping in addition. So far, it has never been possible to integrate specification and prototyping in a single, easy to use environment. Most existing specification methods lack appropriate tools for checking and prototyping, while existing tools lack either sound semantics or usability or both. The paper discusses the role of specifications in GIS, requirements for specification languages, and a survey of algebraic specifications as well as of functional languages. It then describes how functional languages can be used for writing and executing algebraic specifications. A brief example of a GIS data type specification in a functional la...
Fault Tolerance in Parallel Implementations of Functional Languages
- IN PROCEEDINGS OF THE 21ST SYMPOSIUM ON FAULT TOLERANT COMPUTING
, 1991
"... Computing models for functional language programs not only facilitate automatic exploitation of inherent parallelism, but they also provide for implicit tolerance to hardware faults through temporal and spatial redundancy. In this paper, we argue that faulttolerance can be achieved more efficiently ..."
Abstract
-
Cited by 18 (0 self)
- Add to MetaCart
Computing models for functional language programs not only facilitate automatic exploitation of inherent parallelism, but they also provide for implicit tolerance to hardware faults through temporal and spatial redundancy. In this paper, we argue that faulttolerance can be achieved more efficiently by using intensional computing models (eduction) rather than extensional computing models (reduction). While intensional computing models can be implemented by using either data-driven execution or demand-driven execution, we show that the latter is naturally suited.
ParC - An Extension of C for Shared Memory Parallel Processing
"... this paper we describe the features and semantics of ParC. The rest of this section explains the motivation for designing a new language, the eect of the motivating forces on the design, and the structure of the software environment that surrounds it. The next section describes the parallel construc ..."
Abstract
-
Cited by 15 (11 self)
- Add to MetaCart
this paper we describe the features and semantics of ParC. The rest of this section explains the motivation for designing a new language, the eect of the motivating forces on the design, and the structure of the software environment that surrounds it. The next section describes the parallel constructs and scoping rules. The exact semantics of parallel constructs when there are more activities than processors have been widely neglected in the literature. We discuss this issue and provide guidelines for acceptable implementations. We then describe the innovative instructions for forced termination, which are based on analogies with C instructions that break out of a construct, followed by a discussion of synchronization mechanisms. A discussion of the programming methodology of ParC is then given and is followed by a discussion of our experiences with ParC . A comparison of ParC with other parallel programming languages is delayed until the end of the paper, after we have described all of its features
Graph Algorithms = Iteration + Data Structures? - The Structure of Graph Algorithms and a Corresponding Style of Programming
- of Programming, 18th Int. Workshop on Graph-Theoretic Concepts in Computer Science, LNCS 657
, 1992
"... We encourage a specific view of graph algorithms, which can be paraphrased by "iterate over the graph elements in a specific order and perform computations in each step". Data structures will be used to define the processing order, and we will introduce recursive mapping/array definitions as a vehic ..."
Abstract
-
Cited by 10 (5 self)
- Add to MetaCart
We encourage a specific view of graph algorithms, which can be paraphrased by "iterate over the graph elements in a specific order and perform computations in each step". Data structures will be used to define the processing order, and we will introduce recursive mapping/array definitions as a vehicle for specifying the desired computations. Being concerned with the problem of implementing graph algorithms, we outline the extension of a functional programming language by graph types and operations. In particular, we explicate an exploration operator that essentially embodies the proposed view of algorithms. Fortunately, the resulting specifications of algorithms, in addition to being compact and declarative, are expected to have an almost as efficient implementation as their imperative counterparts. 1 Introduction Looking at graph algorithms, we observe that many of them have a very similar structure, namely iterating over nodes or edges and thereby performing computations. Since grap...
Implementing Haskell: Language Implementation as a Tool Building Exercise
- Structured Programming
, 1993
"... Although a number of tool boxes for compiler construction exist, the language implementation task can often be made easier by building specialised tools. A prototype Haskell system was implemented within a four month period using such an approach. The system is currently used as a front end for a ..."
Abstract
-
Cited by 8 (2 self)
- Add to MetaCart
Although a number of tool boxes for compiler construction exist, the language implementation task can often be made easier by building specialised tools. A prototype Haskell system was implemented within a four month period using such an approach. The system is currently used as a front end for a transputer array, Haskell implementation. In this article we describe the tool building aspect of the implementation process. The little language tools, tree processing function generators and error message management routines developed are described. Although the tools are specific to this implementation, this mode of work can be worthwhile in a number of cases such as the implementation of novel languages, the targeting of unconventional architectures or, the experimentation with new implementation techniques. The lessons learned during this process are summarised and the specialised tool approach is evaluated. 1 Introduction A great number of tools [19] and many complete tool boxe...
Booster: A High-Level Language for Portable Parallel Algorithms
, 1991
"... this paper, the language Booster is described. Booster is a high-level, fourth generation, parallel programming language. The language has been designed to program parallel algorithms for a wide variety of target parallel architectures. Booster has a strong separation of concerns, featuring amongst ..."
Abstract
-
Cited by 6 (5 self)
- Add to MetaCart
this paper, the language Booster is described. Booster is a high-level, fourth generation, parallel programming language. The language has been designed to program parallel algorithms for a wide variety of target parallel architectures. Booster has a strong separation of concerns, featuring amongst others a clear separation of algorithm description and algorithm decomposition and-representation. Programs written in Booster are translated to imperative languages, such as FORTRAN or C, and can be easily integrated in large applications. Parallelism can be obtained by applying data and/or code decomposition. Once algorithm and decomposition are described the transformation is done automatically
A New Algorithm for Linear Regular Tree Pattern Matching
- Theoretical Computer Science
, 1998
"... ..."
An Integrated Framework For High-Level Synthesis Of Self-Timed Circuits
, 1992
"... Asynchronous/self-timed designs are beginning to attract attention as promising means of dealing with the complexity of modern VLSI technology. They are characterized by absence of global clocking and concurrency limited only by the data and control dependencies. They offer the advantages of simpler ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
Asynchronous/self-timed designs are beginning to attract attention as promising means of dealing with the complexity of modern VLSI technology. They are characterized by absence of global clocking and concurrency limited only by the data and control dependencies. They offer the advantages of simpler timing, the absence of clock distribution related problems, composability, opportunities for incremental improvement, and robustness. This dissertation addresses the issues underlying automating specification-driven design of self-timed circuits. An integrated collection of tools called the hopCP Design Environment is developed that facilitates the specification, simulation, analysis, and performance-directed synthesis of self-timed circuits. hopCP is a process-oriented concurrent HDL for the specification of asynchronous systems. It is equipped with constructs for specifying communication, synchronization and concurrency explicitly. It supports multicast communication, a restricted form ...
A high level visual language for spatial data management
- Management, in Visual '99
, 1999
"... In this paper, we present a visual language dedicated to spatial data called Lvis. This language has been defined as an extension of the Cigales visual language based on the Query-By-Example principle. The language is based on predefined icons modelling spatial objects and operators which are used t ..."
Abstract
-
Cited by 5 (0 self)
- Add to MetaCart
In this paper, we present a visual language dedicated to spatial data called Lvis. This language has been defined as an extension of the Cigales visual language based on the Query-By-Example principle. The language is based on predefined icons modelling spatial objects and operators which are used to build a visual query. The visual query is then translated into the host language of any Geographic Information System (GIS). A major problem of such a language is that visual queries are generally ambiguous because of multiple interpretation of the visual representation. We first present a brief state of the art of languages dedicated to GIS and then formally define our visual language. The global architecture of the system is described. We then focus on visual ambiguities and propose a model of detection and resolution of these ambiguities.

