SlideShare ist ein Scribd-Unternehmen logo
1 von 19
Domain Specific Languages
in Eclipse with Xtext
redefine.digital.design: Helping you deal with complexity in VHDL and Verilog.
Dr. Ir. Hendrik Eeckhaut
About
CTO at Sigasi @heeckhau
Sigasi Studio: Eclipse based IDE for
VHDL and Verilog (digital hardware design)
• Domain Specific Languages (DSL)
• Xtext
• Demo
Overview
Domain specific language
“A domain-specific language (DSL) is
a computer language
specialized to a particular application domain”
Examples:
●Regular expressions: ^com.sigasi.*$
●SQL: SELECT * FROM table_name
https://en.wikipedia.org/wiki/Domain-specific_language
Cold beer
● Optimize energy efficiency
● Lots of variants (size, components)
● Cooling algorithms
○ Straight forward
○ Exceptions and interactions
○ Different for variants
Refrigerator control
Refrigerator description
Cooling algorithm
Code Generation
C-code
Documentation
Domain specific
simulator
http://www.voelter.de/data/presentations/RefrigeratorsAndDSLs.pdf
● Understand ?
● Validate ?
● Modify ?
Why DSLs
DSLs allow to express solutions at the
abstraction level of the problem domain.
⇒ Domain experts can understand, validate, modify
and develop DSL programs
How ?
Language definition (BNF)
Lexer and Parser
Abstract Syntax Tree
Linking, scoping, types
Validation
Code generator, interpreter
DSL Development Framework
Full DSL infrastructure (parser, linker, …)
Define DSL with a grammar language
⇩
+ Rich editing support for Eclipse, IntelliJ
IDEA and web browser
Rich editing
●Syntax coloring
●Type time validation
●Content assist (autocomplete)
●Code formatting
●Find references
●Rename
●Outline
How
Language definition (BNF)
Lexer and Parser
Abstract Syntax Tree
Linking, scoping, types
Validation
Code generator, interpreter
→ Xtext grammar
→ ANTLR
→ Eclipse EMF
(partially generated)
Java
To good to be true?
●Xtext contains default implementations for linking,
validation, …
●Can be fully customized
●Wired together with Dependency Injection
(Google Guice)
Demo
Small DSL to model entities and properties
1. datatype String
2.
3. entity Blog {
4. title: String
5. many posts: Post
6. }
7.
8. entity HasAuthor {
9. author: String
10. }
11.
12. entity Post extends HasAuthor {
13. title: String
14. content: String
15. many comments: Comment
16. }
17.
18. entity Comment extends HasAuthor {
19. content: String
20. }
Demo
1. datatype String
2.
3. entity Blog {
4. title: String
5. many posts: Post
6. }
7.
8. entity HasAuthor {
9. author: String
10. }
11.
12. entity Post extends HasAuthor {
13. title: String
14. content: String
15. many comments: Comment
16. }
17.
18. entity Comment extends HasAuthor {
19. content: String
20. }
elements : Type
(datatype or entity)
features : Feature
Domainmodel
Demo
1. datatype String
2.
3. entity Blog {
4. title: String
5. many posts: Post
6. }
7.
8. entity HasAuthor {
9. author: String
10. }
11.
12. entity Post extends HasAuthor {
13. title: String
14. content: String
15. many comments: Comment
16. }
17.
18. entity Comment extends HasAuthor {
19. content: String
20. }
Live Demo
Why Xtext
Very mature and complete system
Statically typed AST model
Open Source
Outro
DSLs?
●Very powerful
●Lots of work
Xtext
●Recommended DSL development framework
Sigasi is hiring: www.sigasi.com/careers
Hands on
Download Eclipse IDE for Java and DSL Developers
https://www.eclipse.org/downloads/
Start 15 Minutes tutorial from
https://eclipse.org/Xtext/documentation/102_domainmodelwalkthrough.html

