Filters








668 Hits in 2.2 sec

Composing Bidirectional Programs Monadically [chapter]

Li-yao Xia, Dominic Orchard, Meng Wang
2019 Lecture Notes in Computer Science  
Instead, we introduce a framework for composing bidirectional programs monadically, enabling bidirectional programming with familiar abstractions in functional languages such as Haskell.  ...  We show how to leverage compositionality and equational reasoning for the verification of round-tripping properties for such monadic bidirectional programs.  ...  composes the writer monad with the Maybe monad using WriterT (the writer monad transformer, equivalent to composing two monads with a distributive law).  ... 
doi:10.1007/978-3-030-17184-1_6 fatcat:4gbjdtm7srg45i33pchcvdmoty

Composing bidirectional programs monadically (with appendices) [article]

Li-yao Xia, Dominic Orchard, Meng Wang
2019 arXiv   pre-print
Instead, we introduce a framework for composing bidirectional programs monadically, enabling bidirectional programming with familiar abstractions in functional languages such as Haskell.  ...  We show how to leverage compositionality and equational reasoning for the verification of round-tripping properties for such monadic bidirectional programs.  ...  composes the writer monad with the Maybe monad using WriterT (the writer monad transformer, equivalent to composing two monads with a distributive law).  ... 
arXiv:1902.06950v1 fatcat:hpw3qndwwrdmtfmelyd2hw7uci

Introduction to Bidirectional Transformations [chapter]

Faris Abou-Saleh, James Cheney, Jeremy Gibbons, James McKinna, Perdita Stevens
2018 Lecture Notes in Computer Science  
, held in Oxford in July 2016 as one of the closing activities of the UK EPSRC-funded project A Theory of Least Change for Bidirectional Transformations.  ...  Bidirectional transformations (BX) serve to maintain consistency between different representations of related and often overlapping information, translating changes in one representation to the others.  ...  Bidirectional transformations with effects As noted earlier, monads are used to model (and, in Haskell, to program with) side-effects in a pure setting.  ... 
doi:10.1007/978-3-319-79108-1_1 fatcat:qiwcvk35pbbyjmqneiqobmtqxe

Notions of Bidirectional Computation and Entangled State Monads [chapter]

Faris Abou-Saleh, James Cheney, Jeremy Gibbons, James McKinna, Perdita Stevens
2015 Lecture Notes in Computer Science  
We build on the mature theory of monadic encapsulation of effects in functional programming, develop the equational theory and important combinators for effectful bx, and provide a prototype implementation  ...  Bidirectional transformations (bx) support principled consistency maintenance between data sources.  ...  The work was supported by the UK EPSRC-funded project A Theory of Least Change for Bidirectional Transformations [35] (EP/K020218/1, EP/K020919/1).  ... 
doi:10.1007/978-3-319-19797-5_9 fatcat:fjza4hjpc5g6nfv7hx2kyfzan4

Monadic combinators for "Putback" style bidirectional programming

Hugo Pacheco, Zhenjiang Hu, Sebastian Fischer
2014 Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation - PEPM '14  
Several bidirectional programming languages exist to aid programmers in writing a (sort of) forward transformation, and deriving a backward transformation for free.  ...  Bidirectional transformations, in particular lenses, are programs with a forward get transformation and a backward putback transformation that keep source and view data types synchronized.  ...  Acknowledgments We thank the NII's Programming Research Laboratory for stimulating discussions on BXs and several anonymous reviewers for many insightful suggestions.  ... 
doi:10.1145/2543728.2543737 dblp:conf/pepm/PachecoHF14 fatcat:tgu6phbgenfhfaj4765knvtghy

Reflections on Monadic Lenses [chapter]

Faris Abou-Saleh, James Cheney, Jeremy Gibbons, James McKinna, Perdita Stevens
2016 Lecture Notes in Computer Science  
Bidirectional transformations (bx) have primarily been modeled as pure functions, and do not account for the possibility of the side-effects that are available in most programming languages.  ...  This paper reviews the proposals for monadic lenses to date, and offers some improved definitions, paying particular attention to the obstacles to naively adding monadic effects to existing definitions  ...  Acknowledgements The work was supported by the UK EPSRC-funded project A Theory of Least Change for Bidirectional Transformations (TLCBX Project, 2013-2016) (EP/K020218/1, EP/K020919/1).  ... 
doi:10.1007/978-3-319-30936-1_1 fatcat:nvs4wfztjvfsrlsngcscw5ialq

There and back again

Artem Alimarine, Sjaak Smetsers, Arjen van Weelden, Marko van Eekelen, Rinus Plasmeijer
2005 Proceedings of the 2005 ACM SIGPLAN workshop on Haskell - Haskell '05  
Besides bidirectional polytypic examples, including invertible serialization, we give the definition of a monadic bi-arrow transformer, which we use to construct a bidirectional parser/pretty printer.  ...  Programming with bi-arrows in a polytypic or generic way exploits this the most.  ...  Monadic programming with bi-arrows Up to now, our examples did not have to deal with failure.  ... 
doi:10.1145/1088348.1088357 dblp:conf/haskell/AlimarineSWEP05 fatcat:pwgadknw2faxvjn3b23gyb27cm

"Bidirectionalization for free" for monomorphic transformations

