This page catalogs examples of Domain-Specific Languages found in the industry. Data here may be inaccurate or outdated, to get more information follow the links.
Apache Camel DSL
Type: Internal | Host Language: Java | Domain Layer: Architecture
“Apache Camel is a powerful rule based routing and mediation engine which provides a POJO based implementation of the Enterprise Integration Patterns using an extremely powerful fluent API (or declarative Java Domain Specific Language) to configure routing and mediation rules. The Domain Specific Language means that Apache Camel can support type-safe smart completion of routing rules in your IDE using regular Java code without huge amounts of XML configuration files; though Xml Configuration inside Spring is also supported.”
Example:
// lets log messages from gold customers interept(xpath("/customer[@type='gold']).to("log:customer"); from("seda:foo").to("seda:bar");
Regular Expressions
Type: Internal | Host Language: Any | Domain Layer: Fundamental
“In computing, a regular expression is a string that is used to describe or match a set of strings, according to certain syntax rules.”
Example:
.at ->matches any three-character string ending with "at", including "hat", "cat", and "bat". [hc]at ->matches "hat" and "cat". [^b]at ->matches all strings matched by .at except "bat". ^[hc]at ->matches "hat" and "cat", but only at the beginning of the string or line. [hc]at$ ->matches "hat" and "cat", but only at the end of the string or line.
sed
Type: External | Domain Layer: Fundamental
“sed is a stream editor. A stream editor is used to perform basic text transformations on an input stream (a file or input from a pipeline). While in some ways similar to an editor which permits scripted edits (such as ed), sed works by making only one pass over the input(s), and is consequently more efficient. But it is sed’s ability to filter text in a pipeline which particularly distinguishes it from other types of editors.”
Example:
#!/usr/bin/sed -nf /^$/ { p b } # Same as cat -n from now x /^$/ s/^.*$/1/ G h s/^/ / s/^ *\(......\)\n/\1 /p x s/\n.*$// /^9*$/ s/^/0/ s/.9*$/x&/ h s/^.*x// y/0123456789/1234567890/ x s/x.*$// G s/\n// h
Structured Query Language (SQL)
Type: Internal | Host Language: Any | Domain Layer: Fundamental
“[…]is a computer language designed for the retrieval and management of data in relational database management systems, database schema creation and modification, and database object access control management.”
Example:
SELECT books.title, count(*) AS Authors FROM books JOIN book_authors ON books.isbn = book_authors.isbn GROUP BY books.title;