CSC/ECE 517 Fall 2012/ch1 1w9 av: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 7: Line 7:


== History ==
== History ==
OODSLs cannot be spoken about without first a brief introduction to Domain Specific Languages and the Object-Oriented programming paradigm.
In a nutshell, DSL is a language that is specific to a particular domain. DSLs are different from general purpose programming languages like C++ and Java. They take advantage of the fact that there are groups of users who rather than communicating every single thing, are able to implicitly understand certain terms and notations. This makes communication much more efficient for such a group. Eg: 2 basketball fans will talk in basketball jargon. Not everyone will understand what zone defence, 3 pointers and jump ball mean. The jargon serves the specific purpose of easing communication between 2 basketball fans. Some would argue that DSLs have been around for a far longer time dating back to even before the advent of computers. Subway maps, electronics circuit diagrams all demonstrate properties of a DSL. Since then, DSLs have come a long way. Domain Specific Languages (DSLs), as they are spoken about now, have been around since the 1970's and their origin can be traced back to a tool called Draco.  Since Draco, computers have made it possible to design a whole host of other useful DSLs. Some of the more popular ones among them are SQL, Prolog, Verilog, HTML etc.
Object-Oriented Programming (OOP) is a programming paradigm that tries to apply real world principles to make programming easier. OOP has been around since the 1950's.


== Examples ==
== Examples ==

Revision as of 21:16, 14 September 2012

An OODSL is a Domain-specific language (DSL) language that exhibits characteristics that have traditionally been attributed to Object-Oriented Languages

Although OOP languages and Domain specific languages have been around for several years, OODSLs are relatively new.


Overview

History

OODSLs cannot be spoken about without first a brief introduction to Domain Specific Languages and the Object-Oriented programming paradigm.

In a nutshell, DSL is a language that is specific to a particular domain. DSLs are different from general purpose programming languages like C++ and Java. They take advantage of the fact that there are groups of users who rather than communicating every single thing, are able to implicitly understand certain terms and notations. This makes communication much more efficient for such a group. Eg: 2 basketball fans will talk in basketball jargon. Not everyone will understand what zone defence, 3 pointers and jump ball mean. The jargon serves the specific purpose of easing communication between 2 basketball fans. Some would argue that DSLs have been around for a far longer time dating back to even before the advent of computers. Subway maps, electronics circuit diagrams all demonstrate properties of a DSL. Since then, DSLs have come a long way. Domain Specific Languages (DSLs), as they are spoken about now, have been around since the 1970's and their origin can be traced back to a tool called Draco. Since Draco, computers have made it possible to design a whole host of other useful DSLs. Some of the more popular ones among them are SQL, Prolog, Verilog, HTML etc.

Object-Oriented Programming (OOP) is a programming paradigm that tries to apply real world principles to make programming easier. OOP has been around since the 1950's.

Examples

OODSL compiler for FPGA

An object oriented domain specific compiler was developed for programming Field Programmable Gate Arrays. The compiler allows the hardware programmer to make use of object-oriented style while programming. The research paper claims that this way of programming the hardware reduces the design time several times and still result in an optimal performance.


OODSL vs. non-OODSL

When defining a DSL, choosing whether to go with a OODSL or a non-OODSL depends on several factors like the domain for which it is defined, existing DSLs for that domain etc.

Advantages and Disadvantages

Conclusion

References

<references/>