Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/3242921.3242925acmotherconferencesArticle/Chapter ViewAbstractPublication PagesecoopConference Proceedingsconference-collections
research-article

A Simple Context-Oriented Programming Extension to an FRP Language for Small-Scale Embedded Systems

Published: 16 July 2018 Publication History

Abstract

This paper presents the design of a simple context-oriented programming extension to Emfrp, a purely functional reactive programming language for resource-constrained embedded systems. The language provides declarative and straightforward ways to describe various reactive behaviors in embedded systems. However, because of the static nature of the language, Emfrp lacks suitable capabilities to modularize adaptive behaviors. The proposed extension introduces a simple layer mechanism with implicit layer activation. It also provides a feature to describe responses to events that correspond to the moments of layer activations and deactivations. The extension can improve the modularity of Emfrp programs by separating the descriptions of context-dependent behaviors, and hence eliminating various cross-cutting code fragments.

References

[1]
Malte Appeltauer, Robert Hirschfeld, Michael Haupt, and Hidehiko Masuhara. 2011. ContextJ: Context-oriented Programming with Java. Information and Media Technologies 6, 2 (2011), 399--419.
[2]
Engineer Bainomugisha, Andoni Lombide Carreton, Tom Van Cutsem, Stijn Mostinckx, and Wolfgang De Meuter. 2013. A Survey on Reactive Programming. Comput. Surveys 45, 4 (2013).
[3]
Evan Czaplicki. 2016. A Farewell to FRP: Making signals unnecessary with The Elm Architecture. http://elm-lang.org/blog/farewell-to-frp
[4]
Evan Czaplicki and Stephen Chong. 2013. Asynchronous Functional Reactive Programming for GUIs. In 34th ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2013). ACM, 411--422.
[5]
Conal Elliott and Paul Hudak. 1997. Functional Reactive Animation. In 2nd ACM SIGPLAN International Conference on Functional Programming (ICFP 1997). ACM, 263--273.
[6]
Caleb Helbling and Samuel Z Guyer. 2016. Juniper: A Functional Reactive Programming Language for the Arduino. In 4th International Workshop on Functional Art, Music, Modelling, and Design (FARM 2016). ACM, 8--16.
[7]
Paul Hudak, Antony Courtney, Henrik Nilsson, and John Peterson. 2003. Arrows, Robots, and Functional Reactive Programming. In Advanced Functional Programming. Lecture Notes in Computer Science, Vol. 2638. Springer-Verlag, 159--187.
[8]
Roumen Kaiabachev, Walid Taha, and Angela Zhu. 2007. E-FRP with Priorities. In 7th ACM/IEEE International Conference on Embedded Software (EMSOFT 2007). 221--230.
[9]
Tetsuo Kamina, Tomoyuki Aotani, and Hidehiko Masuhara. 2016. Generalized Layer Activation Mechanism for Context-Oriented Programming. In Transactions on Modularity and Composition I (Lecture Notes in Computer Science), Vol. 9800. Springer-Verlag, 123--166.
[10]
Tetsuo Kamina, Tomoyuki Aotani, and Hidehiko Masuhara. 2017. Push-based Reactive Layer Activation in Context-Oriented Programming. In 9th International Workshop on Context-Oriented Programming (COP 2017). ACM.
[11]
Geoffrey Mainland, Greg Morrisett, and Matt Welsh. 2008. Flask: Staged Functional Programming for Sensor Networks. In International Conference on Functional Programming (ICFP 2008). ACM, 335--346.
[12]
Izzet Pembeci, Henrik Nilsson, and Gregory Hager. 2002. Functional Reactive Robotics: An Exercise in Principled Integration of Domain-Specific Languages. In 4th International Conrefernce on Principles and Practice of Declarative Programming (PPDP 2002). ACM, 168--179.
[13]
Stefan Ramson and Robert Hirschfeld. 2017. Active Expressions: Basic Building Blocks for Reactive Programming. The Art, Science, and Engineering of Programming 1, 2 (2017).
[14]
Stefan Ramson, Jens Lincke, and Robert Hirschfeld. 2017. The Declarative Nature of Implicit Layer Activation. In 9th International Workshop on Context-Oriented Programming (COP 2017). ACM, 7--16.
[15]
Francisco Sant'Anna, Roberto Ierusalimschy, and Noemi Rodriguez. 2015. Structured Synchronous Reactive Programming with Céu. In 14th International Conference on Modularity (Modularity 2015). ACM, 29--40.
[16]
Francisco Sant'anna, Roberto Ierusalimschy, Noemi Rodriguez, Silvana Rossetto, and Adriano Branco. 2017. The Design and Implementation of the Synchronous Language CÉU. ACM Transactions on Embedded Computing Systems (TECS) 16, 4 (Sep. 2017).
[17]
Kensuke Sawada and Takuo Watanabe. 2016. Emfrp: A Functional Reactive Programming Language for Small-Scale Embedded Systems. In Modularity 2016 Constrained and Reactive Objects Workshop (CROW 2016). ACM, 36--44.
[18]
Martin von Löwis, Marcus Denker, and Oscar Nierstrasz. 2007. Context-Oriented Programming: Beyond Layers. In International Conference on Dynamic Languages (ICDL 2007). ACM, 143--156.
[19]
Zhanyong Wan, Walid Taha, and Paul Hudak. 2001. Real-Time FRP. In International Conference on Functional programming (ICFP 2001). ACM SIGPLAN, 146--156.
[20]
Harumi Watanabe, Midori Sugaya, Ikuta Tanigawa, Nobuhiko Ogura, and Kenji Hisazumi. 2015. A Study of Context-Oriented Programming for Applying to Robot Development. In 7th International Workshop on Context-Oriented Programming (COP 2015). ACM.
[21]
Takuo Watanabe. 2017. Reactive Reflection in an FRP Language for Small-Scale Embedded Systems. In Workshop on Meta-Programming Techniques and Reflection (META 2017). https://2017.splashcon.org/track/meta-2017
[22]
Takuo Watanabe and Kensuke Sawada. 2017. Towards Reflection in an FRP Language for Small-Scale Embedded Systems. In 2nd Workshop on Live Adaptation of Software SYstems (LASSY 2017), Companion to the 1st International Conference on the Art, Science and Engineering of Programming (Programming 2017). ACM, Article 10, 10:1--10:6 pages.
[23]
Daniel Winograd-Cort and Paul Hudak. 2014. Settable and Non-Interfering Signal Functions for FRP: How a First-Order Switch is More Than Enough. In 19th ACM SIGPLAN International Conference on Functional Programming (ICFP 2014). 213--225.
[24]
H. C. Wong and A. Burns. 2015. Priority-based Functional Reactive Programming (P-FRP) using Deferred Abort. In 21st International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA 2015). IEEE, 227--236.

