Eclipse OMR: a modern, open-source toolkit for building language runtimes
Dynamic Languages Toolkit - Eclipse Languages Toolkit... · 2017. 11. 1. · language of their...
Transcript of Dynamic Languages Toolkit - Eclipse Languages Toolkit... · 2017. 11. 1. · language of their...
Dynamic Languages Toolkit
Presented by Andrey Tarantsov
Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 2
Dynamic Languages Toolkit
Serves as a foundation for scripting and dynamically-typed language IDEsGeneralizes JDT code and follows its architectureProvides exemplary Python, Ruby and TCL IDEs
Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 3
What’s Inside DLTK?
Runtime
Launch Debugger Console Testing
User Interface
Editor Views Wizards Preferences
Core
Model AST Search Engine Documentation
Static Checks AST DOM Refactoring Type Inference
Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 4
Structural Project Model
Structural elements:ProjectsCode folders and code librariesSource modulesTypes, Functions, VariablesPackage and import declarations
Environment configuration
Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 5
Abstract Syntax Tree
Extensible with language-specific node types and attributesUsed by completion, search and selection engines
Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 6
Type Inference
Under researchAttempt to implement base algorithm in language-independent fashionUsed to improve:
code analysiscode assistancerefactoringcode verification and error detection
Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 7
Code Analysis
Based on Core DLTK infrastructureResearch to provide common code analysis in a language-independent way
Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 8
Launch and Debug
Environment configuration based on different interpreter types and their installationsFull featured Eclipse-based debugger for all scripting languages providedRemote debugging and launchingDebug based on open DBGp protocol (xdebug.org)
Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 9
Interactive Console
Common console protocolRemote consoleCode completion & assistanceAll standard features
Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 10
Editor
Easily extensible with:FoldingIndentingFormattingCode assistance / SelectionHighlighting / Advanced highlighting
Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 11
Views
Script ExplorerOutlineCall HierarchiesNavigation (packages, types, functions)
Type HierarchyQuick Outline / Quick Hierarchy
Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 12
More UI
Project propertiesWizardsPreference pagesSearch UI
Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 13
DLTK ExtensibilityCore
Runtim
e
Model AST Search Engine Documentation
Static Checks AST DOM Refactoring Type Inference
Launch Debugger Console Testing
—Structure parser —Match locator
—Match parser
—Index requestor
—Documentation—providers
—Installation types
—Environment—configuration
—Interpreter-side—implementation
—Test framework—support
—Source parser
UI
Editor Views Wizards Preferences
—Highlighting
—Folding
—Indenting
—Code assist
—Configuration
—Interpreter-side—implementation
Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 14
Codebase Statistics
TruStudio DLTK(current state)
Common 3.8 Mb 3.4 Mb
PHP 0.9 Mb —
Python 0.8 Mb 0.3 Mb
TCL — 0.3 Mb
Ratio 4:1 10:1
Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 15
Which Languages is DLTK for?
Perfect Fit Good Fit
Don’t Fit
—Python—Ruby—Perl—PHP—VBScript—Smalltalk—ActionScript 3—ECMAScript 4—and much more…
—TCL—Lua—ECMAScript 3—Objective C—C++
—Lisp—Prolog—Scheme
Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 16
Benefits for CommunityEnd users receive high-quality Python, Ruby and TCL IDEs with modern JDT-alike features
Developers may implement support for the language of their choice with less effort
Academic organisations get a base for research (type inference, code analysis, etc)
Benefits for other Eclipse projects interested in scripting languages support
Learn from JDT generalization experience
Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 17
Current Community
Community site at www.eclipsedltk.orgComplete infrastructure: nightly and integration builds, CVS, bug trackerInterest and contributions from other projects and companies
Cisco Systems, Inc. (TCL support)Eclipse Perl IDE (e-p-i-c.sourceforge.org)
Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 18
Initial Team
xored software, Inc.Andrey PlatovAndrey SobolevAndrey TarantsovDmitriy KovalevMikhail KaluginYuri Baburov
Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 19
Deliverable Schedule
January 23, 2007Preliminary DLTK Core and TCL IDE complete
March 1, 2007DLTK Core 1.0 completePython IDE completeRuby IDE completeDocumentation complete
Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 20
Future Directions
Type inference improvementsCode analysis improvementsRefactoring improvementsJDT integrationMore languages to be supported
Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 21
Thank you!
Questions?Please take a look on screenshots following
Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 22
Screenshots
Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 23
More Screenshots
Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 24
Even More Screenshots