Weitere ähnliche Inhalte

Was ist angesagt?

Jess Ingrassellino [InfluxData] | How to Get Data Into InfluxDB | InfluxDays ...
Jess Ingrassellino [InfluxData] | How to Get Data Into InfluxDB | InfluxDays ...Jess Ingrassellino [InfluxData] | How to Get Data Into InfluxDB | InfluxDays ...
Jess Ingrassellino [InfluxData] | How to Get Data Into InfluxDB | InfluxDays ...InfluxData
 
Cloud Native Logging / Fluentd Summit Tokyo
Cloud Native Logging / Fluentd Summit TokyoCloud Native Logging / Fluentd Summit Tokyo
Cloud Native Logging / Fluentd Summit TokyoEduardo Silva Pereira
 
NoSQLEU: Different NoSQL tools in Production
NoSQLEU: Different NoSQL tools in ProductionNoSQLEU: Different NoSQL tools in Production
NoSQLEU: Different NoSQL tools in ProductionBit Zesty
 
Collaborative environment with data science notebook
Collaborative environment with data science notebook Collaborative environment with data science notebook
Collaborative environment with data science notebook Moon Soo Lee
 
IoT Data Connector Fluent Bit
IoT Data Connector Fluent BitIoT Data Connector Fluent Bit
IoT Data Connector Fluent BitToru Takahashi
 
Developing for Glass & Alfresco
Developing for Glass & AlfrescoDeveloping for Glass & Alfresco
Developing for Glass & AlfrescoJared Ottley
 
Synchronization with CouchDB and PouchDB
Synchronization with CouchDB and PouchDBSynchronization with CouchDB and PouchDB
Synchronization with CouchDB and PouchDBEU Edge
 
PGDay.Amsterdam 2018 - Stefanie Stoelting - PostgreSQL As Data Integration Tool
PGDay.Amsterdam 2018 - Stefanie Stoelting - PostgreSQL As Data Integration ToolPGDay.Amsterdam 2018 - Stefanie Stoelting - PostgreSQL As Data Integration Tool
PGDay.Amsterdam 2018 - Stefanie Stoelting - PostgreSQL As Data Integration ToolPGDay.Amsterdam
 
Dominik Obermaier and Anja Helmbrecht-Schaar [HiveMQ] | IIoT Monitoring with ...
Dominik Obermaier and Anja Helmbrecht-Schaar [HiveMQ] | IIoT Monitoring with ...Dominik Obermaier and Anja Helmbrecht-Schaar [HiveMQ] | IIoT Monitoring with ...
Dominik Obermaier and Anja Helmbrecht-Schaar [HiveMQ] | IIoT Monitoring with ...InfluxData
 
StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...
StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...
StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...Álvaro Agea Herradón
 
Kristina Robinson [InfluxData] | Understand and Visualize Your Data with Infl...
Kristina Robinson [InfluxData] | Understand and Visualize Your Data with Infl...Kristina Robinson [InfluxData] | Understand and Visualize Your Data with Infl...
Kristina Robinson [InfluxData] | Understand and Visualize Your Data with Infl...InfluxData
 
Python Pants Build System for Large Codebases
Python Pants Build System for Large CodebasesPython Pants Build System for Large Codebases
Python Pants Build System for Large CodebasesAngad Singh
 

Was ist angesagt? (15)

Log forwarding at Scale
Log forwarding at ScaleLog forwarding at Scale
Log forwarding at Scale
 
Jess Ingrassellino [InfluxData] | How to Get Data Into InfluxDB | InfluxDays ...
Jess Ingrassellino [InfluxData] | How to Get Data Into InfluxDB | InfluxDays ...Jess Ingrassellino [InfluxData] | How to Get Data Into InfluxDB | InfluxDays ...
Jess Ingrassellino [InfluxData] | How to Get Data Into InfluxDB | InfluxDays ...
 