Cited By

View all
  • (2023)Periodic and Aperiodic Task Description Mechanisms in an FRP Language for Small-Scale Embedded SystemsProceedings of the 10th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems10.1145/3623506.3623578(43-53)Online publication date: 19-Oct-2023
  • (2023)An expressive and modular layer activation mechanism for Context-Oriented ProgrammingInformation and Software Technology10.1016/j.infsof.2022.107132156(107132)Online publication date: Apr-2023
  • (2022)Layer Activation Mechanism for Asynchronous Executions in JavaScriptProceedings of the 14th ACM International Workshop on Context-Oriented Programming and Advanced Modularity10.1145/3570353.3570354(1-8)Online publication date: 7-Jun-2022
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Other conferences
COP '18: Proceedings of the 10th ACM International Workshop on Context-Oriented Programming: Advanced Modularity for Run-time Composition
July 2018
50 pages
ISBN:9781450357227
DOI:10.1145/3242921
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 16 July 2018

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Context-Oriented Programming
  2. Embedded Systems
  3. Functional Reactive Programming

Qualifiers

  • Research-article
  • Research
  • Refereed limited

Conference

ECOOP '18

Acceptance Rates

COP '18 Paper Acceptance Rate 6 of 8 submissions, 75%;
Overall Acceptance Rate 17 of 25 submissions, 68%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)0
Reflects downloads up to 30 Nov 2024

Other Metrics

Citations

Cited By

View all
  • (2023)Periodic and Aperiodic Task Description Mechanisms in an FRP Language for Small-Scale Embedded SystemsProceedings of the 10th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems10.1145/3623506.3623578(43-53)Online publication date: 19-Oct-2023
  • (2023)An expressive and modular layer activation mechanism for Context-Oriented ProgrammingInformation and Software Technology10.1016/j.infsof.2022.107132156(107132)Online publication date: Apr-2023
  • (2022)Layer Activation Mechanism for Asynchronous Executions in JavaScriptProceedings of the 14th ACM International Workshop on Context-Oriented Programming and Advanced Modularity10.1145/3570353.3570354(1-8)Online publication date: 7-Jun-2022
  • (2022)Towards Introducing Asynchronous Tasks to an FRP Language for Small-Scale Embedded SystemsProceedings of the 9th ACM SIGPLAN International Workshop on Reactive and Event-Based Languages and Systems10.1145/3563837.3568338(1-12)Online publication date: 29-Nov-2022
  • (2021)Reactive Programming Extensions for Time-Sensitive IoT Applications2021 17th International Conference on Distributed Computing in Sensor Systems (DCOSS)10.1109/DCOSS52077.2021.00048(244-251)Online publication date: Jul-2021
  • (2020)Interfaces for Modular Reasoning in Context-Oriented ProgrammingProceedings of the 12th ACM International Workshop on Context-Oriented Programming and Advanced Modularity10.1145/3422584.3423152(1-7)Online publication date: 21-Jul-2020
  • (2020)Adaptive Variables for Declarative UAV PlanningProceedings of the 12th ACM International Workshop on Context-Oriented Programming and Advanced Modularity10.1145/3422584.3422763(1-7)Online publication date: 21-Jul-2020
  • (2019)TinyCORPProceedings of the 11th ACM International Workshop on Context-Oriented Programming10.1145/3340671.3343356(1-8)Online publication date: 15-Jul-2019
  • (2018)Distributed functional reactive programming on actor-based runtimeProceedings of the 8th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control10.1145/3281366.3281370(13-22)Online publication date: 5-Nov-2018

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media