• Save
Language Engineering in the Cloud
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
596
On Slideshare
588
From Embeds
8
Number of Embeds
2

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 8

http://www.linkedin.com 6
https://www.linkedin.com 2

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • What I brought to the table\nIDE compulsory\n
  • intimate connection between the two\nboth from user and developer perspective\n
  • Language workbenches combine interactive definition and use of DSLs\n
  • Scenario: scoping rules!\n
  • Scenario: scoping rules!\n
  • \n
  • After four years, I completed my PhD and went on to do a 2 year postdoc\n
  • \n
  • \n
  • \n
  • Accel/Atlassian\n
  • \n
  • 30 ppl; half developers\n\nproducts: strategies, website, UX, support\n
  • \n
  • \n
  • 2 areas: features based on the connectiveness of the cloud, and features familiar from desktop IDEs\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • IaaS: scaling, pay-by-use\n
  • IaaS: scaling, pay-by-use\n
  • IaaS: scaling, pay-by-use\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • departure from DSL approach\nefficient: caching\n
  • \n
  • \n
  • \n
  • \n
  • NodeJS: single-threaded; openshift: computational power per user!\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n

Transcript

  • 1. Language Engineering in the Cloud Lennart Kats @lennartcl
  • 2. 9
  • 3. <utrecht>
  • 4. Language Engineering ResearchCompilersDomain-specific languagesLanguage extensionsParsers
  • 5. Spoofax
  • 6. Spoofax“DOES THE TYPE CHECKER CATCH THIS?”
  • 7. Spoofax“DOES THIS HYPERLINK POINT TO THE RIGHT PLACE?”
  • 8. Fast-growing startup: Cloud9 IDE
  • 9. Venture capital30 employees2 offices
  • 10. Core Product
  • 11. OrganizationFront-end ProductsBack-end SupportLanguage Marketing & business Node.js development
  • 12. Open Source
  • 13. GoalCreate the best (JavaScript) IDE out there!
  • 14. Key Features
  • 15. Collab
  • 16. Collab
  • 17. Integration with Cloud Services
  • 18. VIM Mode
  • 19. Offline Mode
  • 20. Terminal Access
  • 21. Language Support
  • 22. Cloud9 Architecture
  • 23. 300.000 linesof JavaScript
  • 24. Everything is a plugin file treesearch JS completion terminal file system save
  • 25. Plugin components Client-side JS Server-side JS XML for UI
  • 26. Evented I/O for JavaScriptV8 JavaScript engineEverything asynchronousNo threads
  • 27. Scaling
  • 28. ELBProxy1 Proxy2 Proxy3IDE1 IDE2 IDE3
  • 29. XaaS in Cloud9 BrowserDeveloper IDE SaaS Red Hat PaaS Amazon IaaS
  • 30. ELB Proxy1 Proxy2 Proxy3 IDE1 IDE2 IDE3Gear1 Gear2 Gear3 ... Gear n
  • 31. LanguageInfrastructure
  • 32. Cloud9Language Services DEMO
  • 33. Editor, plugin Cloud9 architecture
  • 34. UI, Events, Language FoundationWebWorkersEditor, plugin Cloud9 architecture
  • 35. Interface base_handler UI, Events, Language FoundationWebWorkersEditor, plugin Cloud9 architecture
  • 36. Implementation Language services Interface base_handler UI, Events, Language Foundation WebWorkers Editor, plugin Cloud9 architecture
  • 37. base_handler• handlesLanguage()• parse()• analyze()• outline()• complete()• ...
  • 38. Language Foundation All language services are functional and described by a single functionThe Spoofax Language Workbench, OOPSLA 2009
  • 39. Language Foundation All language services are technology-agnosticfindNode(), getPos()Accelerating the creation of customized, language-Specific IDEsin Eclipse, Charles et al., OOPSLA 2009
  • 40. Language Foundation All language services asynchronous WebWorkers or Client/Server I/O
  • 41. Language Foundation Concise specification using generic traversalsStratego/XT 0.17. A language and toolset for programtransformation, Bravenboer et al., SCP 2008
  • 42. Treehugger.js• Based on Stratego/XT• 100% JavaScript• Use any parser• Efficient
  • 43. Implementation Language services Interface base_handler UI, Events, Language Foundation WebWorkers Editor, plugin Cloud9 architecture
  • 44. Parser JS ServicesImplementation treehugger.js Interface base_handler UI, Events, Language Foundation WebWorkers Editor, plugin Cloud9 architecture
  • 45. Treehugger.JS DEMO
  • 46. Computational ModelServer-side:- CPU resources expensiveClient-side:- CPU resources “free”!
  • 47. VMs for everyone!
  • 48. What’s NextWhole-project analyses• Incremental• Distributed• Multi-user
  • 49. What’s NextParser generators• Incremental• Recovery• General
  • 50. What’s NextJava IDE• High expectations of Java IDEs• Can’t we reuse existing IDEs?• OpenShift to the rescue
  • 51. What’s NextCloud9 Extension Store• Extend Cloud9 for tools, languages• GitHub
  • 52. Community Reachout• Open source, GitHub• R&D• Graduate students• Education• Third-party extensions
  • 53. Conclusion Open-source OpenShiftAdvanced language analysis expanding to server and other languages Lennart C. L. Kats @lennartcl http://lennart.cl