3 things i wish i knew when i started designing languages
play

3 things I wish I knew when I started designing languages About - PowerPoint PPT Presentation

3 things I wish I knew when I started designing languages About poor me Declarative languages Systems programming Me About the real me Flunked trig, flunked chem, never took calculus or physics. Graduated HS with a 2.8 GPA Bachelor


  1. 3 things I wish I knew when I started designing languages

  2. About “poor me” Declarative languages Systems programming Me

  3. About the real me Flunked trig, flunked chem, never took calculus or physics. Graduated HS with a 2.8 GPA Bachelor of Arts in English Literature 3 years as an editor; 2 as a DBA; 5 as a software engineer before grad school I am not nor was I ever a PL researcher

  4. This talk is about me (designing a language) 1. Misgivings : how I almost never began 2. Lucky guesses : things I got right 3. Discoveries : stuff I learned along the way

  5. Prelude: misapprehensions and misgivings how we FUD ourselves out of language design

  6. 1: The Look An audacious new language should look unique!

  7. 1: The Need

  8. 1: The Impact

  9. Lucky guesses : things I got right

  10. Lucky guess 1: context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context

  11. Every language is a DSL

  12. Thy firmness makes my circle just A domain

  13. More lucky guesses: a damn problematic domain

  14. Hiding and illuminating

  15. What is damn hard about this domain? Program correctness

  16. What is damn hard about this domain? Program correctness Debugging

  17. What is damn hard about this domain? Program correctness Debugging

  18. What is damn hard about this domain? Program correctness Debugging Maintenance and extensibility

  19. What is damn hard about this domain? Program correctness Debugging Maintenance and extensibility Heterogeneity and portability

  20. Rearranging the deckchairs... Program correctness Debugging Maintenance and extensibility

  21. Why so damn hard?

  22. The right language would focus our attention on How data flows through the system; How it is allowed to change over time ; Where and when we can control how it changes and when we can’t. Everything else, arguably, is a distraction

  23. Data Control flow Time context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context State representation

  24. Thy firmness makes my circle just An opinion A domain

  25. Many moons passed

  26. Inspiration

  27. Descriptive complexity (Immerman’99)

  28. Descriptive complexity (Immerman’99)

  29. Descriptive complexity (Immerman’99)

  30. Descriptive complexity (Immerman’99)

  31. Queries made a neat lens... create view response as select client, server, code, document from request r, page p where r.server = p.server and r.URI = p.URI;

  32. Maybe languages are really lenses SQL E r l a n g

  33. fragments Conjunctive queries ¬ σ π ⋈ LFP

  34. fragments SQL ¬ σ π ⋈ LFP

  35. fragments Datalog ¬ σ π ⋈ LFP

  36. Or maybe they are lassos Conjunctive queries Datalog SQL ¬ σ π ⋈ LFP

  37. context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context

  38. Datacentrism knowledge(“details”)

  39. Datacentrism knowledge(host1, “details”) Contexualized by location (space)

  40. Datalog cannot express Mutable state Uncertainty

  41. Datacentrism knowledge(host1, “details”, 27) Contexualized by relative order (time)

  42. Datacentrism register(host1, “current value”, 27)

  43. Datacentrism kvs(host1, key, “current value”, 27)

  44. Or maybe they are lassos Datalog ¬ σ π ⋈ LFP

  45. Or maybe they are lassos “Statelog” ¬ σ π ⋈ LFP +1

  46. Dedalus can express it all. but... Dedalus ¬ σ π ⋈ LFP +1 ND choice

  47. Paxos Dedalus allows us to say things we don’t want to say; requires us to use stuff we’d rather not use 3PC 2PC

  48. Waiting requires counting Counting requires waiting (Joe Hellerstein)

  49. ¬ Waiting requires counting Nonmontonicity required to express coordination Counting requires waiting Coordination required to tolerate nonmonotonicity

  50. Or maybe they are lassos CALM Dedalus ¬ σ π ⋈ LFP +1 ND choice

  51. Pop descriptive complexity Dedalus Halt [....] NP Coordination-free programs P “Truly monotone” dedalus Semipositive “Embarrassingly Dedalus [...] parallel” Dedalus0 Datalog

  52. Discoveries : stuff I learned along the way

  53. Languages and the design process context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context context

  54. Languages and the design process Subject Object

  55. Languages and the design process Subject Object

  56. Discoveries : stuff I learned along the way The look

  57. Discoveries : stuff I learned along the way The look it’s about the fit

  58. Discoveries : stuff I learned along the way The look it’s about the fit The need

  59. Discoveries : stuff I learned along the way The look it’s about the fit The need it’s about our need

  60. Discoveries : stuff I learned along the way The look it’s about the fit The need it’s about our need The impact well….

  61. Poor lucky me

  62. BTW: Where’s the lie?

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