• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Domain Specific Languages - A superficial approach
 

Domain Specific Languages - A superficial approach

on

  • 421 views

Domain Specific Languages - A superficial approach

Domain Specific Languages - A superficial approach

Statistics

Views

Total Views
421
Views on SlideShare
421
Embed Views
0

Actions

Likes
0
Downloads
7
Comments
1

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Domain Specific Languages - A superficial approach Domain Specific Languages - A superficial approach Presentation Transcript

    • 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