string diagram semantics for functional languages with
play

String-diagram semantics for functional languages with data-flow - PowerPoint PPT Presentation

String-diagram semantics for functional languages with data-flow Steven Cheung & Dan Ghica & Koko Moruya University of Birmingham 5th Jan 2018 GoI machine [Mackie 95] [Danos & Regnier 99] Geometry of interaction [Girard


  1. String-diagram semantics for functional languages with data-flow Steven Cheung & Dan Ghica & Koko Moruya University of Birmingham 5th Jan 2018

  2. GoI machine [Mackie ’95] [Danos & Regnier ’99] • Geometry of interaction [Girard ’89] • Token passing machine • a λ -term → a graph (proof-net) • evaluation = specific path travelled by the token

  3. GoI machine C ( λ x.x + x) (1 + 1) + λ 1 1 ! ! ! D + @

  4. GoI machine Contraction C ( λ x.x + x) (1 + 1) Constants + λ 1 1 box structure Abstraction ! ! ! D + Dereliction Binary addition @ Application

  5. GoI machine C + λ 1 1 ! ! ! D + @ ? : □

  6. GoI machine C + λ 1 1 ! ! ! D + @ R : ? : □

  7. GoI machine C + λ 1 1 ! ! ! D + @ R : ? : □

  8. GoI machine C + λ 1 1 ! ! ! D + @ R : ? : □

  9. GoI machine C + λ 1 1 ! ! ! D + @ ? : □

  10. GoI machine C + λ 1 1 ! ! ! D + @ ? : ? : □

  11. GoI machine C + λ 1 1 ! ! ! D + @ ? : ? : □

  12. GoI machine C + λ 1 1 ! ! ! D + @ L : ? : ? : □

  13. GoI machine C + λ 1 1 ! ! ! D + @ L : ? : ? : □

  14. GoI machine C + λ 1 1 ! ! ! D + @ L : ? : ? : □

  15. GoI machine C + λ 1 1 ! ! ! D + @ ? : ? : □

  16. GoI machine C + λ 1 1 ! ! ! D + @ ? : ? : ? : □

  17. GoI machine C + λ 1 1 ! ! ! D + @ ? : ? : ? : □

  18. GoI machine C + λ 1 1 ! ! ! D + @ 1 : ? : ? : □

  19. GoI machine C + λ 1 1 ! ! ! D + @ ? : 1 : ? : ? : □

  20. GoI machine C + λ 1 1 ! ! ! D + @ ? : 1 : ? : ? : □

  21. GoI machine C + λ 1 1 ! ! ! D + @ 1 : 1 : ? : ? : □

  22. GoI machine C + λ 1 1 ! ! ! D + @ 2 : ? : □

  23. GoI machine C + λ 1 1 ! ! ! D + @ L : 2 : ? : □

  24. GoI machine C + λ 1 1 ! ! ! D + @ L : 2 : ? : □

  25. GoI machine C + λ 1 1 ! ! ! D + @ L : 2 : ? : □

  26. GoI machine C + λ 1 1 ! ! ! D + @ 2 : ? : □

  27. GoI machine C + λ 1 1 ! ! ! D + @ 2 : ? : □

  28. GoI machine C + λ 1 1 ! ! ! D + @ ? : 2 : ? : □

  29. GoI machine C + λ 1 1 ! ! ! D + @ ? : 2 : ? : □

  30. GoI machine C + λ 1 1 ! ! ! D + @ L : ? : 2 : ? : □

  31. GoI machine C + λ 1 1 ! ! ! D + @ L : ? : 2 : ? : □

  32. GoI machine C + λ 1 1 ! ! ! D + @ L : ? : 2 : ? : □

  33. GoI machine C + λ 1 1 ! ! ! D + @ ? : 2 : ? : □

  34. GoI machine C + λ 1 1 ! ! ! D + @ ? : ? : 2 : ? : □

  35. GoI machine C + λ 1 1 ! ! ! D + @ ? : ? : 2 : ? : □

  36. GoI machine C + λ 1 1 ! ! ! D + @ 1 : ? : 2 : ? : □

  37. GoI machine C + λ 1 1 ! ! ! D + @ ? : 1 : ? : 2 : ? : □

  38. GoI machine C + λ 1 1 ! ! ! D + @ ? : 1 : ? : 2 : ? : □

  39. GoI machine C + λ 1 1 ! ! ! D + @ 1 : 1 : ? : 2 : ? : □

  40. GoI machine C + λ 1 1 ! ! ! D + @ 2 : 2 : ? : □

  41. GoI machine C + λ 1 1 ! ! ! D + @ L : 2 : 2 : ? : □

  42. GoI machine C + λ 1 1 ! ! ! D + @ L : 2 : 2 : ? : □

  43. GoI machine C + λ 1 1 ! ! ! D + @ L : 2 : 2 : ? : □

  44. GoI machine C + λ 1 1 ! ! ! D + @ 2 : 2 : ? : □

  45. GoI machine C + λ 1 1 ! ! ! D + @ 2 : 2 : ? : □

  46. GoI machine C + λ 1 1 ! ! ! D + @ 4 : □

  47. GoI machine C + λ 1 1 ! ! ! D + @ R : 4 : □

  48. GoI machine C + λ 1 1 ! ! ! D + @ R : 4 : □

  49. GoI machine C + λ 1 1 ! ! ! D + @ R : 4 : □

  50. GoI machine C + λ 1 1 ! ! ! D + @ 4 : □

  51. GoI machine C + λ 1 1 ! ! ! D + @ 4 : □

  52. GoI machine [Mackie ’95] [Danos & Regnier ’99] • Fixed graph = constants space • Compilation to circuit [Ghica ’07] • ✔ call-by-name, ? call-by-value

  53. Dynamic GoI machine [Muroya & Ghica ’17] • Framework for defining FPL semantics • Combine token passing & graph rewriting • di ff erent interleaving = di ff erent strategy

  54. Dynamic GoI machine [Muroya & Ghica ’17] C ( λ x.x + x) (1 + 1) + λ 1 1 ! ! ! D + @

  55. Dynamic GoI machine C ( λ x.x + x) (1 + 1) + λ 1 1 ! ! ! D + @

  56. Dynamic GoI machine C ( λ x.x + x) (1 + 1) + λ 1 1 ! ! ! D + @

  57. Dynamic GoI machine C ( λ x.x + x) (1 + 1) + λ 1 1 ! ! ! D + @

  58. Dynamic GoI machine C ( λ x.x + x) (1 + 1) + λ 1 1 ! ! ! D + @

  59. Dynamic GoI machine C ( λ x.x + x) (1 + 1) + λ 1 1 ! ! ! D + @

  60. Dynamic GoI machine C ( λ x.x + x) (1 + 1) + λ 1 1 ! ! ! D + @

  61. Dynamic GoI machine C ( λ x.x + x) (1 + 1) + λ 1 1 ! ! ! D + @

  62. Dynamic GoI machine C ( λ x.x + x) (1 + 1) + λ 1 1 ! ! ! D + @

  63. Dynamic GoI machine C ( λ x.x + x) (1 + 1) + λ 1 1 ! ! ! D + @

  64. Dynamic GoI machine C C ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 + + λ λ 1 1 ! ! ! ! 2 D + D ! @ @

  65. Dynamic GoI machine C ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 + λ ! 2 D ! @

  66. Dynamic GoI machine C ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 + λ ! 2 D ! @

  67. Dynamic GoI machine C ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 + λ ! 2 D ! @

  68. Dynamic GoI machine C ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 + λ ! 2 D ! @

  69. Dynamic GoI machine C ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 C + + 2 λ λ ! ! 2 @ D ! @

  70. Dynamic GoI machine ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 C + 2 λ ! @

  71. Dynamic GoI machine ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 C + 2 λ ! @

  72. Dynamic GoI machine ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 C ↦ x + x [x ↦ 2] 2 + 2 ! λ ! C + @

  73. Dynamic GoI machine ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 ↦ x + x [x ↦ 2] 2 ! C +

  74. Dynamic GoI machine ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 ↦ x + x [x ↦ 2] 2 ! C +

  75. Dynamic GoI machine ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 ↦ x + x [x ↦ 2] 2 ! C +

  76. Dynamic GoI machine ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 ↦ x + x [x ↦ 2] 2 ! C +

  77. Dynamic GoI machine ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 ↦ x + x [x ↦ 2] 2 2 ↦ x + 2 [x ↦ 2] ! ! 2 C C ! + +

  78. Dynamic GoI machine ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 ↦ x + x [x ↦ 2] 2 ↦ x + 2 [x ↦ 2] ! 2 C ! +

  79. Dynamic GoI machine ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 ↦ x + x [x ↦ 2] 2 ↦ x + 2 [x ↦ 2] ! 2 C ! +

  80. Dynamic GoI machine ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 ↦ x + x [x ↦ 2] 2 ↦ x + 2 [x ↦ 2] ! 2 C ! +

  81. Dynamic GoI machine ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 ↦ x + x [x ↦ 2] 2 ↦ x + 2 [x ↦ 2] ! 2 C ! +

  82. Dynamic GoI machine ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 ↦ x + x [x ↦ 2] 2 ↦ x + 2 [x ↦ 2] ! 2 C ! +

  83. Dynamic GoI machine ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 ↦ x + x [x ↦ 2] 2 ↦ x + 2 [x ↦ 2] 2 2 ↦ 2 + 2 [x ↦ 2] ! 2 ! ! C ! + +

  84. Dynamic GoI machine ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 ↦ x + x [x ↦ 2] ↦ x + 2 [x ↦ 2] 2 2 ↦ 2 + 2 [x ↦ 2] ! ! +

  85. Dynamic GoI machine ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 ↦ x + x [x ↦ 2] ↦ x + 2 [x ↦ 2] 2 2 ↦ 2 + 2 [x ↦ 2] ! ! +

  86. Dynamic GoI machine ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 ↦ x + x [x ↦ 2] ↦ x + 2 [x ↦ 2] 2 2 ↦ 2 + 2 [x ↦ 2] ! ! +

  87. Dynamic GoI machine ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 ↦ x + x [x ↦ 2] ↦ x + 2 [x ↦ 2] 2 2 ↦ 2 + 2 [x ↦ 2] 4 ↦ 4 [x ↦ 2] ! ! ! +

  88. DGoIM & data-flow model • GoI graph ~ data-flow graph • preserve data-flow by suppressing certain rewrites

  89. Dynamic GoI machine ( λ x.x + x) (1 + 1) ↦ ( λ x.x + x) 2 ↦ x + x [x ↦ 2] 2 2 ↦ x + 2 [x ↦ 2] ! ! 2 C C ! + +

  90. DGoIM & data-flow model 2 ¡ Ɔ +

  91. DGoIM & data-flow model 2 ¡ Ɔ + ? : □

  92. DGoIM & data-flow model 2 ¡ Ɔ + ? : ? : □

  93. DGoIM & data-flow model 2 ¡ Ɔ + ? : ? : □

  94. DGoIM & data-flow model 2 ¡ Ɔ + ? : ? : □

  95. DGoIM & data-flow model 2 ¡ Ɔ + 2 : ? : □

  96. DGoIM & data-flow model 2 ¡ Ɔ + 2 : ? : □

  97. DGoIM & data-flow model 2 ¡ Ɔ + ? : 2 : ? : □

  98. DGoIM & data-flow model 2 ¡ Ɔ + ? : 2 : ? : □

  99. DGoIM & data-flow model 2 ¡ Ɔ + ? : 2 : ? : □

  100. DGoIM & data-flow model 2 ¡ Ɔ + 2 : 2 : ? : □

Recommend


More recommend