Domain Specific Languages

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    3 Favorites

    Domain Specific Languages - Presentation Transcript

    1. Domain Specific Languages Design Patterns and Methodologies Lakshan Perera (lakshan@web2media.net) Faculty of Information Technology University of Moratuwa    
    2.    
    3. “Our understanding of the nature of language and the mental processes and structures that underlies its use and acquisition” Noam Chomsky Cartesian Linguistics    
    4. What is Domain Specific Language(DSL) ?    
    5. “(DSL) is a computer language that's targeted to a particular kind of problem, rather than a general purpose language that's aimed at any kind of software problem.” Martin Fowler    
    6. th 4 Generation of Programming Languages    
    7. Evolution ➣ APT (1957 – 1958) ➣ COBOL, FORTRAN and PERL ➣ Unix Mini-languages (yacc, lex, make) ➣ Lisp (Bottom-up design)    
    8. Advantages of using DSL    
    9. Direct Involvement of Domain Expert    
    10. Improved Productivity    
    11. Runtime Efficiency    
    12. Considerations ➣ Cost ➣ Language of choice ➣ Complexity of Design ➣ Scope    
    13. Developing a DSL    
    14. Domain Analysis    
    15. Designing DSL ➣ Piggyback ➣ Language Extension ➣ Language Specialization    
    16. Implementing DSL    
    17. Internal vs External    
    18. External DSL ➣ Interpreter ➣ Compiler/application generator ➣ Preprocessor ➣ Extensible compiler or preprocessor    
    19. Internal DSL ➣ Method Chaining ➣ Expression Builder ➣ Closures ➣ Literal Collections ➣ Object Scoping ➣ Open Classes    
    20. Real World Examples    
    21. SELECT books .title, count(*) AS Authors FROM books JOIN book_authors ON books .is bn = book_authors .is bn GROUP BY books .title;    
    22. class Category < ActiveRecord::Base has_many :articles validates_presence_of :name validates_uniqueness_of :name def url_param self.name.downcase.gsub(/\\s/,'_') end end    
    23. employee John Doe compensate 500 dollars for each deal closed in the past 30 days compensate 100 dollars for each active deal that closed more than 365 days ago compensate 5 percent of gros s profits if gross profits are greater than 1,000,000 dollars compensate 3 percent of gros s profits if gross profits are greater than 2,000,000 dollars    
    24. Future (Everyone is a programmer)    
    25. Questions?    

    + Lakshan PereraLakshan Perera, 2 years ago

    custom

    920 views, 3 favs, 0 embeds more stats

    Design Patterns and methodologies for implementing more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 920
      • 920 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 3
    • Downloads 38
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories