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

Recommend


More recommend