eclipsecon europe 2011

20
Bringing the power of Eclipse to Digital Hardware designers Hendrik Eeckhaut Mark Christiaens Lieven Lemiengre

Upload: sigasi

Post on 17-Dec-2014

450 views

Category:

Technology


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: EclipseCon Europe 2011

Bringing the power of Eclipse to Digital

Hardware designersHendrik EeckhautMark ChristiaensLieven Lemiengre

Page 2: EclipseCon Europe 2011

2

HELLOMY NAME IS

@heeckhau

Page 3: EclipseCon Europe 2011

3

Page 4: EclipseCon Europe 2011

Eclipse

4

• Navigation

• Autocomplete

• Real-time errors

• Quick-assist/fix

• Refactoring

Page 5: EclipseCon Europe 2011

5

Page 6: EclipseCon Europe 2011

hardware development toolkit

Bring power of Eclipse to Digital Hardware Designers

Page 7: EclipseCon Europe 2011

VHDL

• 20 year old language (based on Ada)

• all shortcomings of arcane languages• verbose

• irregular

• ...

7

Page 8: EclipseCon Europe 2011

Perfect fit for ?

• Xtext looks like perfect fit:• navigation

• type time syntax checking

• linting and quick-fixes

• formatting

• But: Powerful enough for VHDL?

8

Grammar

• navigation

• type time syntax checking

• linting and quick-fixes

• formatting

Page 9: EclipseCon Europe 2011

Demo

Page 10: EclipseCon Europe 2011

Xtext experience

10

Results

Effort

EMFAntlr

Guice

Xtext

Eclipse

Page 11: EclipseCon Europe 2011

• Grammar

• Scoping

• UI

• Autocomplete

• Formatting

• Testing

• Performance

Overview

Lessons learnt ?

11

• Grammar

• Scoping

• UI

• Autocomplete

• Formatting

• Testing

• Performance

Page 12: EclipseCon Europe 2011

• Grammar

• Scoping

• UI

• Autocomplete

• Formatting

• Testing

• Performance

Grammar

• Lexer: No problems(We had ANTLR grammar to start from)

• Parser: No semantic predicates

• Keep track of the number/size of objects that are created

12

Grammar

Page 13: EclipseCon Europe 2011

• Grammar

• Scoping

• UI

• Autocomplete

• Formatting

• Testing

• Performance

Scoping

• A lot harder than expected

• Difficult to debug (declarative approach, lazy evaluation)

13

Scoping

Page 14: EclipseCon Europe 2011

• Grammar

• Scoping

• UI

• Autocomplete

• Formatting

• Testing

• Performance

User Interface

• Works as expected : outline, preferences, templates, folding, (syntax and semantic) highlighting

• Xtext team keeps adding nice improvements

• Some scalability issues: Large files are problematic in UI (n2 problems)

14

UI

Page 15: EclipseCon Europe 2011

• Grammar

• Scoping

• UI

• Autocomplete

• Formatting

• Testing

• Performance

Autocomplete

• Autocomplete based on grammar/scope is not powerful enough• autocomplete is mostly triggered for

incomplete code (incorrect context)

• extended toolkit would be better

• Most VHDL autocompletes are manually designed

15

Autocomplete

Page 16: EclipseCon Europe 2011

• Grammar

• Scoping

• UI

• Autocomplete

• Formatting

• Testing

• Performance

Formatting

• Needs a lot of customization

• A lot cleaner to implement than what e.g. Emacs does

• Priority of rules not always clear

• Custom extension for vertical alignment

16

Formatting

Page 17: EclipseCon Europe 2011

• Grammar

• Scoping

• UI

• Autocomplete

• Formatting

• Testing

• Performance

Testing

• Xtext itself contains good starting points

• Dependency injection (Guice) makes it easy to test

17

Testing

Page 18: EclipseCon Europe 2011

• Grammar

• Scoping

• UI

• Autocomplete

• Formatting

• Testing

• Performance

Performance

18

• Xtext continuously improves

• Sigasi patches: Parallel loading, Model Caching

• Memory usage OKPerformance

Page 19: EclipseCon Europe 2011

Unresolved Xtext issues

• Type system

• Opening non-project files

• Preprocessing

19

?

Page 20: EclipseCon Europe 2011

Conclusions

• Xtext is really powerful technology

• Gives great architecture/structure

• Getting started is easy

• But... still a lot of work

• Devil is in the details

20