Results 1 - 10
of
26
A Stream Compiler for Communication-Exposed Architectures
- In Proceedings of the 10th International Conference on Architectural Support for Programming Languages and Operating Systems
, 2002
"... With the increasing miniaturization of transistors, wire delays are becoming a dominant factor in microprocessor performance. To address this issue, a number of emerging architectures contain replicated processing units with software-exposed communication between one unit and another (e.g., Raw, iWa ..."
Abstract
-
Cited by 61 (16 self)
- Add to MetaCart
With the increasing miniaturization of transistors, wire delays are becoming a dominant factor in microprocessor performance. To address this issue, a number of emerging architectures contain replicated processing units with software-exposed communication between one unit and another (e.g., Raw, iWarp, SmartMemories). However, for their use to be widespread, it will be necessary to develop compiler technology that enables a portable, high-level language to execute efficiently across a range of wireexposed architectures.
A Hardware Implementation of Pure Esterel
- ACADEMY PROCEEDINGS IN ENGINEERING SCIENCES, INDIAN ACADEMY OF SCIENCES, SADHANA
, 1991
"... Esterel is a synchronous concurrent programming language dedicated to reactive systems (controllers, protocols, man-machine interfaces, etc.). Esterel has an efficient standard software implementation based on well-defined mathematical semantics. We present a new hardware implementation of the pure ..."
Abstract
-
Cited by 54 (3 self)
- Add to MetaCart
Esterel is a synchronous concurrent programming language dedicated to reactive systems (controllers, protocols, man-machine interfaces, etc.). Esterel has an efficient standard software implementation based on well-defined mathematical semantics. We present a new hardware implementation of the pure synchronization subset of the language. Each program generates a specific circuit that responds to any input in one clock cycle. When the source program satisfies some statically checkable dynamic properties, the circuit is shown to be semantically equivalent to the source program. The hardware translation has been effectively implemented on the programmable active memory Perle0 developed by J. Vuillemin and his group at Digital Equipment.
An embedded modeling language approach to interactive 3D and multimedia animation
- IEEE Transactions on Software Engineering
, 1999
"... While interactive multimedia animation is a very compelling medium, few people are able to express themselves in it. There are too many low-level details that have to do not with the desired content—e.g., shapes, appearance and behavior—but rather how to get a computer to present the content. For in ..."
Abstract
-
Cited by 25 (5 self)
- Add to MetaCart
While interactive multimedia animation is a very compelling medium, few people are able to express themselves in it. There are too many low-level details that have to do not with the desired content—e.g., shapes, appearance and behavior—but rather how to get a computer to present the content. For instance, behaviors like motion and growth are generally gradual, continuous phenomena. Moreover, many such behaviors go on simultaneously. Computers, on the other hand, cannot directly accommodate either of these basic properties, because they do their work in discrete steps rather than continuously, and they only do one thing at a time. Graphics programmers have to spend much of their effort bridging the gap between what an animation is and how to present it on a computer. We propose that this situation can be improved by a change of language, and present Fran, synthesized by complementing an existing declarative host language, Haskell, with an embedded domain-specific vocabulary for modeled animation. As demonstrated in a collection of examples, the resulting animation descriptions are not only relatively easy to write, but also highly composable.
Optimizing stream programs using linear state space analysis
- In CASES
, 2005
"... Digital Signal Processing (DSP) is becoming increasingly widespread in portable devices. Due to harsh constraints on power, latency, and throughput in embedded environments, developers often appeal to signal processing experts to handoptimize algorithmic aspects of the application. However, such DSP ..."
Abstract
-
Cited by 12 (6 self)
- Add to MetaCart
Digital Signal Processing (DSP) is becoming increasingly widespread in portable devices. Due to harsh constraints on power, latency, and throughput in embedded environments, developers often appeal to signal processing experts to handoptimize algorithmic aspects of the application. However, such DSP optimizations are tedious, error-prone, and expensive, as they require sophisticated domain-specific knowledge. We present a general model for automatically representing and optimizing a large class of signal processing applications. The model is based on linear state space systems. A program is viewed as a set of filters, each of which has an input stream, an output stream, and a set of internal states. At each time step, the filter produces some outputs that are a linear combination of the inputs and the state values; the state values are also updated in a linear fashion. Examples of linear state space filters include IIR filters and linear difference equations. Using the state space representation, we describe a novel set of program transformations, including combination of adjacent filters, elimination of redundant states and reduction of the number of system parameters. We have implemented the optimizations in the StreamIt compiler and demonstrate improved generality over previous techniques. Categories and Subject Descriptors D.3.4 [Programming Languages]: Processors—Optimization; compilers; code generation; D.2.2 [Software Engineering]: Software Architectures—Domain-specific architectures;
MPEG-2 Decoding in a Stream Programming Language
- In IPDPS, Rhodes Island
, 2006
"... Image and video codecs are prevalent in multimedia devices, ranging from embedded systems, to desktop computers, to high-end servers such as HDTV editing consoles. It is not uncommon however that developers create and customize separate coder and decoder implementations for each of the architectures ..."
Abstract
-
Cited by 10 (3 self)
- Add to MetaCart
Image and video codecs are prevalent in multimedia devices, ranging from embedded systems, to desktop computers, to high-end servers such as HDTV editing consoles. It is not uncommon however that developers create and customize separate coder and decoder implementations for each of the architectures they target. This practice is time consuming and error prone, leading to code that is neither malleable nor portable. This paper describes an implementation of the MPEG-2 decoder using the StreamIt programming language. StreamIt is an architecture-independent stream language that aims to improve programmer productivity, while concomitantly exposing the inherent parallelism and communication topology of the application. The paper shows that MPEG is a good match for the streaming programming model and illustrates the malleability of the implementation using a simple modification to the decoder to support alternate color compression formats. StreamIt allows for modular application development, which increases code reuse, and reduces the complexity of the debugging process since stream components can be verified independently. This in turn leads to greater programmer productivity. 1.
A Declarative Approach to Event-Handling in Visual Programming Languages
- In Proc. 1993 IEEE Symposium Visual Languages
, 1992
"... In this paper, we address the question of event-handling for declarative visual languages. In the approach presented, system-level, interactive, and user-defined events are fully-supported, while still maintaining the property of referential transparency. An approach to time termed temporal assignm ..."
Abstract
-
Cited by 9 (4 self)
- Add to MetaCart
In this paper, we address the question of event-handling for declarative visual languages. In the approach presented, system-level, interactive, and user-defined events are fully-supported, while still maintaining the property of referential transparency. An approach to time termed temporal assignment provides a unifying mechanism for events to be defined as ordinary sequences of values, and conversely for ordinary sequences of values to be defined as events. This allows event-handling without additional concepts, and in particular provides a natural means for the user to define higher-level events of any kind. 1. Introduction Declarative programming languages effectively utilize visual programming techniques because declarative programming languages focus on the relationships between data as opposed to control flow, and these relationships tend to be inherently multi-dimensional. Yet, declarative programming languages have weaknesses in other areas which limit their usefulness for v...
Clock Analysis of Synchronous Dataflow Programs
- In Proc. of ACM Symposium on Partial Evaluation and Semantics-Based Program Manipulation
, 1995
"... Synchronous dataflow languages such as Lustre and Signal have been proposed as a tool for programming reactive systems. These languages rely on a clock analysis to ensure that synchronous operations receive their arguments at the same time. We present a denotational model of a Lustre-like dataflow ..."
Abstract
-
Cited by 8 (2 self)
- Add to MetaCart
Synchronous dataflow languages such as Lustre and Signal have been proposed as a tool for programming reactive systems. These languages rely on a clock analysis to ensure that synchronous operations receive their arguments at the same time. We present a denotational model of a Lustre-like dataflow language and show how a range of clock analyses for this language can be designed and proved correct. To the best of our knowledge this is the first formal correctness proof for such an analysis. We then give a type system formulation of this analysis using clocks as types and show how adding polymorphic clocks enables us to treat programs where clocks vary according to their context. The relationship to the clock analysis by constraint solving used in the language Signal is discussed. 1 Introduction One of the earliest models of concurrent computation is Kahn's networks of processes [Kah74, KM77]. Such a network consists of a set of deterministic processes, or agents, communicating in an ...
Low-Level Programming in Hume: an Exploration of the HW-Hume Level
- IFL 2006: INTL SYMPOSIUM ON IMPLEMENTATIONS AND APPLICATIONS OF FUNCTIONAL LANGUAGES
, 2007
"... This paper describes the HW-Hume level of the novel Hume language. HW-Hume is the simplest subset of Hume that we have identified. It provides strong formal properties but posseses limited abstraction capabilities. In this paper, we introduce HW-Hume, show some simple example programs, describe an e ..."
Abstract
-
Cited by 7 (7 self)
- Add to MetaCart
This paper describes the HW-Hume level of the novel Hume language. HW-Hume is the simplest subset of Hume that we have identified. It provides strong formal properties but posseses limited abstraction capabilities. In this paper, we introduce HW-Hume, show some simple example programs, describe an eÆcient software implementation, and demonstrate how important properties can be exposed as part of an integrated formally-based verification approach.
Exploiting Purely Functional Programming to Obtain Bounded Resource Behaviour: the Hume Approach
- In Central European Summer School on Functional Programming
, 2005
"... Abstract. This chapter describes Hume: a functionally-based language for programming with bounded resource usage, including time and space properties. The purpose of the Hume language design is to explore the expressibility/costability spectrum in resource-constrained systems, such as real-time embe ..."
Abstract
-
Cited by 6 (5 self)
- Add to MetaCart
Abstract. This chapter describes Hume: a functionally-based language for programming with bounded resource usage, including time and space properties. The purpose of the Hume language design is to explore the expressibility/costability spectrum in resource-constrained systems, such as real-time embedded or control systems. It is unusual in being based on a combination of λ-calculus and finite state machine notions, rather than the more usual propositional logic, or flat finite-state-machine models. The use of a strict, purely functional programming notation allows the construction of a strong cost model for expressions, which can then be embedded into a simple cost model for processes. In this chapter, we introduce Hume, describe the Hume Abstract Machine implementation, and show how a high-level cost model can be constructed that relates costs from the abstract machine to Hume source programs. We illustrate our approach with an example adapted from the literature: a simple vending machine controller. 1