Cloud Native Logging / Fluentd Summit Tokyo
Cloud Native Logging / Fluentd Summit TokyoCloud Native Logging / Fluentd Summit Tokyo
Cloud Native Logging / Fluentd Summit Tokyo
 
NoSQLEU: Different NoSQL tools in Production
NoSQLEU: Different NoSQL tools in ProductionNoSQLEU: Different NoSQL tools in Production
NoSQLEU: Different NoSQL tools in Production
 
Collaborative environment with data science notebook
Collaborative environment with data science notebook Collaborative environment with data science notebook
Collaborative environment with data science notebook
 
IoT Data Connector Fluent Bit
IoT Data Connector Fluent BitIoT Data Connector Fluent Bit
IoT Data Connector Fluent Bit
 
Fluent-bit
Fluent-bitFluent-bit
Fluent-bit
 
Developing for Glass & Alfresco
Developing for Glass & AlfrescoDeveloping for Glass & Alfresco
Developing for Glass & Alfresco
 
Synchronization with CouchDB and PouchDB
Synchronization with CouchDB and PouchDBSynchronization with CouchDB and PouchDB
Synchronization with CouchDB and PouchDB
 
PostgreSQL As Data Integration Tool
PostgreSQL As Data Integration ToolPostgreSQL As Data Integration Tool
PostgreSQL As Data Integration Tool
 
PGDay.Amsterdam 2018 - Stefanie Stoelting - PostgreSQL As Data Integration Tool
PGDay.Amsterdam 2018 - Stefanie Stoelting - PostgreSQL As Data Integration ToolPGDay.Amsterdam 2018 - Stefanie Stoelting - PostgreSQL As Data Integration Tool
PGDay.Amsterdam 2018 - Stefanie Stoelting - PostgreSQL As Data Integration Tool
 
Dominik Obermaier and Anja Helmbrecht-Schaar [HiveMQ] | IIoT Monitoring with ...
Dominik Obermaier and Anja Helmbrecht-Schaar [HiveMQ] | IIoT Monitoring with ...Dominik Obermaier and Anja Helmbrecht-Schaar [HiveMQ] | IIoT Monitoring with ...
Dominik Obermaier and Anja Helmbrecht-Schaar [HiveMQ] | IIoT Monitoring with ...
 
StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...
StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...
StratioDeep: an Integration Layer Between Spark and Cassandra - Spark Summit ...
 
Kristina Robinson [InfluxData] | Understand and Visualize Your Data with Infl...
Kristina Robinson [InfluxData] | Understand and Visualize Your Data with Infl...Kristina Robinson [InfluxData] | Understand and Visualize Your Data with Infl...
Kristina Robinson [InfluxData] | Understand and Visualize Your Data with Infl...
 
Python Pants Build System for Large Codebases
Python Pants Build System for Large CodebasesPython Pants Build System for Large Codebases
Python Pants Build System for Large Codebases
 

Ähnlich wie Domain specific languages in eclipse with Xtext (Zeus, UGent)

ASP.NET MVC Workshop for Women in Technology
ASP.NET MVC Workshop for Women in TechnologyASP.NET MVC Workshop for Women in Technology
ASP.NET MVC Workshop for Women in TechnologyMałgorzata Borzęcka
 
I Just Want to Run My Code: Waypoint, Nomad, and Other Things
I Just Want to Run My Code: Waypoint, Nomad, and Other ThingsI Just Want to Run My Code: Waypoint, Nomad, and Other Things
I Just Want to Run My Code: Waypoint, Nomad, and Other ThingsMichael Lange
 
Scalable Clusters On Demand
Scalable Clusters On DemandScalable Clusters On Demand
Scalable Clusters On DemandBogdan Kyryliuk
 
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...Maarten Balliauw
 
OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...
OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...
OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...Alkacon Software GmbH & Co. KG
 
Document Object Model
Document Object ModelDocument Object Model
Document Object Modelchomas kandar
 
