programmers). In short, each of these
examples uses a Domain-Specific
A DSL is a special-purpose language, designed to encapsulate possible computations in a specific
domain. In the earlier examples of
MATLAB, SQL, Verilog, and spreadsheets, the domains would be scientific modeling, database queries and
updates, hardware circuits, and financial computations, respectively.
Considering SQL specifically, there
is nothing it does that could not be
done in Java or C, or any other general-purpose programming language.
SQL simply bundles the actions needed to interact with a database into a
THERE ARE MANY ways to give instructions to a computer:
an electrical engineer might write a MATLAB program;
a database administrator might write an SQL script;
a hardware engineer might write in Verilog; and an
accountant might write a spreadsheet with embedded
formulas. Aside from the difference in language used in
each of these examples, there is an important difference
in form and idiom. Each uses a language customized to
the job at hand, and each builds computational requests
in a form both familiar and productive for programmers
(although accountants may not think of themselves as
Article development led by
Looking at embedded DSLs.
BY ANDY GILL