SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
DSL - Domain Specific
Languages

quinta-feira, 12 de dezembro de 13
* Soft ware Craftsman
* Web Developer TRE-AL
* Graduando Sistemas de
Informação
@toni_esteves

quinta-feira, 12 de dezembro de 13
Domain...

quinta-feira, 12 de dezembro de 13
* Visual representation of conceptual
classes or objects real world...
* Identify concepts related to system
requirements...
* It is an artifact that represents the
domain of problem...
* Should be independent of the
physical solution...
* Communication...
* UML...

quinta-feira, 12 de dezembro de 13
DSL...

quinta-feira, 12 de dezembro de 13
“DSLs are small languages, focused on a
particular aspect of a soft ware
system. You can't build a full program
with a DSL, but you often use multiple
DSLs in a system mainly written in a
general purpose language....” - Matin Fowler

quinta-feira, 12 de dezembro de 13
“DSLs are small languages, focused on a
particular aspect of a soft ware
system. You can't build a full program
with a DSL, but you often use multiple
DSLs in a system mainly written in a
general purpose language....” - Matin Fowler

WTF ?!
quinta-feira, 12 de dezembro de 13
A real aplication....

quinta-feira, 12 de dezembro de 13
quinta-feira, 12 de dezembro de 13
If you’ll design a device
driver, which
programming language
do you choose ?!

quinta-feira, 12 de dezembro de 13
Try this then, if you will
build a compiler which
programming language
you choose ?!

quinta-feira, 12 de dezembro de 13
X

quinta-feira, 12 de dezembro de 13
General Purpose
Languages

Domain Specific
Languages
X

quinta-feira, 12 de dezembro de 13
Communication Protocol

Device Drives

Games

Databases

Image Manipulations

Mobile Agents

Music

Medical

quinta-feira, 12 de dezembro de 13
Domain Specific Languages
Communication Protocol

Device Drives

Games

Databases

Image Manipulations

Mobile Agents

Music

Medical

quinta-feira, 12 de dezembro de 13
Domain Specific Languages
subroutine libraries/ API`s

Component Framework /
Object-Orientation

Communication Protocol

Device Drives

Games

Databases

Image Manipulations

Mobile Agents

Music

Medical

quinta-feira, 12 de dezembro de 13
For example...
Do you know this ?!

=SOMA(D1:D5)

quinta-feira, 12 de dezembro de 13
“ DSLs are very common in computing:
e xample s i nclude CSS, re gul ar
expressions, make, rake, ant, SQL, HQL,
many bits of Rails, expectations in
JMock, graphviz's dot language, FIT,
strut's configuration file....” Matin Fowler

quinta-feira, 12 de dezembro de 13
GUI builders can also be
seen as DSLs?

quinta-feira, 12 de dezembro de 13
Characteristics....
* Are usually small...
* Are usually declarative...
* Many DSLs are translated compiled)
into calls to APIs...
* Are divided into External DSL and
Internal DSL...
* Unambiguous...

quinta-feira, 12 de dezembro de 13
Pattern Application....
Model: It`s the problem. May be
a te xt ual e x pre ssion or a
diagram...
Plataform: Used for the execution
of the problem...
Integration: method to express the
integration of language on the
platform...
quinta-feira, 12 de dezembro de 13
Pattern Application....

quinta-feira, 12 de dezembro de 13
Method of Integration...
Reading: part of the platform
i tse lf is de dic ate d t o t h e
mastery of expressions of dsl
and execution of your goals...
Generation: a separate
procedure is used to convert the
DSL expression into something
t h a t re c o g n i ze s p l a t f o r m
natively...
quinta-feira, 12 de dezembro de 13
Method of Integration...
Craft Techniques: used when a
particular model is not enough
to solve the entire problem...

quinta-feira, 12 de dezembro de 13
DSL types...

quinta-feira, 12 de dezembro de 13
External...
* Independent of a particular programming language...
* Depends on the programming language...
* It`s benefited by existing resources in the host language...
* It`s limited by the rules of the host language restrictions...
* May be readable to people who do not know anything
about the language, but have experience in the field...
quinta-feira, 12 de dezembro de 13
Internal...
* Usually are easy to implement...
* Creator of the language has the freedom to create the
language the way you want...
* Is necessary to create a compiler for parsing, processing
syntax and mapping semantics...
* Very flexible but takes time to create and maintain the
compiler...