Document Object Model
Document Object ModelDocument Object Model
Document Object Modelchomas kandar
 
Deep Dive on REX-Ray, libStorage and the Container Storage Interface - Clinto...
Deep Dive on REX-Ray, libStorage and the Container Storage Interface - Clinto...Deep Dive on REX-Ray, libStorage and the Container Storage Interface - Clinto...
Deep Dive on REX-Ray, libStorage and the Container Storage Interface - Clinto...{code} by Dell EMC
 
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)lennartkats
 
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...Maarten Balliauw
 
Azure Data Studio Extension Development
Azure Data Studio Extension DevelopmentAzure Data Studio Extension Development
Azure Data Studio Extension DevelopmentDrew Skwiers-Koballa
 
Bdd Net Frameworks
Bdd Net FrameworksBdd Net Frameworks
Bdd Net Frameworkshdgarcia
 
Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016Marco Breveglieri
 
Netflix oss season 1 episode 3
Netflix oss season 1 episode 3 Netflix oss season 1 episode 3
Netflix oss season 1 episode 3 Ruslan Meshenberg
 
Second Skin: Real-Time Retheming a Legacy Web Application with Diazo in the C...
Second Skin: Real-Time Retheming a Legacy Web Application with Diazo in the C...Second Skin: Real-Time Retheming a Legacy Web Application with Diazo in the C...
Second Skin: Real-Time Retheming a Legacy Web Application with Diazo in the C...Chris Shenton
 
Salesforce Apex Hours : Node red for salesforce
Salesforce Apex Hours : Node red for salesforceSalesforce Apex Hours : Node red for salesforce
Salesforce Apex Hours : Node red for salesforceAmit Chaudhary
 
Linq 1224887336792847 9
Linq 1224887336792847 9Linq 1224887336792847 9
Linq 1224887336792847 9google
 
Docker data science pipeline
Docker data science pipelineDocker data science pipeline
Docker data science pipelineDataWorks Summit
 

Ähnlich wie Domain specific languages in eclipse with Xtext (Zeus, UGent) (20)

Dust.js
Dust.jsDust.js
Dust.js
 
ASP.NET MVC Workshop for Women in Technology
ASP.NET MVC Workshop for Women in TechnologyASP.NET MVC Workshop for Women in Technology
ASP.NET MVC Workshop for Women in Technology
 
I Just Want to Run My Code: Waypoint, Nomad, and Other Things
I Just Want to Run My Code: Waypoint, Nomad, and Other ThingsI Just Want to Run My Code: Waypoint, Nomad, and Other Things
I Just Want to Run My Code: Waypoint, Nomad, and Other Things
 
Scalable Clusters On Demand
Scalable Clusters On DemandScalable Clusters On Demand
Scalable Clusters On Demand
 
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
NDC Sydney 2019 - Microservices for building an IDE – The innards of JetBrain...
 
OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...
OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...
OpenCms Days 2012 - OpenCms 8.5: Creating "in place" editable pages with the ...
 
Document Object Model
Document Object ModelDocument Object Model
Document Object Model
 
Document Object Model
Document Object ModelDocument Object Model
Document Object Model
 
Deep Dive on REX-Ray, libStorage and the Container Storage Interface - Clinto...
Deep Dive on REX-Ray, libStorage and the Container Storage Interface - Clinto...Deep Dive on REX-Ray, libStorage and the Container Storage Interface - Clinto...
Deep Dive on REX-Ray, libStorage and the Container Storage Interface - Clinto...
 
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)
Domain-Specific Languages for Composable Editor Plugins (LDTA 2009)
 
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
ConFoo Montreal - Microservices for building an IDE - The innards of JetBrain...
 
Shaun-Ellis-feb25
Shaun-Ellis-feb25Shaun-Ellis-feb25
Shaun-Ellis-feb25
 
