24
Dynamic Languages Toolkit Presented by Andrey Tarantsov

Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

Dynamic Languages Toolkit

Presented by Andrey Tarantsov

Page 2: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

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

Page 3: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

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

Page 4: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

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

Page 5: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

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

Page 6: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

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

Page 7: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

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

Page 8: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

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)

Page 9: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 9

Interactive Console

Common console protocolRemote consoleCode completion & assistanceAll standard features

Page 10: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 10

Editor

Easily extensible with:FoldingIndentingFormattingCode assistance / SelectionHighlighting / Advanced highlighting

Page 11: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

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

Page 12: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 12

More UI

Project propertiesWizardsPreference pagesSearch UI

Page 13: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

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

Page 14: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

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

Page 15: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

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

Page 16: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

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

Page 17: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

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)

Page 18: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

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

Page 19: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

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

Page 20: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

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

Page 21: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 21

Thank you!

Questions?Please take a look on screenshots following

Page 22: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 22

Screenshots

Page 23: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 23

More Screenshots

Page 24: Dynamic Languages Toolkit - Eclipse Languages...and TCL IDEs with modern JDT-alike features Developers may implement support for the language of their choice with less effort Academic

Copyright © 2006, Xored Software, Inc. — Made available under the EPL v1.0 24

Even More Screenshots