LUCID, the dataflow programming language
LUCID, the dataflow programming language
LUSTRE: a declarative language for real-time programming
POPL '87 Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Separating application code from toolkits: eliminating the spaghetti of call-backs
UIST '91 Proceedings of the 4th annual ACM symposium on User interface software and technology
No assembly required: compiling standard ML to C
ACM Letters on Programming Languages and Systems (LOPLAS)
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
The Amulet Environment: New Models for Effective User Interface Software Development
IEEE Transactions on Software Engineering
The Programming Language Aspects of ThingLab, a Constraint-Oriented Simulation Laboratory
ACM Transactions on Programming Languages and Systems (TOPLAS)
Functional reactive programming, continued
Proceedings of the 2002 ACM SIGPLAN workshop on Haskell
Integrating Constraints with an Object-Oriented Language
ECOOP '92 Proceedings of the European Conference on Object-Oriented Programming
Cooperative Task Management Without Manual Stack Management
ATEC '02 Proceedings of the General Track of the annual conference on USENIX Annual Technical Conference
StreamIt: A Language for Streaming Applications
CC '02 Proceedings of the 11th International Conference on Compiler Construction
Verifying Interactive Web Programs
Proceedings of the 19th IEEE international conference on Automated software engineering
Combinators for bidirectional tree transformations: A linguistic approach to the view-update problem
ACM Transactions on Programming Languages and Systems (TOPLAS) - Special issue on POPL 2005
Lowering: a static optimization technique for transparent functional reactivity
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
The parallel computing landscape: a Berkeley view
ISLPED '07 Proceedings of the 2007 international symposium on Low power electronics and design
Monitoring streams: a new class of data management applications
VLDB '02 Proceedings of the 28th international conference on Very Large Data Bases
Relationally-parametric polymorphic contracts
Proceedings of the 2007 symposium on Dynamic languages
MapJAX: data structure abstractions for asynchronous web applications
ATC'07 2007 USENIX Annual Technical Conference on Proceedings of the USENIX Annual Technical Conference
Using static analysis for Ajax intrusion detection
Proceedings of the 18th international conference on World wide web
Integrating dataflow evaluation into a practical higher-order call-by-value language
Integrating dataflow evaluation into a practical higher-order call-by-value language
Directing JavaScript with arrows
DLS '09 Proceedings of the 5th symposium on Dynamic languages
Links: web programming without tiers
FMCO'06 Proceedings of the 5th international conference on Formal methods for components and objects
HotPar'09 Proceedings of the First USENIX conference on Hot topics in parallelism
Crossing state lines: adapting object-oriented frameworks to functional reactive languages
FLOPS'06 Proceedings of the 8th international conference on Functional and Logic Programming
Embedding dynamic dataflow in a call-by-value language
ESOP'06 Proceedings of the 15th European conference on Programming Languages and Systems
Directing JavaScript with arrows
DLS '09 Proceedings of the 5th symposium on Dynamic languages
AspectScript: expressive aspects for the web
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Collecting hollywood's garbage: avoiding space-leaks in composite events
Proceedings of the 2010 international symposium on Memory management
Frenetic: a high-level language for OpenFlow networks
Proceedings of the Workshop on Programmable Routers for Extensible Services of Tomorrow
EScala: modular event-driven object interactions in scala
Proceedings of the tenth international conference on Aspect-oriented software development
Frenetic: a network programming language
Proceedings of the 16th ACM SIGPLAN international conference on Functional programming
Reactive imperative programming with dataflow constraints
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Declaratively programming the mobile web with Mobl
Proceedings of the 2011 ACM international conference on Object oriented programming systems languages and applications
Composing reactive GUIs in F# using WebSharper
IFL'10 Proceedings of the 22nd international conference on Implementation and application of functional languages
SMLtoJs: hosting a standard ML compiler in a web browser
Proceedings of the 1st ACM SIGPLAN international workshop on Programming language and systems technologies for internet clients
Hiphop: a synchronous reactive extension for hop
Proceedings of the 1st ACM SIGPLAN international workshop on Programming language and systems technologies for internet clients
Object-relational event middleware for web applications
Proceedings of the 2011 Conference of the Center for Advanced Studies on Collaborative Research
S: a scripting language for high-performance RESTful web services
Proceedings of the 17th ACM SIGPLAN symposium on Principles and Practice of Parallel Programming
Race detection for web applications
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Asynchronous active values for client-side interactive service coordination
Proceedings of the International Working Conference on Advanced Visual Interfaces
A multi-tier semantics for Hop
Higher-Order and Symbolic Computation
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
ConstraintJS: programming interactive behaviors for the web by integrating constraints and states
Proceedings of the 25th annual ACM symposium on User interface software and technology
Socio-PLT: principles for programming language adoption
Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software
Interruptible context-dependent executions: a fresh look at programming context-aware applications
Proceedings of the ACM international symposium on New ideas, new paradigms, and reflections on programming and software
The CloudBrowser web application framework
Proceedings of the 3rd annual conference on Systems, programming, and applications: software for humanity
A decentralized approach for programming interactive applications with JavaScript and blockly
Proceedings of the 2nd edition on Programming systems, languages and applications based on actors, agents, and decentralized control abstractions
Causality for free!: parametricity implies causality for functional reactive programs
PLPV '13 Proceedings of the 7th workshop on Programming languages meets program verification
Reactive behavior in object-oriented applications: an analysis and a research roadmap
Proceedings of the 12th annual international conference on Aspect-oriented software development
Method slots: supporting methods, events, and advices by a single language construct
Proceedings of the 12th annual international conference on Aspect-oriented software development
Asynchronous functional reactive programming for GUIs
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Green streams for data-intensive software
Proceedings of the 2013 International Conference on Software Engineering
An evaluation of reactive programming and promises for structuring collaborative web applications
Proceedings of the 7th Workshop on Dynamic Languages and Applications
Towards a tight integration of a functional web client language into Scala
Proceedings of the 4th Workshop on Scala
Functional reactive programming with liveness guarantees
Proceedings of the 18th ACM SIGPLAN international conference on Functional programming
A survey on reactive programming
ACM Computing Surveys (CSUR)
Monadic functional reactive programming
Proceedings of the 2013 ACM SIGPLAN symposium on Haskell
Whalesong: running racket in the browser
Proceedings of the 9th symposium on Dynamic languages
Model-based, event-driven programming paradigm for interactive web applications
Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software
KScript and KSWorld: a time-aware and mostly declarative language and interactive GUI framework
Proceedings of the 2013 ACM international symposium on New ideas, new paradigms, and reflections on programming & software
Enabling modularity and re-use in dynamic program analysis tools for the java virtual machine
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Higher-Order reactive programming with incremental lists
ECOOP'13 Proceedings of the 27th European conference on Object-Oriented Programming
Hi-index | 0.00 |
This paper presents Flapjax, a language designed for contemporary Web applications. These applications communicate with servers and have rich, interactive interfaces. Flapjax provides two key features that simplify writing these applications. First, it provides event streams, a uniform abstraction for communication within a program as well as with external Web services. Second, the language itself is reactive: it automatically tracks data dependencies and propagates updates along those dataflows. This allows developers to write reactive interfaces in a declarative and compositional style. Flapjax is built on top of JavaScript. It runs on unmodified browsers and readily interoperates with existing JavaScript code. It is usable as either a programming language (that is compiled to JavaScript) or as a JavaScript library, and is designed for both uses. This paper presents the language, its design decisions, and illustrative examples drawn from several working Flapjax applications.