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 : ? : □

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