Kazutaka Matsuda, Meng Wang
2015 Science of Computer Programming  
A bidirectional transformation is a pair of mappings between source and view data objects, one in each direction.  ...  Concretely, we provide a type class PackM γ α µ, which intuitively reads "a concrete datatype γ is abstracted to a type α, and the 'observations' made by a transformation on values of type γ are recorded by a monad  ...  and discussions with us for the counterexample for Weak-PutGet This work was partially supported by JSPS KAKENHI Grant Number 24700020, the Grand-Challenging Project on the "Linguistic Foundation for Bidirectional  ... 
doi:10.1016/j.scico.2014.07.008 fatcat:5pau5kotfrblfdifjnv3at42bm

Programming Safe Agents in Blueprint

Alex Muscar
2014 Proceedings of the 4th International Conference on Web Intelligence, Mining and Semantics (WIMS14) - WIMS '14  
to structure compose computations Communication channels • agents use bidirectional and asymmetric channels to exchange messages • messages sends are asynchronous (i.e. non-blocking), while  ...  ⁄c. run m (⁄x. run (k x) c) : M Conclusions• the Promise monad is actually the well known CPS monad • we can use monads to structure concurrent plans • we can employ the same strategy as F#: use monads  ... 
doi:10.1145/2611040.2611098 dblp:conf/wims/Muscar14 fatcat:ylsh3jmoanblhkxarjhlavbknq

Applicative bidirectional programming with lenses

Kazutaka Matsuda, Meng Wang
2015 Proceedings of the 20th ACM SIGPLAN International Conference on Functional Programming - ICFP 2015  
the paradigm of bidirectional programming.  ...  In this paper, we develop a framework for applicative-style and higher-order bidirectional programming, in which we can write bidirectional transformations as unidirectional programs in standard functional  ...  This work is partially supported by JSPS KAKENHI Grant Numbers 24700020, 25540001, 15H02681, and 15K15966, and the Grand-Challenging Project on the "Linguistic Foundation for Bidirectional Model Transformation  ... 
doi:10.1145/2784731.2784750 dblp:conf/icfp/MatsudaW15 fatcat:btqhjgbil5f7vfifb76ccxmh5i

Applicative bidirectional programming with lenses

Kazutaka Matsuda, Meng Wang
2015 SIGPLAN notices  
the paradigm of bidirectional programming.  ...  In this paper, we develop a framework for applicative-style and higher-order bidirectional programming, in which we can write bidirectional transformations as unidirectional programs in standard functional  ...  This work is partially supported by JSPS KAKENHI Grant Numbers 24700020, 25540001, 15H02681, and 15K15966, and the Grand-Challenging Project on the "Linguistic Foundation for Bidirectional Model Transformation  ... 
doi:10.1145/2858949.2784750 fatcat:zkqagfoymja5loranpjazliy24

Applicative bidirectional programming

KAZUTAKA MATSUDA, MENG WANG
2018 Journal of functional programming  
to the paradigm of bidirectional programming.  ...  In this paper, we develop a framework for applicative-style and higher-order bidirectional programming, in which we can write bidirectional transformations as unidirectional programs in standard functional  ...  This work is partially supported by JSPS KAKENHI Grant Numbers 24700020, 25540001, 15H02681, and 15K15966, and the Grand-Challenging Project on the "Linguistic Foundation for Bidirectional Model Transformation  ... 
doi:10.1017/s0956796818000096 fatcat:ce4rs2vcybghjj2cmbnvfmotpu

Robot Science Discussion on the Onset of Dissociative Identity Disorder (DID)

Takahiro Hoshino, Junichi Takeno
2016 Procedia Computer Science  
proposes a consciousness model that simulates the onset process of the symptoms of Dissociative Identity Disorder (DID) using a conscious system constructed with Module of Nerves for Advanced Dynamics (MoNAD  ...  We considered the symptoms of DID to be a problem of what is called "self-dispersion" in robot science, and developed a program with which we believe it will become possible to grasp the development process  ...  In Fig. 1 , all the information communicated between the MoNADs is basically bidirectional, but for the convenience of explaining the information handling process, the directions are indicated with arrows  ... 
doi:10.1016/j.procs.2016.07.406 fatcat:2o64lub6ifc23bkgufx3rxrt7a

Functional reactive programming, refactored

Ivan Perez, Manuel Bärenz, Henrik Nilsson
2016 SIGPLAN notices  
Functional Reactive Programming (FRP) has come to mean many things. Yet, scratch the surface of the multitude of realisations, and there is great commonality between them.  ...  turning it into a mathematically coherent and practical FRP realisation that allows us to express the functionality of many existing FRP systems and beyond by providing a minimal FRP core parametrised on a monad  ...  Composing Signal Functions Programming in Yampa consists of defining signal functions compositionally using Yampa's library of primitive signal functions and a set of combinators.  ... 
doi:10.1145/3241625.2976010 fatcat:eev44jojujd4dkjhvlszpgwkpm

Functional reactive programming, refactored

Ivan Perez, Manuel Bärenz, Henrik Nilsson
2016 Proceedings of the 9th International Symposium on Haskell - Haskell 2016  
Functional Reactive Programming (FRP) has come to mean many things. Yet, scratch the surface of the multitude of realisations, and there is great commonality between them.  ...  it into a mathematically coherent and practical FRP realisation that allows us to express the functionality of many existing FRP systems and beyond by providing a minimal FRP core parameterised on a monad  ...  bidirectional reactive rules with well-defined semantics.  ... 
doi:10.1145/2976002.2976010 dblp:conf/haskell/PerezBN16 fatcat:tsx6kxje3zhu3bq44mq5wum5ea
« Previous Showing results 1 — 15 out of 668 results