Azure Data Studio Extension Development
Azure Data Studio Extension DevelopmentAzure Data Studio Extension Development
Azure Data Studio Extension Development
 
Bdd Net Frameworks
Bdd Net FrameworksBdd Net Frameworks
Bdd Net Frameworks
 
Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016Web Development with Delphi and React - ITDevCon 2016
Web Development with Delphi and React - ITDevCon 2016
 
Netflix oss season 1 episode 3
Netflix oss season 1 episode 3 Netflix oss season 1 episode 3
Netflix oss season 1 episode 3
 
Second Skin: Real-Time Retheming a Legacy Web Application with Diazo in the C...
Second Skin: Real-Time Retheming a Legacy Web Application with Diazo in the C...Second Skin: Real-Time Retheming a Legacy Web Application with Diazo in the C...
Second Skin: Real-Time Retheming a Legacy Web Application with Diazo in the C...
 
Salesforce Apex Hours : Node red for salesforce
Salesforce Apex Hours : Node red for salesforceSalesforce Apex Hours : Node red for salesforce
Salesforce Apex Hours : Node red for salesforce
 
Linq 1224887336792847 9
Linq 1224887336792847 9Linq 1224887336792847 9
Linq 1224887336792847 9
 
Docker data science pipeline
Docker data science pipelineDocker data science pipeline
Docker data science pipeline
 

Mehr von Sigasi

The future of teaching hdl with Sigasi Studio
The future of teaching hdl with Sigasi StudioThe future of teaching hdl with Sigasi Studio
The future of teaching hdl with Sigasi StudioSigasi
 
Creating your own coding style
Creating your own coding styleCreating your own coding style
Creating your own coding styleSigasi
 
Shortening the feedback loop: faster and better code development
Shortening the feedback loop: faster and better code developmentShortening the feedback loop: faster and better code development
Shortening the feedback loop: faster and better code developmentSigasi
 
Plc2 2015 first time right coding
Plc2 2015 first time right codingPlc2 2015 first time right coding
Plc2 2015 first time right codingSigasi
 
Plc2 2015 your own ide
Plc2 2015 your own idePlc2 2015 your own ide
Plc2 2015 your own ideSigasi
 
Graphical Programming is Dead
Graphical Programming is DeadGraphical Programming is Dead
Graphical Programming is DeadSigasi
 
Building a software business — lessons learned
Building a software business — lessons learnedBuilding a software business — lessons learned
Building a software business — lessons learnedSigasi
 
EclipseCon Europe 2011
EclipseCon Europe 2011EclipseCon Europe 2011
EclipseCon Europe 2011Sigasi
 

Mehr von Sigasi (8)

The future of teaching hdl with Sigasi Studio
The future of teaching hdl with Sigasi StudioThe future of teaching hdl with Sigasi Studio
The future of teaching hdl with Sigasi Studio
 
Creating your own coding style
Creating your own coding styleCreating your own coding style
Creating your own coding style
 
Shortening the feedback loop: faster and better code development
Shortening the feedback loop: faster and better code developmentShortening the feedback loop: faster and better code development
Shortening the feedback loop: faster and better code development
 
Plc2 2015 first time right coding
Plc2 2015 first time right codingPlc2 2015 first time right coding
Plc2 2015 first time right coding
 
Plc2 2015 your own ide
Plc2 2015 your own idePlc2 2015 your own ide
Plc2 2015 your own ide
 
Graphical Programming is Dead
Graphical Programming is DeadGraphical Programming is Dead
Graphical Programming is Dead
 
Building a software business — lessons learned
Building a software business — lessons learnedBuilding a software business — lessons learned
Building a software business — lessons learned
 
EclipseCon Europe 2011
EclipseCon Europe 2011EclipseCon Europe 2011
EclipseCon Europe 2011
 

Kürzlich hochgeladen

A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 

Kürzlich hochgeladen (20)

A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 

