Results 11 - 20
of
47
Embedding dynamic dataflow in a call-by-value language
- In European Symposium on Programming
, 2006
"... Abstract. This paper describes FrTime, an extension of Scheme designed for writing interactive applications. Inspired by functional reactive programming, the language embeds dynamic dataflow within a call-by-value functional language. The essence of the embedding is to make program expressions evalu ..."
Abstract
-
Cited by 27 (4 self)
- Add to MetaCart
Abstract. This paper describes FrTime, an extension of Scheme designed for writing interactive applications. Inspired by functional reactive programming, the language embeds dynamic dataflow within a call-by-value functional language. The essence of the embedding is to make program expressions evaluate to nodes in a dataflow graph. This strategy eases importation of legacy code and permits incremental program construction. We have integrated FrTime with the DrScheme programming environment and have used it to develop several novel applications. We describe FrTime’s design and implementation in detail and present a formal semantics of its evaluation model. 1
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.
Composing Pervasive Data Using iQL
- In Proceedings of the Fourth IEEE Workshop on Mobile Computing Systems and Applications
, 2002
"... The emergence of pervasive networked data sources, such as web services, sensors, and mobile devices, enables context-sensitive, mobile applications. We have developed a programming model for writing such applications, in which entities called composers accept data from one or more sources, and act ..."
Abstract
-
Cited by 21 (2 self)
- Add to MetaCart
The emergence of pervasive networked data sources, such as web services, sensors, and mobile devices, enables context-sensitive, mobile applications. We have developed a programming model for writing such applications, in which entities called composers accept data from one or more sources, and act as sources of higher-level data. We have defined and implemented a nonprocedural language, iQL, specifying the behavior of composers. An iQL programmer expresses requirements for data sources rather than identifying specific sources; a runtime system discovers appropriate data sources, binds to them, and rebinds when properties of data sources change. The language has powerful operators useful in composition,
Subtext: Uncovering the Simplicity of Programming
- IN OOPSLA ’05: PROCEEDINGS OF THE 20TH ANNUAL ACM SIGPLAN CONFERENCE ON OBJECT ORIENTED PROGRAMMING, SYSTEMS, LANGUAGES, AND APPLICATIONS
, 2005
"... Representing programs as text strings makes programming harder then it has to be. The source text of a program is far removed from its behavior. Bridging this conceptual gulf is what makes programming so inhumanly difficult -- we are not compilers. Subtext is a new medium in which the representation ..."
Abstract
-
Cited by 20 (2 self)
- Add to MetaCart
Representing programs as text strings makes programming harder then it has to be. The source text of a program is far removed from its behavior. Bridging this conceptual gulf is what makes programming so inhumanly difficult -- we are not compilers. Subtext is a new medium in which the representation of a program is the same thing as its execution. Like a spreadsheet, a program is visible and alive, constantly executing even as it is edited. Program edits are coherent semantic transformations. The essence of
Memory Management for Dataflow Programming of Multirate Signal Processing Algorithms
- IEEE TRANSACTIONS ON SIGNAL PROCESSING
, 1994
"... Managing the buffering of data along arcs is a critical part of compiling a synchronous dataflow (SDF) program. This paper shows how dataflow properties can be analyzed at compile-time to make buffering more efficient. Since the target code corresponding to each node of an SDF graph is normally obta ..."
Abstract
-
Cited by 17 (4 self)
- Add to MetaCart
Managing the buffering of data along arcs is a critical part of compiling a synchronous dataflow (SDF) program. This paper shows how dataflow properties can be analyzed at compile-time to make buffering more efficient. Since the target code corresponding to each node of an SDF graph is normally obtained from a hand-optimized library of predefined blocks, the efficiency of data transfer between blocks is often the limiting factor in how closely an SDF compiler can approximate meticulous manual coding. Furthermore, in the presence of large sample-rate changes, straightforward buffering techniques can quickly exhaust limited on-chip data memory, necessitating the use of slower external memory. The techniques presented in this paper address both of these problems in a unified manner.
Models of Computation and Languages for Embedded System Design
, 2005
"... We review Models of Computation (MoC) and organize them with respect to the time abstraction they use. We distinguish between continuous time, discrete time, synchronous and untimed MoCs. System level models serve a variety of objectives with partially contradicting requirements. Consequently we arg ..."
Abstract
-
Cited by 16 (0 self)
- Add to MetaCart
We review Models of Computation (MoC) and organize them with respect to the time abstraction they use. We distinguish between continuous time, discrete time, synchronous and untimed MoCs. System level models serve a variety of objectives with partially contradicting requirements. Consequently we argue that different MoCs are necessary for the various tasks and phases in the design of an embedded system. Moreover, different MoCs have to be integrated to provide a coherent system modeling and analysis environment. We discuss the relation between some popular languages and the reviewed MoCs to find that a given MoC is offered by many languages and a single language can support multiple MoCs. We contend that it is of importance for the quality of tools and overall design productivity, which abstraction levels and which primitive operators are provided in a language. However, we also observe that there are various flexible ways to do this, e.g. by way of heterogeneous frameworks, coordination languages and embedding of different MoCs in the same language.
Problems Of Computing On The Web
, 1997
"... We discuss the concept of computing on the Web. We show that the heterogeneous and dynamic nature of the Web makes it impossible to define a fixed set of operating system functions, usable for all services. Rather, we propose that generalized software configuration techniques, based on a demand-driv ..."
Abstract
-
Cited by 13 (5 self)
- Add to MetaCart
We discuss the concept of computing on the Web. We show that the heterogeneous and dynamic nature of the Web makes it impossible to define a fixed set of operating system functions, usable for all services. Rather, we propose that generalized software configuration techniques, based on a demand-driven technique called eduction, can be used to define versions of a Web Operating System (WOS) that can be built in an incremental manner. We illustrate this problem by examining the question of load balancing.
First-order functional languages and intensional logic
- Journal of Functional Programming
, 1997
"... In this paper we demonstrate that a broad class of higher-order functional programs can be transformed into semantically equivalent multidimensional intensional programs that contain only nullary variable definitions. The proposed algorithm systematically eliminates user-defined functions from the s ..."
Abstract
-
Cited by 13 (9 self)
- Add to MetaCart
In this paper we demonstrate that a broad class of higher-order functional programs can be transformed into semantically equivalent multidimensional intensional programs that contain only nullary variable definitions. The proposed algorithm systematically eliminates user-defined functions from the source program, by appropriately introducing context manipulation (i.e. intensional) operators. The transformation takes place in M steps, where M is the order of the initial functional program. During each step the order of the program is reduced by one, and the final outcome of the algorithm is an M-dimensional intensional program of order zero. As the resulting intensional code can be executed in a purely tagged-dataflow way, the proposed approach offers a promising new technique for the implementation of higher-order functional languages. 1
Realtime Signal Processing -- Dataflow, Visual, and Functional Programming
, 1995
"... This thesis presents and justifies a framework for programming real-time signal processing systems. The framework extends the existing "block-diagram" programming model; it has three components: a very high-level textual language, a visual language, and the dataflow process network model of computat ..."
Abstract
-
Cited by 13 (1 self)
- Add to MetaCart
This thesis presents and justifies a framework for programming real-time signal processing systems. The framework extends the existing "block-diagram" programming model; it has three components: a very high-level textual language, a visual language, and the dataflow process network model of computation. The dataflow process network model, although widely-used, lacks a formal description, and I provide a semantics for it. The formal work leads into a new form of actor. Having established the semantics of dataflow processes, the functional language Haskell is layered above this model, providing powerful features---notably polymorphism, higher-order functions, and algebraic program transformation---absent in block-diagram systems. A visual equivalent notation for Haskell, Visual Haskell, ensures that this power does not exclude the "intuitive" appeal of visual interfaces; with some intelligent layout and suggestive icons, a Visual Haskell program can be made to look very like a block dia...
Arrows and computation
- The Fun of Programming
, 2003
"... With this machinery, we can give a common structure to programs based on different notions of computation. The generality of arrows tends to force one into a point-free style, which is useful for proving general properties. However it is not to everyone's taste, and can be awkward for programming sp ..."
Abstract
-
Cited by 12 (0 self)
- Add to MetaCart
With this machinery, we can give a common structure to programs based on different notions of computation. The generality of arrows tends to force one into a point-free style, which is useful for proving general properties. However it is not to everyone's taste, and can be awkward for programming specific instances. The solution is a point-wise notation for arrows, which is automatically translated to the functional language Haskell. Each notion of computation thus defines a special sublanguage of Haskell. 1 Notions of computation We shall explore what we mean by a notion of computation using four varied examples. As a point of comparison, we shall consider how the following operator on functions may be generalized to the various types of `function-like ' components.