quinta-feira, 12 de dezembro de 13
Advantages...
* Solutions in their own language and domain...
* Increase abstraction level...
* What programming instead how programming...
* Efforts on productivity...
* Encapsulates the problem...
* Make concise code...
* Prepare code to reuse...
* Generate sufficient documentation...
quinta-feira, 12 de dezembro de 13
Drawback...
* Requires attention to high costs...
* Needs technical expertise on domain...
* Needs to bring all the relevant domain knowledge...
* Difficulty in seeking the general scope and the
construction of domain-specific languages...
* Experts must possess the relevant knowledge domain...
quinta-feira, 12 de dezembro de 13
Other topics...
* Embedded DSL...
* Language Workbench...
* Visual DSL`s...
* Language-Oriented Programming...

quinta-feira, 12 de dezembro de 13
Ending....

quinta-feira, 12 de dezembro de 13
References....
http://www.martinfowler.com/articles/languageWorkbench.html
http://www.infoq.com/presentations/domain-specific-languages
http://blog.caelum.com.br/domain-specific-languages-em-acao/
http://martinfowler.com/books/dsl.html
http://www.infoq.com/presentations/Truth-about-DSL
http://martinfowler.com/bliki/DomainSpecificLanguage.html
http://blogs.msdn.com/b/wcamb/archive/2009/08/17/algumaspalavrinhas-sobre-domain-specific-language-dsl.aspx
http://www.cesar.edu.br/docs/DSL%20CESAR.pdf

quinta-feira, 12 de dezembro de 13

Weitere ähnliche Inhalte

Andere mochten auch

осъдителна присъда кюстендилски окръжен съд
осъдителна присъда  кюстендилски окръжен съдосъдителна присъда  кюстендилски окръжен съд
осъдителна присъда кюстендилски окръжен съд
Kristiyan Petroff
 
12.euskal herriko erliebea
12.euskal herriko erliebea12.euskal herriko erliebea
12.euskal herriko erliebea
sonri15
 
Олег Мохов: Веб-компоненты
Олег Мохов: Веб-компонентыОлег Мохов: Веб-компоненты
Олег Мохов: Веб-компоненты
Yandex
 
документи които доказват ,че нямам вина!
документи които доказват ,че нямам вина!документи които доказват ,че нямам вина!
документи които доказват ,че нямам вина!
Kristiyan Petroff
 
MAPA DE RIESGO RUBEN CARRILLO
MAPA DE RIESGO RUBEN CARRILLOMAPA DE RIESGO RUBEN CARRILLO
MAPA DE RIESGO RUBEN CARRILLO
franciscomaria07
 
оправдателна присъда кос
оправдателна присъда   косоправдателна присъда   кос
оправдателна присъда кос
Kristiyan Petroff
 
Alpino noviembre
Alpino noviembreAlpino noviembre
Alpino noviembre
Daniel Rios
 
2.agente geologikoak
2.agente geologikoak2.agente geologikoak
2.agente geologikoak
sonri15
 
двойна съдебно медицинска експертиза
двойна съдебно медицинска експертизадвойна съдебно медицинска експертиза
двойна съдебно медицинска експертиза
Kristiyan Petroff
 

Andere mochten auch (20)

Subjuntivo
SubjuntivoSubjuntivo
Subjuntivo
 
Dries Braat
Dries BraatDries Braat
Dries Braat
 
Mariano historieta
Mariano historietaMariano historieta
Mariano historieta
 
осъдителна присъда кюстендилски окръжен съд
осъдителна присъда  кюстендилски окръжен съдосъдителна присъда  кюстендилски окръжен съд
осъдителна присъда кюстендилски окръжен съд
 
errefuxiatuak
errefuxiatuakerrefuxiatuak
errefuxiatuak
 
Slideshare
SlideshareSlideshare
Slideshare
 
12.euskal herriko erliebea
12.euskal herriko erliebea12.euskal herriko erliebea
12.euskal herriko erliebea
 
Олег Мохов: Веб-компоненты
Олег Мохов: Веб-компонентыОлег Мохов: Веб-компоненты
Олег Мохов: Веб-компоненты
 
документи които доказват ,че нямам вина!
документи които доказват ,че нямам вина!документи които доказват ,че нямам вина!
документи които доказват ,че нямам вина!
 
MAPA DE RIESGO RUBEN CARRILLO
MAPA DE RIESGO RUBEN CARRILLOMAPA DE RIESGO RUBEN CARRILLO
MAPA DE RIESGO RUBEN CARRILLO
 
оправдателна присъда кос
оправдателна присъда   косоправдателна присъда   кос
оправдателна присъда кос
 
Señor de los Anillos
Señor de los AnillosSeñor de los Anillos
Señor de los Anillos
 
Alpino noviembre
Alpino noviembreAlpino noviembre
Alpino noviembre
 
Recyclum
RecyclumRecyclum
Recyclum
 
EL cuento de Carlita y Toby
EL cuento de Carlita y TobyEL cuento de Carlita y Toby
EL cuento de Carlita y Toby
 
2.agente geologikoak
2.agente geologikoak2.agente geologikoak
2.agente geologikoak
 
alexis pilla
alexis pillaalexis pilla
alexis pilla
 
двойна съдебно медицинска експертиза
двойна съдебно медицинска експертизадвойна съдебно медицинска експертиза
двойна съдебно медицинска експертиза
 
Gameui english
Gameui englishGameui english
Gameui english
 
Verde
Verde Verde
Verde
 

Ähnlich wie Domain Specific Languages - A superficial approach

Bdd and dsl как способ построения коммуникации на проекте
Bdd and dsl как способ построения коммуникации на проектеBdd and dsl как способ построения коммуникации на проекте
Bdd and dsl как способ построения коммуникации на проекте
ISsoft
 
OmniOS Motivation and Design ~ LISA 2012
OmniOS Motivation and Design ~ LISA 2012OmniOS Motivation and Design ~ LISA 2012
OmniOS Motivation and Design ~ LISA 2012
Theo Schlossnagle
 
Venkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In GroovyVenkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In Groovy
deimos
 
The Network The Next Frontier for Devops ?
The Network   The Next Frontier for Devops ?The Network   The Next Frontier for Devops ?
The Network The Next Frontier for Devops ?
John Willis
 
A Survey on Domain-Specific Languages for Machine.pdfA Sur.docx
A Survey on Domain-Specific Languages for Machine.pdfA Sur.docxA Survey on Domain-Specific Languages for Machine.pdfA Sur.docx
A Survey on Domain-Specific Languages for Machine.pdfA Sur.docx
bartholomeocoombs
 
Haskell-related part of speech in ONLab
Haskell-related part of speech in ONLabHaskell-related part of speech in ONLab
Haskell-related part of speech in ONLab
Dmitry Zuikov
 

Ähnlich wie Domain Specific Languages - A superficial approach (20)

tODE: And Now for Something Completely Different...
tODE: And Now for Something Completely Different...tODE: And Now for Something Completely Different...
tODE: And Now for Something Completely Different...
 
Drools5 Community Training Module 6 Drools DSL & Spreadsheets
Drools5 Community Training Module 6 Drools DSL & SpreadsheetsDrools5 Community Training Module 6 Drools DSL & Spreadsheets
Drools5 Community Training Module 6 Drools DSL & Spreadsheets
 
Bdd and dsl как способ построения коммуникации на проекте
Bdd and dsl как способ построения коммуникации на проектеBdd and dsl как способ построения коммуникации на проекте
Bdd and dsl как способ построения коммуникации на проекте
 
BDD or DSL как способ построения коммуникации на проекте - опыт комплексного ...
BDD or DSL как способ построения коммуникации на проекте - опыт комплексного ...BDD or DSL как способ построения коммуникации на проекте - опыт комплексного ...
BDD or DSL как способ построения коммуникации на проекте - опыт комплексного ...
 
OmniOS Motivation and Design ~ LISA 2012
OmniOS Motivation and Design ~ LISA 2012OmniOS Motivation and Design ~ LISA 2012
OmniOS Motivation and Design ~ LISA 2012
 
DFDL and Apache Daffodil(tm) Overview from Owl Cyber Defense
DFDL and Apache Daffodil(tm) Overview from Owl Cyber DefenseDFDL and Apache Daffodil(tm) Overview from Owl Cyber Defense
DFDL and Apache Daffodil(tm) Overview from Owl Cyber Defense
 
groovy DSLs from beginner to expert
groovy DSLs from beginner to expertgroovy DSLs from beginner to expert
groovy DSLs from beginner to expert
 
Jmp107 Web Services
Jmp107 Web ServicesJmp107 Web Services
Jmp107 Web Services
 
Venkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In GroovyVenkat Subramaniam Building DSLs In Groovy
Venkat Subramaniam Building DSLs In Groovy
 
DSL explained _
DSL explained _DSL explained _
DSL explained _
 
The Network The Next Frontier for Devops ?
The Network   The Next Frontier for Devops ?The Network   The Next Frontier for Devops ?
The Network The Next Frontier for Devops ?
 
DSL Best Practices
DSL Best PracticesDSL Best Practices
DSL Best Practices
 
Building DSLs: Marriage of High Essence and Groovy Metaprogramming
Building DSLs: Marriage of High Essence and Groovy MetaprogrammingBuilding DSLs: Marriage of High Essence and Groovy Metaprogramming
Building DSLs: Marriage of High Essence and Groovy Metaprogramming
 
The reports of Perl's death have been greatly exaggerated
The reports of Perl's death have been greatly exaggeratedThe reports of Perl's death have been greatly exaggerated
The reports of Perl's death have been greatly exaggerated
 
A Survey on Domain-Specific Languages for Machine.pdfA Sur.docx
A Survey on Domain-Specific Languages for Machine.pdfA Sur.docxA Survey on Domain-Specific Languages for Machine.pdfA Sur.docx
A Survey on Domain-Specific Languages for Machine.pdfA Sur.docx
 
An Evening Of DSLs: Microsoft Oslo
An Evening Of DSLs: Microsoft OsloAn Evening Of DSLs: Microsoft Oslo
An Evening Of DSLs: Microsoft Oslo
 
What's DSL and what isn't
What's DSL and what isn'tWhat's DSL and what isn't
What's DSL and what isn't
 
Domain Specific Languages (DSLs) with Groovy [5th IndicThreads Conference On...
Domain Specific Languages (DSLs) with Groovy  [5th IndicThreads Conference On...Domain Specific Languages (DSLs) with Groovy  [5th IndicThreads Conference On...
Domain Specific Languages (DSLs) with Groovy [5th IndicThreads Conference On...
 
DSls in groovy
DSls in groovyDSls in groovy
DSls in groovy
 
Haskell-related part of speech in ONLab
Haskell-related part of speech in ONLabHaskell-related part of speech in ONLab
Haskell-related part of speech in ONLab
 

Mehr von Toni Esteves (6)

eSCM-CL
eSCM-CLeSCM-CL
eSCM-CL
 
Domain driven design in a nutshell
Domain driven design in a nutshellDomain driven design in a nutshell
Domain driven design in a nutshell
 
A influência do Test-Driven Design no projeto de classes e no design em siste...
A influência do Test-Driven Design no projeto de classes e no design em siste...A influência do Test-Driven Design no projeto de classes e no design em siste...
A influência do Test-Driven Design no projeto de classes e no design em siste...
 
Logica fuzzy Conceitos e Aplicações
Logica fuzzy   Conceitos e AplicaçõesLogica fuzzy   Conceitos e Aplicações
Logica fuzzy Conceitos e Aplicações
 
Inteligencia Artificial - Linguistica
Inteligencia Artificial - LinguisticaInteligencia Artificial - Linguistica
Inteligencia Artificial - Linguistica
 
Model driven development
Model driven developmentModel driven development
Model driven development
 

Kürzlich hochgeladen

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 

Kürzlich hochgeladen (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 

Domain Specific Languages - A superficial approach