Abstract
In this paper, we describe a compiler back end and library for web client application development in Agda, a dependently typed functional programming language. The compiler back end targets ECMAScript (also known as JavaScript), and so is executable in a browser. The library is an implementation of Functional Reactive Programming (FRP) using a constructive variant of Linear-time Temporal Logic (LTL) as its type system.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
The Agda wiki, http://wiki.portal.chalmers.se/agda/
Asynchronous module definition API, https://github.com/amdjs/
The Coq proof assistant, http://coq.inria.fr/
ECMAScript back end for functional reactive programming in Agda, https://github.com/agda/agda-frp-js
The Epigram 2 programming language, http://www.e-pig.org/darcs/Pig09/web/
Froc: Functional reactive programming in O’Caml, https://jaked.github.com/froc/
ECMAScript language specification. ECMA Standard 262, 5.1 Edn. (2011)
Acar, U.A.: Self-Adjusting Computation. PhD thesis, Carnegie Mellon Univ. (2005)
Buchlovsky, P., Thielecke, H.: A type-theoretic reconstruction of the visitor pattern. In: Proc. Mathematical Foundations of Programming Semantics, pp. 309–329 (2006)
Burstall, R.M., MacQueen, D.B., Sannella, D.: HOPE: An experimental applicative language. In: Proc. LISP Conf., pp. 136–143 (1980)
Cardelli, L.: Compiling a functional language. In: Proc. ACM Symp. LISP and Functional Programming, pp. 208–217 (1984)
Cooper, G.H., Krishnamurthi, S.: Embedding dynamic dataflow in a call-by-value language. In: Sestoft, P. (ed.) ESOP 2006. LNCS, vol. 3924, pp. 294–308. Springer, Heidelberg (2006)
Elliott, C., Hudak, P.: Functional reactive animation. In: Proc. Int. Conf. Functional Programming, pp. 263–273 (1997)
Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley (1994)
Hickson, I., et al.: HTML5: A vocabulary and associated APIs for HTML and XHTML. W3C Working Draft (2011), http://www.w3.org/TR/html5/
Jeffrey, A.S.A.: LTL types FRP: Linear-time temporal logic propositions as types, proofs as functional reactive programs. In: Proc. ACM Workshop Programming Languages Meets Program Verification (2012)
Jeltsch, W.: Signals, not generators! In: Proc. Symp. Trends in Functional Programming, pp. 283–297 (2009)
Jeltsch, W.: The Curry-Howard correspondence between temporal logic and functional reactive programming (2011), http://www.cs.ut.ee/~varmo/tday-nelijarve/jeltsch-slides.pdf
Krishnaswami, N., Benton, N.: A semantic model for graphical user interfaces. In: Proc. ACM Int. Conf. Functional Programming, pp. 45–57 (2011)
Ley-Wild, R.: Programmable Self-Adjusting Computation. PhD thesis, Carnegie Mellon Univ. (2010)
Meyerovich, L.A., Guha, A., Baskin, J., Cooper, G.H., Greenberg, M., Bromfield, A., Krishnamurthi, S.: Flapjax: a programming language for Ajax applications. In: Proc. ACM Conf. Object Oriented Programming Systems Languages and Applications, pp. 1–20 (2009)
Pitts, A.M., Stark, I.D.B.: Observable properties of higher order functions that dynamically create local names, or: What’s new? In: Borzyszkowski, A.M., Sokolowski, S. (eds.) MFCS 1993. LNCS, vol. 711, pp. 122–141. Springer, Heidelberg (1993)
Pnueli, A.: The temporal logic of programs. In: Proc. Symp. Foundations of Computer Science, pp. 46–57 (1977)
Wadler, P.: Views: a way for pattern matching to cohabit with data abstraction. In: Proc. ACM Symp. Principles of Programming Languages, pp. 307–313 (1987)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2013 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Jeffrey, A. (2013). Dependently Typed Web Client Applications. In: Sagonas, K. (eds) Practical Aspects of Declarative Languages. PADL 2013. Lecture Notes in Computer Science, vol 7752. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-45284-0_16
Download citation
DOI: https://doi.org/10.1007/978-3-642-45284-0_16
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-45283-3
Online ISBN: 978-3-642-45284-0
eBook Packages: Computer ScienceComputer Science (R0)