Results 1 - 10
of
33
Links: web programming without tiers
- In FMCO 2006, volume 4709 of LNCS
, 2007
"... Abstract. Links is a programming language for web applications that generates code for all three tiers of a web application from a single source, compiling into JavaScript to run on the client and into SQL to run on the database. Links supports rich clients running in what has been dubbed ‘Ajax ’ st ..."
Abstract
-
Cited by 48 (3 self)
- Add to MetaCart
Abstract. Links is a programming language for web applications that generates code for all three tiers of a web application from a single source, compiling into JavaScript to run on the client and into SQL to run on the database. Links supports rich clients running in what has been dubbed ‘Ajax ’ style, and supports concurrent processes with statically-typed message passing. Links is scalable in the sense that session state is preserved in the client rather than the server, in contrast to other approaches such as Java Servlets or PLT Scheme. Client-side concurrency in JavaScript and transfer of computation between client and server are both supported by translation into continuation-passing style. 1
Temporal Concurrent Constraint Programming: Denotation, Logic and Applications
, 2002
"... The tcc model is a formalism for reactive concurrent constraint programming. We present a model of temporal concurrent constraint programming which adds to tcc the capability of modeling asynchronous and non-deterministic timed behavior. We call this tcc extension the ntcc calculus. We also give a d ..."
Abstract
-
Cited by 44 (18 self)
- Add to MetaCart
The tcc model is a formalism for reactive concurrent constraint programming. We present a model of temporal concurrent constraint programming which adds to tcc the capability of modeling asynchronous and non-deterministic timed behavior. We call this tcc extension the ntcc calculus. We also give a denotational semantics for the strongest-postcondition of ntcc processes and, based on this semantics, we develop a proof system for linear-temporal properties of these processes. The expressiveness of ntcc is illustrated by modeling cells, timed systems such as RCX controllers, multi-agent systems such as the Predator /Prey game, and musical applications such as generation of rhythms patterns and controlled improvisation. 1
Arrows, Robots, and Functional Reactive Programming
- Advanced Functional Programming, 4th International School, volume 2638 of LNCS
, 2002
"... Functional reactive programming, or FRP, is a paradigm for programming hybrid systems -- i.e., systems containing a combination of both continuous and discrete components -- in a high-level, declarative way. The key ideas in FRP are its notions of continuous, time-varying values, and time-ordere ..."
Abstract
-
Cited by 41 (9 self)
- Add to MetaCart
Functional reactive programming, or FRP, is a paradigm for programming hybrid systems -- i.e., systems containing a combination of both continuous and discrete components -- in a high-level, declarative way. The key ideas in FRP are its notions of continuous, time-varying values, and time-ordered sequences of discrete events.
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
Higher-Order Acausal Models
, 2008
"... Current equation-based object-oriented (EOO) languages typically contain a number of fairly complex language constructs for enabling reuse of models. However, support for model transformation is still often limited to scripting solutions provided by tool implementations. In this paper we investigate ..."
Abstract
-
Cited by 8 (2 self)
- Add to MetaCart
Current equation-based object-oriented (EOO) languages typically contain a number of fairly complex language constructs for enabling reuse of models. However, support for model transformation is still often limited to scripting solutions provided by tool implementations. In this paper we investigate the possibility of combining the well known concept of higher-order functions, used in standard functional programming languages, with acausal models. This concept, called Higher-Order Acausal Models (HOAMs), simplifies the creation of reusable model libraries and model transformations within the modeling language itself. These transformations include general model composition and recursion operations and do not require data representation/reification of models as in metaprogramming/metamodeling. Examples within the electrical and mechanical domain are given using a small research language. However, the language concept is not limited to a particular language, and could in the future be incorporated into existing commercially available EOO-languages.
Safe Functional Reactive Programming through Dependent Types
"... Functional Reactive Programming (FRP) is an approach to reactive programming where systems are structured as networks of functions operating on signals. FRP is based on the synchronous dataflow paradigm and supports both continuous-time and discrete-time signals (hybrid systems). What sets FRP apart ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
Functional Reactive Programming (FRP) is an approach to reactive programming where systems are structured as networks of functions operating on signals. FRP is based on the synchronous dataflow paradigm and supports both continuous-time and discrete-time signals (hybrid systems). What sets FRP apart from most other languages for similar applications is its support for systems with dynamic structure and for higher-order reactive constructs. Statically guaranteeing correctness properties of programs is an attractive proposition. This is true in particular for typical application domains for reactive programming such as embedded systems. To that end, many existing reactive languages have type systems or other static checks that guarantee domain-specific properties, such as feedback loops always being well-formed. However, they are limited in their capabilities to support dynamism and higher-order data-flow compared with FRP. Thus, the onus of ensuring such properties of FRP programs has so far been on the programmer as established static techniques do not suffice. In this paper, we show how dependent types allow this concern to be addressed. We present an implementation of FRP embedded in the dependently-typed language Agda, leveraging the type system of the host language to craft a domain-specific (dependent) type system for FRP. The implementation constitutes a discrete, operational semantics of FRP, and as it passes the Agda type, coverage, and termination checks, we know the operational semantics is total, which means our type system is safe. Categories and Subject Descriptors D.3.2 [Programming Languages]: Language Classifications—applicative (functional) languages, data-flow languages, specialized application languages General Terms Languages Keywords dependent types, domain-specific languages, DSELs, FRP, functional programming, reactive programming, synchronous data-flow
Lowering: A static optimization technique for transparent functional reactivity
- In ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation
, 2007
"... functional programming with dataflow evaluation, making it possible to write interactive programs in a declarative style. An frp language creates a dynamic graph of data dependencies and reacts to changes by propagating updates through the graph. In a transparent frp language, the primitive operator ..."
Abstract
-
Cited by 6 (1 self)
- Add to MetaCart
functional programming with dataflow evaluation, making it possible to write interactive programs in a declarative style. An frp language creates a dynamic graph of data dependencies and reacts to changes by propagating updates through the graph. In a transparent frp language, the primitive operators are implicitly lifted, so they construct graph nodes when they are applied to time-varying values. This model has some attractive properties, but it tends to produce a large graph that is costly to maintain. In this paper, we develop a transformation we call lowering, which improves performance by reducing the size of the graph. We present a static analysis that guides the sound application of this optimization, and we present benchmark results that demonstrate dramatic improvements in both speed and memory usage for real programs.
A Comparative Review of Robot Programming Languages
, 2001
"... In this paper, we make a comparative review of a variety of "intermediate-level" robot languages that have emerged in recent years. We also describe a robot programming language called FROB (for Functional ROBotics). FROB is an example of an embedded, domain-specific language, hosted by the Haske ..."
Abstract
-
Cited by 4 (1 self)
- Add to MetaCart
In this paper, we make a comparative review of a variety of "intermediate-level" robot languages that have emerged in recent years. We also describe a robot programming language called FROB (for Functional ROBotics). FROB is an example of an embedded, domain-specific language, hosted by the Haskell programming language.
Embedding a functional hybrid modelling language in Haskell
- In Refereed Proceedings of the 20th International Symposium on the Implementation and Application of Functional Languages (IFL ’08), University of Hertfordshire
, 2008
"... Abstract. In this paper we present the first investigation into the implementation of a Functional Hybrid Modelling language for non-causal modelling and simulation of physical systems. In particular, we present a simple way to handle connect constructs: a facility for composing model fragments pres ..."
Abstract
-
Cited by 4 (3 self)
- Add to MetaCart
Abstract. In this paper we present the first investigation into the implementation of a Functional Hybrid Modelling language for non-causal modelling and simulation of physical systems. In particular, we present a simple way to handle connect constructs: a facility for composing model fragments present in some form in most non-causal modelling languages. Our implementation is realised as a domain-specific language embedded in Haskell. The method of embedding employs quasiquoting, thus demonstrating the effectiveness of this approach for languages that are not suitable for embedding in more traditional ways. Our implementation is available on-line, and thus the first publicly available prototype implementation of a Functional Hybrid Modelling language. 1
System Modeling and Design Refinement in ForSyDe
, 2003
"... Advances in microelectronics allow the integration of more and more functionality on a single chip. Emerging system-on-a-chip architectures include a large amount of heterogeneous components and are of increasing complexity. Applications using these architectures require many low-level details in or ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
Advances in microelectronics allow the integration of more and more functionality on a single chip. Emerging system-on-a-chip architectures include a large amount of heterogeneous components and are of increasing complexity. Applications using these architectures require many low-level details in order to yield an efficient implementation. On the other hand constant time-to-market pressure on electronic systems demands a short design process that allows to model a system at a high abstraction level, not taking low-level implementation details into account. Clearly there is a significant abstraction gap between an ideal model for specification and another one for implementation. This abstraction gap has to be addressed by methodologies for electronic system design. This thesis presents the ForSyDe (Formal System Design) methodology, which has been developed with the objective to move system design to a higher level of abstraction and to bridge the abstraction gap by transformational design refinement. ForSyDe is based on carefully selected formal foundations. The initial

