functional hybrid modeling from an object oriented
play

Functional Hybrid Modeling from an Object-Oriented Perspective - PowerPoint PPT Presentation

Functional Hybrid Modeling from an Object-Oriented Perspective Henrik Nilsson (University of Nottingham), John Peterson (Western State College), and Paul Hudak (Yale University) Functional Hybrid Modeling from an Object-Oriented Perspective


  1. Functional Hybrid Modeling from an Object-Oriented Perspective Henrik Nilsson (University of Nottingham), John Peterson (Western State College), and Paul Hudak (Yale University) Functional Hybrid Modeling from an Object-Oriented Perspective – p.1/27

  2. Background (1) • Functional Reactive Programming (FRP) integrates notions suitable for causal hybrid modelling with functional programming. Functional Hybrid Modeling from an Object-Oriented Perspective – p.2/27

  3. Background (1) • Functional Reactive Programming (FRP) integrates notions suitable for causal hybrid modelling with functional programming. • Yampa is an instance of FRP embedded in Haskell. Functional Hybrid Modeling from an Object-Oriented Perspective – p.2/27

  4. Background (1) • Functional Reactive Programming (FRP) integrates notions suitable for causal hybrid modelling with functional programming. • Yampa is an instance of FRP embedded in Haskell. • One central idea: first-class reactive components (or models): - enables highly structurally dynamic systems to be described declaratively; - opens up for meta-modelling without additional language layers. Functional Hybrid Modeling from an Object-Oriented Perspective – p.2/27

  5. Background (2) • Additional interesting aspects: - full power of a modern functional language available; - polymorphic type system; - well-understood underlying semantics. Functional Hybrid Modeling from an Object-Oriented Perspective – p.3/27

  6. Functional Hybrid Modelling (1) • Our goal with Functional Hybrid Modelling (FHM) is to combine an FRP-approach with non-causal modelling yielding: Functional Hybrid Modeling from an Object-Oriented Perspective – p.4/27

  7. Functional Hybrid Modelling (1) • Our goal with Functional Hybrid Modelling (FHM) is to combine an FRP-approach with non-causal modelling yielding: - a powerful, fully-declarative, non-causal modelling language supporting highly structurally dynamic systems; Functional Hybrid Modeling from an Object-Oriented Perspective – p.4/27

  8. Functional Hybrid Modelling (1) • Our goal with Functional Hybrid Modelling (FHM) is to combine an FRP-approach with non-causal modelling yielding: - a powerful, fully-declarative, non-causal modelling language supporting highly structurally dynamic systems; - a semantic framework for studying modelling and simulation languages supporting structural dynamism. Functional Hybrid Modeling from an Object-Oriented Perspective – p.4/27

  9. Functional Hybrid Modelling (2) • The idea of FHM goes back a few years (PADL 2003). UK research funding (EPSRC) secured very recently. Thus still work in very early stages. Functional Hybrid Modeling from an Object-Oriented Perspective – p.5/27

  10. The Rest of the Talk • A brief introduction to FRP/Yampa as a background. • Sketch the key ideas of how this may be generalized to a non-causal setting. Functional Hybrid Modeling from an Object-Oriented Perspective – p.6/27

  11. Signal functions Key concept: functions on signals (first class). Functional Hybrid Modeling from an Object-Oriented Perspective – p.7/27

  12. Signal functions Key concept: functions on signals (first class). Intuition: Signal α ≈ Time α → x :: Signal T1 y :: Signal T2 SF α β ≈ Signal α → Signal β :: SF T1 T2 f Functional Hybrid Modeling from an Object-Oriented Perspective – p.7/27

  13. Signal functions Key concept: functions on signals (first class). Intuition: Signal α ≈ Time α → x :: Signal T1 y :: Signal T2 SF α β ≈ Signal α → Signal β :: SF T1 T2 f Additionally, causality required: output at time t must be determined by input on interval [0 , t ] . Functional Hybrid Modeling from an Object-Oriented Perspective – p.7/27

  14. Signal functions and state Alternative view: Functional Hybrid Modeling from an Object-Oriented Perspective – p.8/27

  15. Signal functions and state Alternative view: Signal functions can encapsulate state . state ( t ) summarizes input history x ( t ′ ) , t ′ ∈ [0 , t ] . Functional Hybrid Modeling from an Object-Oriented Perspective – p.8/27

  16. Signal functions and state Alternative view: Signal functions can encapsulate state . state ( t ) summarizes input history x ( t ′ ) , t ′ ∈ [0 , t ] . From this perspective, signal functions are: • stateful if y ( t ) depends on x ( t ) and state ( t ) • stateless if y ( t ) depends only on x ( t ) Integral is an example of a stateful signal function. Functional Hybrid Modeling from an Object-Oriented Perspective – p.8/27

  17. Programming with signal functions In Yampa, systems are described by combining signal functions (forming new signal functions). Functional Hybrid Modeling from an Object-Oriented Perspective – p.9/27

  18. Programming with signal functions In Yampa, systems are described by combining signal functions (forming new signal functions). For example, serial composition: Functional Hybrid Modeling from an Object-Oriented Perspective – p.9/27

  19. Programming with signal functions In Yampa, systems are described by combining signal functions (forming new signal functions). For example, serial composition: A combinator can be defined that captures this: ( ≫ ) :: SF a b → SF b c → SF a c Note: plain function operating on first-class signal function. Functional Hybrid Modeling from an Object-Oriented Perspective – p.9/27

  20. The Arrow framework (1) These diagrams convey the general idea: arr f ≫ first f loop f first :: SF a b → SF ( a , c ) ( b , c ) loop :: SF ( a , c ) ( b , c ) → SF a b Functional Hybrid Modeling from an Object-Oriented Perspective – p.10/27

  21. The Arrow framework (2) Some derived combinators: second f f ∗ ∗ g ∗ f & & & g Functional Hybrid Modeling from an Object-Oriented Perspective – p.11/27

  22. Example: Constructing a network Functional Hybrid Modeling from an Object-Oriented Perspective – p.12/27

  23. Example: Constructing a network Functional Hybrid Modeling from an Object-Oriented Perspective – p.12/27

  24. Example: Constructing a network loop ( arr ( λ ( x , y ) → (( x , y ) , x )) ≫ ( fst f ≫ ( arr ( λ ( x , y ) → ( x , ( x , y ))) ≫ ( g ∗ ∗ h )))) ∗ Functional Hybrid Modeling from an Object-Oriented Perspective – p.12/27

  25. The Arrow notation Functional Hybrid Modeling from an Object-Oriented Perspective – p.13/27

  26. The Arrow notation Functional Hybrid Modeling from an Object-Oriented Perspective – p.13/27

  27. The Arrow notation proc x → do rec ≺ ( x , v ) u ← f − y ← g − ≺ u ≺ ( u , x ) v ← h − returnA − ≺ y Functional Hybrid Modeling from an Object-Oriented Perspective – p.13/27

  28. Switching Some switching combinators: • switch :: SF a ( b , Event c ) → ( c → SF a b ) → SF a b • pSwitchB :: Functor col ⇒ col ( SF a b ) → SF ( a , col b ) ( Event c ) → ( col ( SF a b ) → c → SF a ( col b )) → SF a ( col b ) Functional Hybrid Modeling from an Object-Oriented Perspective – p.14/27

  29. What makes Yampa different? • First class reactive components (signal functions). Functional Hybrid Modeling from an Object-Oriented Perspective – p.15/27

  30. What makes Yampa different? • First class reactive components (signal functions). • Supports hybrid (mixed continuous and discrete time) systems: option type Event represents discrete-time signals. Functional Hybrid Modeling from an Object-Oriented Perspective – p.15/27

  31. What makes Yampa different? • First class reactive components (signal functions). • Supports hybrid (mixed continuous and discrete time) systems: option type Event represents discrete-time signals. • Supports dynamic system structure through switching combinators : Functional Hybrid Modeling from an Object-Oriented Perspective – p.15/27

  32. Example: Space Invaders Functional Hybrid Modeling from an Object-Oriented Perspective – p.16/27

  33. Functional Hybrid Modeling Same conceptual structure as Yampa, but: Functional Hybrid Modeling from an Object-Oriented Perspective – p.17/27

  34. Functional Hybrid Modeling Same conceptual structure as Yampa, but: • First-class relations on signals instead of functions on signals to enable non-causal modeling. Functional Hybrid Modeling from an Object-Oriented Perspective – p.17/27

  35. Functional Hybrid Modeling Same conceptual structure as Yampa, but: • First-class relations on signals instead of functions on signals to enable non-causal modeling. • Employ state-of-the-art symbolic and numerical methods for sound and efficient simulation. Functional Hybrid Modeling from an Object-Oriented Perspective – p.17/27

  36. Functional Hybrid Modeling Same conceptual structure as Yampa, but: • First-class relations on signals instead of functions on signals to enable non-causal modeling. • Employ state-of-the-art symbolic and numerical methods for sound and efficient simulation. • Adapted switch constructs. Functional Hybrid Modeling from an Object-Oriented Perspective – p.17/27

  37. First class signal relations The type for a relation on a signal of type Signal α : SR α Specific relations use a more refined type; e.g. the derivative relation: der :: SR ( Real , Real ) Since a signal carrying pairs is isomorphic to a pair of signals, der can be understood as a binary relation on two signals. Functional Hybrid Modeling from an Object-Oriented Perspective – p.18/27

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend