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

Language Engineering in the Cloud

on

  • 562 views

 

Statistics

Views

Total Views
562
Views on SlideShare
554
Embed Views
8

Actions

Likes
0
Downloads
0
Comments
0

2 Embeds 8

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

Accessibility

Categories

Upload Details

Uploaded via as Apple Keynote

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • \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

Language Engineering in the Cloud Language Engineering in the Cloud Presentation Transcript

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