90 likes | 228 Views
Towards Common Language Toolkit. Institute for System Programming of RAS, www.ispras.ru UniTESK Lab, www.unitesk.com Sergey Gomanyuk, sergg@ispras.ru. Goal. Eclipse IDE development under condition of effort minimization. Toolkit wanted !. Reuse of existing architecture
E N D
Towards Common Language Toolkit Institute for System Programming of RAS, www.ispras.ru UniTESK Lab, www.unitesk.com Sergey Gomanyuk, sergg@ispras.ru
Goal Eclipse IDE development under condition of effort minimization
Toolkit wanted ! Reuse of existing architecture Fast prototype development Still huge amount of work Effort of support and development is big enough JDT Architecture Cloning Java Development Tools (JDT) Clone C/C++ Development Tools (CDT)
Toolkit architecture decomposition Toolkit Front-end Code model: access, scalability, search IDE Features
Dynamic Language Toolkit (DLTK) • Built-in code model with fixed structure • Reuse of existing front-end capability • Programming language structure can be incompatible with built-in model structure • Built-in code model interaction support • IDE Features implementation based on built-in code model Toolkit Front-end Code model: access, scalability, search IDE Features
IMP (also known asSAFARI) • LPG parser generator • No restrictions on programming language structure • Existing front-end functionality duplication • Lack of code model scalability and search support • Language neutral IDE features implementation • LPG interfacesdependency (is going to be removed) Toolkit Front-end Code model: access, scalability, search IDE Features
Problems to solve • DLTK – code model with fixed structure • IMP – lack of code model interaction support and present-time dependency on the specific parser generator
Technique Proposed • XML DOM projection of front-end code model • No restrictions on code model structure • Reuse of existing front-end written in Java or other programming language • XML DOM is persisted in XML DB • Scalability • XQuery search • XML DOMandpredefined attributes - input for language neutral implementation of IDE features Toolkit Front-end Code model: access, scalability, search IDE Features