Previous | Next --- Slide 18 of 69
Back to Lecture Thumbnails

Other examples of domain specific languages given by students in class: - Mathematica/MATLAB: for math/algebra - R: for statistics

These are not incredibly performant, but do better than what most programmers could do without these languages, and provide a much more productive programming interface.

SQL is a particularly good example of a language where the programmer can reason through a simple mental model of a database (specific domain) and doesn't have to think about any of the implementation details, but gets concurrency, atomicity, tuned performance, etc. all for "free" given a good implementation.


Apache Spark might be another example of the domain specific languages which is in the domain of large-scale processing in distributed systems. However, similar to Halide, a very efficient spark program needs knowledge in distributed systems as well as internal mechanisms of spark.


Tensor flow is another example of a DSP for machine learning - users describe their network structure, and tensorflow constructs the inner representation along with an optimum method of training the network on the computer's hardware


Another interesting example is Erlang, which was originally built for telecom companies with language-level concurrency semantics (message passing, threads, etc. - no external libraries needed!). This was helpful in writing code for large scale networks. A few SV companies have been using some Erlang as part of their backend since large scale server networks are still just networks!


Examples of domain-specific languages include all query languages (SQL, XPath, ...), all template languages (Django, Smarty, ...), shell scripts, data storage and exchange languages (XML, YAML, ...), and document languages like LaTex, HTML or CSS.


Also, markdown, .gitignore, VimScript, EmacsLisp and so on.