Cargando…

Adjoint Reactive GUI Programming

Most interaction with a computer is via graphical user interfaces. These are traditionally implemented imperatively, using shared mutable state and callbacks. This is efficient, but is also difficult to reason about and error prone. Functional Reactive Programming (FRP) provides an elegant alternati...

Descripción completa

Detalles Bibliográficos
Autores principales: Graulund, Christian Uldal, Szamozvancev, Dmitrij, Krishnaswami, Neel
Formato: Online Artículo Texto
Lenguaje:English
Publicado: 2021
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7984123/
http://dx.doi.org/10.1007/978-3-030-71995-1_15
_version_ 1783668010245947392
author Graulund, Christian Uldal
Szamozvancev, Dmitrij
Krishnaswami, Neel
author_facet Graulund, Christian Uldal
Szamozvancev, Dmitrij
Krishnaswami, Neel
author_sort Graulund, Christian Uldal
collection PubMed
description Most interaction with a computer is via graphical user interfaces. These are traditionally implemented imperatively, using shared mutable state and callbacks. This is efficient, but is also difficult to reason about and error prone. Functional Reactive Programming (FRP) provides an elegant alternative which allows GUIs to be designed in a declarative fashion. However, most FRP languages are synchronous and continually check for new data. This means that an FRP-style GUI will “wake up” on each program cycle. This is problematic for applications like text editors and browsers, where often nothing happens for extended periods of time, and we want the implementation to sleep until new data arrives. In this paper, we present an asynchronous FRP language for designing GUIs called [Formula: see text] . Our language provides a novel semantics for widgets, the building block of GUIs, which offers both a natural Curry–Howard logical interpretation and an efficient implementation strategy.
format Online
Article
Text
id pubmed-7984123
institution National Center for Biotechnology Information
language English
publishDate 2021
record_format MEDLINE/PubMed
spelling pubmed-79841232021-03-23 Adjoint Reactive GUI Programming Graulund, Christian Uldal Szamozvancev, Dmitrij Krishnaswami, Neel Foundations of Software Science and Computation Structures Article Most interaction with a computer is via graphical user interfaces. These are traditionally implemented imperatively, using shared mutable state and callbacks. This is efficient, but is also difficult to reason about and error prone. Functional Reactive Programming (FRP) provides an elegant alternative which allows GUIs to be designed in a declarative fashion. However, most FRP languages are synchronous and continually check for new data. This means that an FRP-style GUI will “wake up” on each program cycle. This is problematic for applications like text editors and browsers, where often nothing happens for extended periods of time, and we want the implementation to sleep until new data arrives. In this paper, we present an asynchronous FRP language for designing GUIs called [Formula: see text] . Our language provides a novel semantics for widgets, the building block of GUIs, which offers both a natural Curry–Howard logical interpretation and an efficient implementation strategy. 2021-03-23 /pmc/articles/PMC7984123/ http://dx.doi.org/10.1007/978-3-030-71995-1_15 Text en © The Author(s) 2021 Open Access This chapter is licensed under the terms of the Creative Commons Attribution 4.0 International License (http://creativecommons.org/licenses/by/4.0/), which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons license and indicate if changes were made. The images or other third party material in this chapter are included in the chapter's Creative Commons license, unless indicated otherwise in a credit line to the material. If material is not included in the chapter's Creative Commons license and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder.
spellingShingle Article
Graulund, Christian Uldal
Szamozvancev, Dmitrij
Krishnaswami, Neel
Adjoint Reactive GUI Programming
title Adjoint Reactive GUI Programming
title_full Adjoint Reactive GUI Programming
title_fullStr Adjoint Reactive GUI Programming
title_full_unstemmed Adjoint Reactive GUI Programming
title_short Adjoint Reactive GUI Programming
title_sort adjoint reactive gui programming
topic Article
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7984123/
http://dx.doi.org/10.1007/978-3-030-71995-1_15
work_keys_str_mv AT graulundchristianuldal adjointreactiveguiprogramming
AT szamozvancevdmitrij adjointreactiveguiprogramming
AT krishnaswamineel adjointreactiveguiprogramming