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...
Autores principales: | , , |
---|---|
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 |