Domain specific languages in eclipse with Xtext (Zeus, UGent)

  • 1. Domain Specific Languages in Eclipse with Xtext redefine.digital.design: Helping you deal with complexity in VHDL and Verilog. Dr. Ir. Hendrik Eeckhaut
  • 2. About CTO at Sigasi @heeckhau Sigasi Studio: Eclipse based IDE for VHDL and Verilog (digital hardware design)
  • 3. • Domain Specific Languages (DSL) • Xtext • Demo Overview
  • 4. Domain specific language “A domain-specific language (DSL) is a computer language specialized to a particular application domain” Examples: ●Regular expressions: ^com.sigasi.*$ ●SQL: SELECT * FROM table_name https://en.wikipedia.org/wiki/Domain-specific_language
  • 5. Cold beer ● Optimize energy efficiency ● Lots of variants (size, components) ● Cooling algorithms ○ Straight forward ○ Exceptions and interactions ○ Different for variants
  • 6. Refrigerator control Refrigerator description Cooling algorithm Code Generation C-code Documentation Domain specific simulator http://www.voelter.de/data/presentations/RefrigeratorsAndDSLs.pdf ● Understand ? ● Validate ? ● Modify ?
  • 7. Why DSLs DSLs allow to express solutions at the abstraction level of the problem domain. ⇒ Domain experts can understand, validate, modify and develop DSL programs
  • 8. How ? Language definition (BNF) Lexer and Parser Abstract Syntax Tree Linking, scoping, types Validation Code generator, interpreter
  • 9. DSL Development Framework Full DSL infrastructure (parser, linker, …) Define DSL with a grammar language ⇩ + Rich editing support for Eclipse, IntelliJ IDEA and web browser
  • 10. Rich editing ●Syntax coloring ●Type time validation ●Content assist (autocomplete) ●Code formatting ●Find references ●Rename ●Outline
  • 11. How Language definition (BNF) Lexer and Parser Abstract Syntax Tree Linking, scoping, types Validation Code generator, interpreter → Xtext grammar → ANTLR → Eclipse EMF (partially generated) Java
  • 12. To good to be true? ●Xtext contains default implementations for linking, validation, … ●Can be fully customized ●Wired together with Dependency Injection (Google Guice)
  • 13. Demo Small DSL to model entities and properties 1. datatype String 2. 3. entity Blog { 4. title: String 5. many posts: Post 6. } 7. 8. entity HasAuthor { 9. author: String 10. } 11. 12. entity Post extends HasAuthor { 13. title: String 14. content: String 15. many comments: Comment 16. } 17. 18. entity Comment extends HasAuthor { 19. content: String 20. }
  • 14. Demo 1. datatype String 2. 3. entity Blog { 4. title: String 5. many posts: Post 6. } 7. 8. entity HasAuthor { 9. author: String 10. } 11. 12. entity Post extends HasAuthor { 13. title: String 14. content: String 15. many comments: Comment 16. } 17. 18. entity Comment extends HasAuthor { 19. content: String 20. } elements : Type (datatype or entity) features : Feature Domainmodel
  • 15. Demo 1. datatype String 2. 3. entity Blog { 4. title: String 5. many posts: Post 6. } 7. 8. entity HasAuthor { 9. author: String 10. } 11. 12. entity Post extends HasAuthor { 13. title: String 14. content: String 15. many comments: Comment 16. } 17. 18. entity Comment extends HasAuthor { 19. content: String 20. }
  • 17. Why Xtext Very mature and complete system Statically typed AST model Open Source
  • 18. Outro DSLs? ●Very powerful ●Lots of work Xtext ●Recommended DSL development framework Sigasi is hiring: www.sigasi.com/careers
  • 19. Hands on Download Eclipse IDE for Java and DSL Developers https://www.eclipse.org/downloads/ Start 15 Minutes tutorial from https://eclipse.org/Xtext/documentation/102_domainmodelwalkthrough.html