343:, is a DSL that is implemented as a library in a "host" programming language. The embedded domain-specific language leverages the syntax, semantics and runtime environment (sequencing, conditionals, iteration, functions, etc.) and adds domain-specific primitives that allow programmers to use the "host" programming language to create programs that generate code in the "target" programming language. Multiple eDSLs can easily be combined into a single program and the facilities of the host language can be used to extend an existing eDSL. Other possible advantages using an eDSL are improved
1122:
624:. Most of functions in that language after compiling in fact calls runtime functions written in language specific for targeted platform, so their final implementation is not visible to user. The language primarily serves to make it easy for anyone to pick up the language and develop a game, and thanks to GM runtime which handles main game loop and keeps implementation of called functions, few lines of code is required for simplest game, instead of thousands.
3252:
654:-compatible image processing filter plug-ins; FilterMeister runs as a Photoshop plug-in itself and it can load and execute scripts or compile and export them as independent plug-ins. Although the FilterMeister language reproduces a significant portion of the C language and function library, it contains only those features which can be used within the context of Photoshop plug-ins and adds a number of specific features only useful in this specific domain.
3262:
3272:
1613:
284:
namely, putting holes in things. A General
Purpose Language is a complete workbench, with a variety of tools intended for performing a variety of tasks. Domain-specific languages should be used by programmers who, looking at their current workbench, realize they need a better drill and find that a particular domain-specific language provides exactly that.
125:
problem or solution to be expressed more clearly than an existing language would allow and the type of problem in question reappears sufficiently often. Pragmatically, a DSL may be specialized to a particular problem domain, a particular problem representation technique, a particular solution technique, or other aspects of a domain.
635:'s associated scripting language is another example of a domain-specific language for data-driven websites. This scripting language is used to weave together languages and services such as Java, .NET, C++, SMS, email, email servers, http, ftp, exchange, directory services, and file systems for use in websites.
283:
To summarize, an analogy might be useful: a Very Little
Language is like a knife, which can be used in thousands of different ways, from cutting food to cutting down trees. A domain-specific language is like an electric drill: it is a powerful tool with a wide variety of uses, but a specific context,
133:
A domain-specific language is created specifically to solve problems in a particular domain and is not intended to be able to solve problems outside of it (although that may be technically possible). In contrast, general-purpose languages are created to solve problems in many domains. The domain can
240:
presents an interesting case: it can be deemed a domain-specific language because it is specific to a specific domain (in SQL's case, accessing and managing relational databases), and is often called from another application, but SQL has more keywords and functions than many scripting languages, and
124:
considers the creation of special-purpose languages for expressing problems as standard part of the problem-solving process. Creating a domain-specific language (with software to support it), rather than reusing an existing language, can be worthwhile if the language allows a particular type of
83:
The line between general-purpose languages and domain-specific languages is not always sharp, as a language may have specialized features for a particular domain but be applicable more broadly, or conversely may in principle be capable of broad application but in practice used primarily for a
1057:
is an open-source software framework for developing programming languages and domain-specific languages (DSLs). Unlike standard parser generators, Xtext generates not only a parser but also a class model for the abstract syntax tree. In addition, it provides a fully featured, customizable
962:
Domain-specific languages allow solutions to be expressed in the idiom and at the level of abstraction of the problem domain. The idea is that domain experts themselves may understand, validate, modify, and often even develop domain-specific language programs. However, this is seldom the
199:
is somewhat blurred, but domain-specific languages often lack low-level functions for filesystem access, interprocess control, and other functions that characterize full-featured programming languages, scripting or otherwise. Many domain-specific languages do not compile to
973:
Domain-specific languages can help to shift the development of business information systems from traditional software developers to the typically larger group of domain-experts who (despite having less technical expertise) have a deeper knowledge of the
1064:
is a cross-platform language toolchain including native code, JIT and
Javascript compiler, IDE (in addition to supporting Emacs, Vim, VSCode and others) and command line tools designed to accommodate creating both domain-specific and general purpose
413:
Domain-specific languages which are embedded into user applications (e.g., macro languages within spreadsheets) and which are (1) used to execute code that is written by users of the application, (2) dynamically generated by the application, or (3)
261:, specifically designed for transforming one XML graph into another, which has been extended since its inception to allow (particularly in its 2.0 version) for various forms of filesystem interaction, string and date manipulation, and data typing.
244:
Further blurring this line, many domain-specific languages have exposed APIs, and can be accessed from other programming languages without breaking the flow of execution or calling a separate process, and can thus operate as programming libraries.
167:
Domain-specific languages are languages (or often, declared syntaxes or grammars) with very specific goals in design and implementation. A domain-specific language can be one of a visual diagramming language, such as those created by the
815:
code meaning C had to be learned and properly applied, while UnrealScript was optimized for ease of use and efficiency. Similarly, the development of more recent games introduced their own specific languages, one more common example is
851:
and developers to work with and understand the same representation of the business logic. Most rules engines provide both an approach to simplifying the control structures for business logic (for example, using declarative rules or
915:
is a language designed to define test cases to check the behavior of software, without specifying how that behavior is implemented. It is meant to be read and used by non-technical users using a natural language syntax and a
1040:
which allows overcoming the limits of language parsers and building DSL editors, such as ones with tables and diagrams. It implements language-oriented programming. MPS combines an environment for language definition, a
418:
Many domain-specific languages can be used in more than one way. DSL code embedded in a host language may have special syntax support, such as regexes in sed, AWK, Perl or JavaScript, or may be passed as strings.
1051:
is a language workbench for the efficient development of domain-specific languages. It processes an extended grammar format that defines the DSL and generates Java components for processing the DSL documents.
690:. Domain-specific language could possibly provide a robust set of tools for efficient software engineering. Such tools are beginning to make their way into the development of critical software systems.
253:
Some domain-specific languages expand over time to include full-featured programming tools, which further complicates the question of whether a language is domain-specific or not. A good example is the
427:
Adopting a domain-specific language approach to software engineering involves both risks and opportunities. The well-designed domain-specific language manages to find the proper balance between these.
920:. The tests defined with Gherkin must then be implemented in a general programming language. Then, the steps in a Gherkin program acts as a syntax for method invocation accessible to non-developers.
1085:
241:
is often thought of as a language in its own right, perhaps because of the prevalence of database manipulation in programming and the amount of mastery required to be an expert in the language.
328:
Domain-specific languages which are implemented using programming language macro systems, and which are converted or expanded into a host general purpose language at compile-time or realtime
769:
Besides parsing domain-specific languages, metacompilers are useful for generating a wide range of software engineering and analysis tools. The meta-compiler methodology is often found in
642:(CFML) includes a set of tags that can be used in ColdFusion pages to interact with data sources, manipulate data, and display output. CFML tag syntax is similar to HTML element syntax.
581:
896:
for a domain-specific language such as JavaScript for web applications, HTML for documentation, C++ for high-performance code, etc. This is done by cross-language frameworks such as
844:
and others provide support for DSLs aimed to support various problem domains. DTRules goes so far as to define an interface for the use of multiple DSLs within a rule set.
305:
are typically implemented within a host language as a library and tend to be limited to the syntax of the host language, though this depends on host language capabilities.
612:
is a domain-specific language targeted at novice programmers to easily be able to learn programming. While the language serves as a blend of multiple languages including
1011:
Proliferation of similar non-standard domain-specific languages, for example, a DSL used within one insurance company versus a DSL used within another insurance company.
398:, to perform a specific function, often returning the results of operation to the "host" programming language for further processing; generally, an interpreter or
2117:
1485:
597:
72:. Special-purpose computer languages have always existed in the computer age, but the term "domain-specific language" has become more popular due to the rise of
698:
1988:
1306:
713:
to check program properties against the specification, and an invariant generator that automatically constructs invariants based on the requirements.
1259:
Felleisen, Matthias; Findler, Robert Bruce; Flatt, Matthew; Krishnamurthi, Shriram; Barzilay, Eli; McCarthy, Jay; Tobin-Hochstadt, Sam (March 2018).
39:(GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging from widely used languages for common domains, such as
847:
The purpose of business rules engines is to define a representation of business logic in as human-readable fashion as possible. This allows both
403:
1017:
Increased difficulty of integrating the DSL with other components of the IT system (as compared to integrating with a general-purpose language).
3296:
1867:
693:
The
Software Cost Reduction Toolkit is an example of this. The toolkit is a suite of utilities including a specification editor to create a
159:. The boundaries between these concepts are quite blurry, much like the boundary between scripting languages and general-purpose languages.
3301:
2110:
1048:
2288:
1980:
188:
utility defines a syntax for matching and replacing regular expressions. Often, these tiny languages can be used together inside a
1725:
1621:
2045:
1944:
120:, by using a language suitable to the domain at hand – this may consist of using an existing DSL or GPL, or developing a new DSL.
2103:
873:
650:
FilterMeister is a programming environment, with a programming language that is based on C, for the specific purpose of creating
3005:
2977:
2210:
2200:
525:
991:
Cost of designing, implementing, and maintaining a domain-specific language as well as the tools required to develop with it (
3030:
2258:
2215:
2205:
2195:
1895:
1876:
1799:
1392:
1260:
2881:
2172:
884:. These languages provide a syntax for describing a Bayesian model and generate a method for solving it using simulation.
3035:
2307:
1967:
694:
497:
468:
General purpose programming languages rarely support such idioms, but domain-specific languages can describe them, e.g.:
1492:
970:
at the domain level. As long as the language constructs are safe any sentence written with them can be considered safe.
2540:
992:
721:
348:
3187:
3015:
2545:
1711:
1677:
1649:
1329:
1165:
1143:
1080:
1136:
3275:
2369:
2187:
1669:
1001:
Difficulty of balancing trade-offs between domain-specificity and general-purpose programming language constructs.
2663:
2167:
557:
169:
390:
Domain-specific languages which are called (at runtime) from programs written in general purpose languages like
2954:
2916:
2573:
2281:
2247:
2162:
1090:
893:
372:
3096:
3073:
2803:
2793:
2177:
1393:"The TREE-META Compiler-Compiler System: A Meta Compiler System for the Univac 1108 and General Electric 645"
1061:
739:
717:
613:
430:
Domain-specific languages have important design goals that contrast with those of general-purpose languages:
384:
360:
356:
121:
32:
832:
have been developed for automating policy and business rules used in both government and private industry.
3177:
2765:
2673:
2578:
2354:
2339:
1581:
1343:
1235:
912:
742:, as well as all other forms of domain-specific languages, are the class of compiler writing tools called
3265:
3000:
2498:
1917:
489:
364:
317:
Processing with standalone tools, invoked via direct user operation, often on the command line or from a
776:
Metacompilers that played a significant role in both computer science and the computer industry include
3237:
2886:
2236:
1100:
877:
817:
751:
639:
269:
173:
2001:
1486:"On the integration of domain-specific and scientific bodies of knowledge in Model Driven Engineering"
1211:
Marjan Mernik, Jan
Heering, and Anthony M. Sloane. When and how to develop domain-specific languages.
3255:
3182:
3157:
3020:
2668:
2274:
1912:
1631:
932:
686:
There has been much interest in domain-specific languages to improve the productivity and quality of
277:
105:
2088:
2066:
2035:
3106:
2939:
2394:
2013:
1417:
Freudenthal, Margus (1 January 2009). "Domain
Specific Languages in a Customs Information System".
1130:
869:
865:
837:
812:
792:
710:
391:
265:
233:
73:
36:
3167:
3101:
2992:
2808:
2468:
937:
670:
is an embedded domain-specific language whose fundamental purpose is to support the creation of
76:. Simpler DSLs, particularly ones used by a single application, are sometimes informally called
3232:
3063:
2944:
2711:
2701:
2696:
2061:
2008:
1962:
1958:
1936:
1441:
1147:
1005:
770:
189:
62:
47:
soft code. DSLs can be further subdivided by the kind of language, and include domain-specific
1932:
3202:
3172:
3162:
3058:
2972:
2848:
2788:
2755:
2745:
2628:
2593:
2583:
2520:
2389:
2364:
2359:
2324:
2075:
2022:
848:
829:
1977:
1014:
Non-technical domain experts can find it hard to write or modify DSL programs by themselves.
2962:
2934:
2906:
2901:
2730:
2706:
2658:
2641:
2636:
2618:
2608:
2603:
2565:
2515:
2510:
2427:
2373:
2155:
2126:
2054:
687:
585:
104:
language, and in principle can be used for any task, but in practice is narrowly used as a
66:
8:
3227:
3152:
3068:
3053:
2818:
2598:
2555:
2550:
2447:
2437:
2409:
1987:
example of internal Domain-Specific
Language for the Modeling and Simulation of Extended
1953:
702:
549:
537:
255:
156:
1688:
88:
was originally developed as a text-processing and glue language, for the same domain as
3192:
3091:
2967:
2924:
2833:
2775:
2760:
2750:
2535:
2334:
2042:
1941:
1837:
1757:
1717:
1559:
1466:
1373:
1335:
1280:
1105:
1075:
1042:
804:
464:
Edit code whenever command-line parameters change because they affect program behavior.
407:
196:
181:
152:
117:
96:, but was mostly used as a general-purpose programming language later on. By contrast,
43:
for web pages, down to languages used by only one or a few pieces of software, such as
1782:
1247:
3212:
3142:
3121:
3083:
2891:
2858:
2838:
2530:
2442:
2316:
2150:
2145:
1891:
1872:
1829:
1795:
1769:
Spinellis, Diomidis (2001). "Notable design patterns for domain specific languages".
1761:
1707:
1696:
Proceedings. 2nd IEEE Workshop on
Industrial Strength Formal Specification Techniques
1673:
1325:
1314:
Proceedings. 2nd IEEE Workshop on
Industrial Strength Formal Specification Techniques
967:
796:
593:
517:
454:
55:
28:
1721:
1470:
1377:
1339:
3045:
2929:
2896:
2691:
2613:
2502:
2488:
2483:
2432:
2419:
2344:
2297:
1972:
1890:. Synthesis Lectures on Software Engineering. Vol. #1. Morgan & Claypool.
1841:
1821:
1778:
1749:
1699:
1558:
Tobin-Hochstadt, S.; St-Amour, V.; Culpepper, R.; Flatt, M.; Felleisen, M. (2011).
1456:
1422:
1365:
1317:
1284:
1272:
1243:
1216:
1037:
901:
609:
553:
521:
513:
151:
A domain-specific language is somewhere between a tiny programming language and a
16:
Computer language specialized to a particular set of requirements or functionality
3116:
3010:
2982:
2876:
2828:
2813:
2798:
2653:
2648:
2588:
2478:
2452:
2404:
2349:
2095:
2049:
2043:
Using
Acceleo with GMF : Generating presentations from a MindMap DSL modeler
1984:
1948:
1923:
1400:
881:
803:. This allowed for rapid development of modifications compared to the competitor
763:
577:
399:
101:
48:
887:
3222:
3126:
3025:
2871:
2843:
1850:
853:
671:
441:
204:
or executable code, but to various kinds of media objects: GraphViz exports to
1461:
138:
life insurance policies (developed internally by a large insurance enterprise)
3290:
3111:
2399:
1833:
1703:
1360:
Shorre, D. V. (1964). "META II a syntax-oriented compiler writing language".
1321:
1033:
917:
897:
706:
457:
are methods imposed by programmers to handle common development tasks, e.g.:
402:
for the domain-specific language is embedded into the host application (e.g.
1825:
1753:
1220:
3207:
2866:
2140:
947:
800:
759:
755:
743:
733:
724:
based mainly on creating, optimizing, and using domain-specific languages.
675:
573:
93:
1369:
1188:
3197:
2823:
2735:
1809:
1530:
1442:"Multilayered analysis of co-development of business information systems"
977:
Domain-specific languages are easier to learn, given their limited scope.
529:
509:
376:
344:
297:
DSLs implemented via an independent interpreter or compiler are known as
220:
compiles to audio files, and a ray-tracing domain-specific language like
1954:
One Day Compilers: Building a small domain-specific language using OCaml
1666:
Building Better Applications: a Theory of Efficient Software Development
1426:
678:(inclusion by reference) of MediaWiki pages into other MediaWiki pages.
3217:
3147:
2740:
2473:
2329:
632:
505:
352:
301:. Well known examples include TeX or AWK. A separate category known as
205:
97:
2007:"Building Domain-Specific Languages over a Language Framework". 1997.
864:
Statistical modelers have developed domain-specific languages such as
2722:
2683:
1959:
Usenix Association: Conference on Domain-Specific Languages (DSL '97)
1557:
1045:, and an Integrated Development Environment (IDE) for such languages.
1020:
Low supply of experts in a particular DSL tends to raise labor costs.
808:
781:
667:
651:
589:
276:, a domain-specific transformation language. However, languages like
201:
1276:
856:) coupled with alternatives to programming syntax in favor of DSLs.
2783:
2266:
1928:
565:
437:
Domain-specific languages are much more expressive in their domain.
322:
318:
134:
also be a business area. Some examples of business areas include:
1792:
The Definitive ANTLR Reference: Building Domain-Specific Languages
1258:
292:
1516:
787:
777:
697:, a dependency graph browser to display variable dependencies, a
545:
493:
321:(e.g., grep for regular expression matching, sed, lex, yacc, the
221:
1027:
313:
There are several usage patterns for domain-specific languages:
1095:
942:
928:
Other prominent examples of domain-specific languages include:
841:
747:
561:
501:
475:
A domain-specific language can parameterize command line input.
268:, many examples of domain-specific languages may be found like
217:
176:, or textual languages. For instance, the command line utility
1737:
1736:
Mernik, Marjan; Heering, Jan & Sloane, Anthony M. (2005).
1544:
1391:
Carr, C. Stephen; Luther, David A.; Erdmann, Sherian (1969).
1054:
888:
Generate model and services to multiple programming Languages
621:
617:
569:
1036:
is a tool for designing domain-specific languages. It uses
833:
541:
485:
395:
380:
368:
258:
213:
177:
85:
44:
40:
1973:
The complete guide to (external) Domain Specific Languages
1058:
Eclipse-based IDE. The project was archived in April 2023.
564:
for sound and music synthesis, and the input languages of
484:
Examples of domain-specific programming languages include
1689:"Using the SCR* toolset to specify software requirements"
1307:"Using the SCR* toolset to specify software requirements"
533:
273:
237:
209:
185:
89:
116:
The design and use of appropriate DSLs is a key part of
1886:
Brambilla, Marco; Cabot, Jordi; Wimmer, Manuel (2012).
1551:
823:
272:, a language for decorating models with assertions or
2060:
Sagar Sen; et al. (2009). "Meta-model Pruning".
1963:
2nd Conference on Domain-Specific Languages (DSL '99)
1236:
Notable design patterns for domain specific languages
1942:
Domain-Specific Languages: An Annotated Bibliography
1885:
1362:
Proceedings of the 1964 19th ACM national conference
184:
syntax which matches patterns in lines of text. The
1738:"When and how to develop domain-specific languages"
1735:
746:. A metacompiler is not only useful for generating
2125:
1573:
892:Generate object handling and services based on an
859:
287:
280:are typically general-purpose modeling languages.
1517:"JetBrains MPS: Domain-Specific Language Creator"
1397:University of Utah Technical Report RADC-TR-69-83
1390:
461:Ensure data is saved before the window is closed.
440:Domain-specific languages should exhibit minimal
434:Domain-specific languages are less comprehensive.
3288:
303:Embedded (or Internal) Domain Specific Languages
1848:
998:Finding, setting, and maintaining proper scope.
953:
293:External and Embedded Domain Specific Languages
195:The line between domain-specific languages and
162:
1567:Programming Language Design and Implementation
788:Unreal Engine before version 4 and other games
2306:Note: This template roughly follows the 2012
2282:
2111:
1888:Model Driven Software Engineering in Practice
1449:Journal of Internet Services and Applications
1440:Aram, Michael; Neumann, Gustaf (2015-07-01).
1412:
1410:
1230:
1228:
1028:Tools for designing domain-specific languages
627:
681:
227:
155:, and is often used in a way analogous to a
1439:
1416:
192:to perform more complex programming tasks.
2289:
2275:
2118:
2104:
1929:Martin Fowler on domain-specific languages
1407:
1225:
1207:
1205:
811:engine). The Id Tech engine used standard
2065:
2059:
2012:
1768:
1686:
1650:Learn how and when to remove this message
1460:
1304:
1186:
1166:Learn how and when to remove this message
172:, programmatic abstractions, such as the
1663:
1129:This article includes a list of general
762:specifically designed for the domain of
31:specialized to a particular application
1202:
3289:
3006:Knowledge representation and reasoning
1864:
1731:from the original on February 1, 2020.
1359:
1086:Domain-specific entertainment language
657:
528:for reactive and distributed systems,
526:Specification and Description Language
3297:Domain-specific programming languages
3031:Philosophy of artificial intelligence
2270:
2099:
2002:External DSLs with Eclipse technology
1812:(2009). "Spending Moore's Dividend".
1808:
1579:
1261:"A Programmable Programming Language"
754:for domain-specific languages, but a
720:, an integrated software engineering
603:
472:A script can automatically save data.
2350:Energy consumption (Green computing)
2296:
1789:
1606:
1115:
560:for creating diagramming languages,
248:
3302:Programming language classification
3036:Distributed artificial intelligence
2308:ACM Computing Classification System
1851:"What's a Ruby DSL and what isn't?"
824:Rules engines for policy automation
608:The GML scripting language used by
13:
2541:Integrated development environment
1968:Internal Domain-Specific Languages
1602:
1483:
1187:Fowler, Martin; Parsons, Rebecca.
1135:it lacks sufficient corresponding
1008:compared with hand-coded software.
758:itself compiles a domain-specific
371:'s "method syntax" an SQL eDSL in
299:External Domain Specific Languages
14:
3313:
3016:Automated planning and scheduling
2546:Software configuration management
2055:UML vs. Domain-Specific Languages
1905:
1849:Werner Schuster (June 15, 2007).
1081:Architecture description language
923:
341:internal domain-specific language
333:embedded domain-specific language
308:
3270:
3260:
3251:
3250:
1670:International Thomson Publishing
1611:
1120:
966:Domain-specific languages allow
727:
645:
582:Hashicorp Configuration Language
500:hardware description languages,
3261:
2664:Computational complexity theory
1771:Journal of Systems and Software
1537:
1523:
1509:
1477:
1240:Journal of Systems and Software
985:Cost of learning a new language
860:Statistical modelling languages
558:Generic Eclipse Modeling System
422:
288:Domain-specific language topics
170:Generic Eclipse Modeling System
2448:Network performance evaluation
2127:Types of programming languages
1582:"Creating Languages in Racket"
1433:
1384:
1353:
1298:
1252:
1242:, 56(1):91–99, February 2001.
1180:
1091:Language for specific purposes
894:Interface Description Language
771:program transformation systems
84:specific domain. For example,
1:
2819:Multimedia information system
2804:Geographic information system
2794:Enterprise information system
2383:Computer systems organization
2227:
1783:10.1016/S0164-1212(00)00089-3
1687:Heitmeyer, Constance (1999).
1634:and help improve the section.
1248:10.1016/S0164-1212(00)00089-3
1111:
1023:Harder to find code examples.
740:language-oriented programming
718:language-oriented programming
572:, software packages used for
122:Language-oriented programming
3178:Computational social science
2766:Theoretical computer science
2579:Software development process
2355:Electronic design automation
2340:Very Large Scale Integration
2259:Programming paradigms navbox
1004:Potential loss of processor
954:Advantages and disadvantages
224:compiles to graphics files.
163:In design and implementation
7:
3001:Natural language processing
2789:Information storage systems
1918:The Art of Unix Programming
1364:. pp. 41.301–41.3011.
1189:"Domain Specific Languages"
1069:
981:Some of the disadvantages:
799:unveiled a language called
479:
128:
35:. This is in contrast to a
10:
3318:
2917:Human–computer interaction
2887:Intrusion detection system
2799:Social information systems
2784:Database management system
1101:Metalinguistic abstraction
907:
868:(an implementation of the
731:
701:to catch missing cases in
695:requirements specification
640:ColdFusion Markup Language
628:ColdFusion Markup Language
174:Eclipse Modeling Framework
3246:
3183:Computational engineering
3158:Computational mathematics
3135:
3082:
3044:
2991:
2953:
2915:
2857:
2774:
2720:
2682:
2627:
2564:
2497:
2461:
2418:
2382:
2315:
2304:
2186:
2133:
1868:Domain-Specific Languages
1814:Communications of the ACM
1586:Communications of the ACM
1462:10.1186/s13174-015-0030-8
1265:Communications of the ACM
933:Game Description Language
682:Software engineering uses
492:for pencil-like drawing,
448:
408:regular expression engine
228:Data definition languages
106:page description language
3193:Computational healthcare
3188:Differentiable computing
3107:Graphics processing unit
2526:Domain-specific language
2395:Computational complexity
1704:10.1109/WIFT.1998.766290
1560:"Languages as Libraries"
1322:10.1109/WIFT.1998.766290
1316:. IEEE. pp. 12–13.
958:Some of the advantages:
838:Oracle Policy Automation
705:in the specification, a
508:for matrix programming,
351:tooling. eDSL examples:
266:model-driven engineering
234:data definition language
74:domain-specific modeling
37:general-purpose language
21:domain-specific language
3168:Computational chemistry
3102:Photograph manipulation
2993:Artificial intelligence
2809:Decision support system
1865:Fowler, Martin (2011).
1826:10.1145/1506409.1506425
1794:. Pragmatic Bookshelf.
1754:10.1145/1118890.1118892
1580:Flatt, Matthew (2012).
1221:10.1145/1118890.1118892
1150:more precise citations.
938:OpenGL Shading Language
902:Google Protocol Buffers
716:A newer development is
65:), and domain-specific
63:specification languages
3233:Educational technology
3064:Reinforcement learning
2814:Process control system
2712:Computational geometry
2702:Algorithmic efficiency
2697:Analysis of algorithms
2345:Systems on Chip (SoCs)
2083:Cite journal requires
2030:Cite journal requires
1790:Parr, Terence (2007).
1305:Heitmeyer, C. (1999).
1215:, 37(4):316–344, 2005.
849:subject-matter experts
830:business rules engines
598:configuration language
544:grammars for creating
355:"Core" an SQL eDSL in
111:
3203:Electronic publishing
3173:Computational biology
3163:Computational physics
3059:Unsupervised learning
2973:Distributed computing
2849:Information retrieval
2756:Mathematical analysis
2746:Mathematical software
2629:Theory of computation
2594:Software construction
2584:Requirements analysis
2462:Software organization
2390:Computer architecture
2360:Hardware acceleration
2325:Printed circuit board
2248:Programming languages
1742:ACM Computing Surveys
1370:10.1145/800257.808896
1213:ACM Computing Surveys
988:Limited applicability
780:, and its descendant
732:Further information:
532:formulas and macros,
2963:Concurrent computing
2935:Ubiquitous computing
2907:Application security
2902:Information security
2731:Discrete mathematics
2707:Randomized algorithm
2659:Computability theory
2637:Model of computation
2609:Software maintenance
2604:Software engineering
2566:Software development
2516:Programming language
2511:Programming paradigm
2428:Network architecture
1937:a video presentation
1933:Language Workbenches
1403:on February 1, 2020.
1234:Diomidis Spinellis.
1038:projectional editing
918:line-oriented design
703:well-formed formulas
688:software engineering
522:symbolic mathematics
3238:Document management
3228:Operations research
3153:Enterprise software
3069:Multi-task learning
3054:Supervised learning
2776:Information systems
2599:Software deployment
2556:Software repository
2410:Real-time computing
1427:10.1109/MS.2009.152
699:consistency checker
658:MediaWiki templates
550:regular expressions
538:relational database
339:) also known as an
256:functional language
197:scripting languages
157:programming library
3021:Search methodology
2968:Parallel computing
2925:Interaction design
2834:Computing platform
2761:Numerical analysis
2751:Information theory
2536:Software framework
2499:Software notations
2438:Network components
2335:Integrated circuit
2048:2016-07-30 at the
1983:2021-01-31 at the
1947:2016-03-16 at the
1871:. Addison-Wesley.
1698:. pp. 12–13.
1106:Programming domain
1076:Language workbench
1043:language workbench
604:GameMaker Language
182:regular expression
153:scripting language
144:salary calculation
118:domain engineering
54:, domain-specific
3284:
3283:
3213:Electronic voting
3143:Quantum Computing
3136:Applied computing
3122:Image compression
2892:Hardware security
2882:Security services
2839:Digital marketing
2619:Open-source model
2531:Modeling language
2443:Network scheduler
2237:Computer language
2224:
2223:
1989:Queueing Networks
1897:978-1-62705-708-0
1878:978-0-321-71294-3
1801:978-0-9787392-5-6
1664:Dunlavey (1994).
1660:
1659:
1652:
1176:
1175:
1168:
797:Unreal Tournament
596:also has its own
249:Programming tools
141:combat simulation
61:(more generally,
29:computer language
3309:
3274:
3273:
3264:
3263:
3254:
3253:
3074:Cross-validation
3046:Machine learning
2930:Social computing
2897:Network security
2692:Algorithm design
2614:Programming team
2574:Control variable
2551:Software library
2489:Software quality
2484:Operating system
2433:Network protocol
2298:Computer science
2291:
2284:
2277:
2268:
2267:
2263:
2257:
2252:
2246:
2241:
2235:
2120:
2113:
2106:
2097:
2096:
2092:
2086:
2081:
2079:
2071:
2069:
2039:
2033:
2028:
2026:
2018:
2016:
1901:
1882:
1861:
1859:
1858:
1845:
1805:
1786:
1765:
1732:
1730:
1693:
1683:
1655:
1648:
1644:
1641:
1635:
1630:Please read the
1626:may need cleanup
1615:
1614:
1607:
1596:
1595:
1593:
1592:
1577:
1571:
1570:
1564:
1555:
1549:
1548:
1541:
1535:
1534:
1527:
1521:
1520:
1513:
1507:
1506:
1504:
1503:
1497:
1491:. Archived from
1490:
1481:
1475:
1474:
1464:
1446:
1437:
1431:
1430:
1414:
1405:
1404:
1399:. Archived from
1388:
1382:
1381:
1357:
1351:
1350:
1348:
1342:. Archived from
1311:
1302:
1296:
1295:
1293:
1291:
1256:
1250:
1232:
1223:
1209:
1200:
1199:
1197:
1195:
1184:
1171:
1164:
1160:
1157:
1151:
1146:this article by
1137:inline citations
1124:
1123:
1116:
610:GameMaker Studio
453:In programming,
3317:
3316:
3312:
3311:
3310:
3308:
3307:
3306:
3287:
3286:
3285:
3280:
3271:
3242:
3223:Word processing
3131:
3117:Virtual reality
3078:
3040:
3011:Computer vision
2987:
2983:Multiprocessing
2949:
2911:
2877:Security hacker
2853:
2829:Digital library
2770:
2721:Mathematics of
2716:
2678:
2654:Automata theory
2649:Formal language
2623:
2589:Software design
2560:
2493:
2479:Virtual machine
2457:
2453:Network service
2414:
2405:Embedded system
2378:
2311:
2300:
2295:
2261:
2255:
2250:
2244:
2239:
2233:
2230:
2225:
2220:
2182:
2173:Very high-level
2129:
2124:
2084:
2082:
2073:
2072:
2067:10.1.1.156.6008
2050:Wayback Machine
2031:
2029:
2020:
2019:
2006:
1985:Wayback Machine
1949:Wayback Machine
1924:Eric S. Raymond
1908:
1898:
1879:
1856:
1854:
1802:
1728:
1714:
1691:
1680:
1656:
1645:
1639:
1636:
1629:
1622:Further reading
1616:
1612:
1605:
1603:Further reading
1600:
1599:
1590:
1588:
1578:
1574:
1562:
1556:
1552:
1543:
1542:
1538:
1529:
1528:
1524:
1515:
1514:
1510:
1501:
1499:
1495:
1488:
1482:
1478:
1444:
1438:
1434:
1415:
1408:
1389:
1385:
1358:
1354:
1346:
1332:
1309:
1303:
1299:
1289:
1287:
1277:10.1145/3127323
1257:
1253:
1233:
1226:
1210:
1203:
1193:
1191:
1185:
1181:
1172:
1161:
1155:
1152:
1142:Please help to
1141:
1125:
1121:
1114:
1072:
1030:
956:
926:
910:
890:
862:
854:decision tables
826:
820:for scripting.
790:
764:metaprogramming
752:code generators
736:
730:
684:
660:
648:
630:
606:
578:graph rewriting
552:for specifying
482:
451:
425:
400:virtual machine
363:an SQL eDSL in
311:
295:
290:
251:
230:
165:
131:
114:
102:Turing-complete
17:
12:
11:
5:
3315:
3305:
3304:
3299:
3282:
3281:
3279:
3278:
3268:
3258:
3247:
3244:
3243:
3241:
3240:
3235:
3230:
3225:
3220:
3215:
3210:
3205:
3200:
3195:
3190:
3185:
3180:
3175:
3170:
3165:
3160:
3155:
3150:
3145:
3139:
3137:
3133:
3132:
3130:
3129:
3127:Solid modeling
3124:
3119:
3114:
3109:
3104:
3099:
3094:
3088:
3086:
3080:
3079:
3077:
3076:
3071:
3066:
3061:
3056:
3050:
3048:
3042:
3041:
3039:
3038:
3033:
3028:
3026:Control method
3023:
3018:
3013:
3008:
3003:
2997:
2995:
2989:
2988:
2986:
2985:
2980:
2978:Multithreading
2975:
2970:
2965:
2959:
2957:
2951:
2950:
2948:
2947:
2942:
2937:
2932:
2927:
2921:
2919:
2913:
2912:
2910:
2909:
2904:
2899:
2894:
2889:
2884:
2879:
2874:
2872:Formal methods
2869:
2863:
2861:
2855:
2854:
2852:
2851:
2846:
2844:World Wide Web
2841:
2836:
2831:
2826:
2821:
2816:
2811:
2806:
2801:
2796:
2791:
2786:
2780:
2778:
2772:
2771:
2769:
2768:
2763:
2758:
2753:
2748:
2743:
2738:
2733:
2727:
2725:
2718:
2717:
2715:
2714:
2709:
2704:
2699:
2694:
2688:
2686:
2680:
2679:
2677:
2676:
2671:
2666:
2661:
2656:
2651:
2646:
2645:
2644:
2633:
2631:
2625:
2624:
2622:
2621:
2616:
2611:
2606:
2601:
2596:
2591:
2586:
2581:
2576:
2570:
2568:
2562:
2561:
2559:
2558:
2553:
2548:
2543:
2538:
2533:
2528:
2523:
2518:
2513:
2507:
2505:
2495:
2494:
2492:
2491:
2486:
2481:
2476:
2471:
2465:
2463:
2459:
2458:
2456:
2455:
2450:
2445:
2440:
2435:
2430:
2424:
2422:
2416:
2415:
2413:
2412:
2407:
2402:
2397:
2392:
2386:
2384:
2380:
2379:
2377:
2376:
2367:
2362:
2357:
2352:
2347:
2342:
2337:
2332:
2327:
2321:
2319:
2313:
2312:
2305:
2302:
2301:
2294:
2293:
2286:
2279:
2271:
2265:
2264:
2253:
2242:
2229:
2226:
2222:
2221:
2219:
2218:
2213:
2208:
2203:
2198:
2192:
2190:
2184:
2183:
2181:
2180:
2175:
2170:
2165:
2159:
2158:
2153:
2148:
2143:
2137:
2135:
2131:
2130:
2123:
2122:
2115:
2108:
2100:
2094:
2093:
2085:|journal=
2057:
2052:
2040:
2032:|journal=
2014:10.1.1.50.4685
2004:
1998:
1997:
1993:
1992:
1975:
1970:
1965:
1956:
1951:
1939:
1926:
1907:
1906:External links
1904:
1903:
1902:
1896:
1883:
1877:
1862:
1846:
1806:
1800:
1787:
1766:
1748:(4): 316–344.
1733:
1712:
1684:
1678:
1658:
1657:
1619:
1617:
1610:
1604:
1601:
1598:
1597:
1572:
1550:
1536:
1522:
1508:
1484:Miotto, Eric.
1476:
1432:
1406:
1383:
1352:
1349:on 2004-07-19.
1330:
1297:
1251:
1224:
1201:
1178:
1177:
1174:
1173:
1156:September 2009
1128:
1126:
1119:
1113:
1110:
1109:
1108:
1103:
1098:
1093:
1088:
1083:
1078:
1071:
1068:
1067:
1066:
1059:
1052:
1046:
1029:
1026:
1025:
1024:
1021:
1018:
1015:
1012:
1009:
1002:
999:
996:
989:
986:
979:
978:
975:
971:
964:
955:
952:
951:
950:
945:
940:
935:
925:
924:Other examples
922:
909:
906:
889:
886:
861:
858:
825:
822:
789:
786:
738:Complementing
729:
726:
711:theorem prover
683:
680:
672:page templates
659:
656:
647:
644:
629:
626:
605:
602:
481:
478:
477:
476:
473:
466:
465:
462:
450:
447:
446:
445:
438:
435:
424:
421:
416:
415:
411:
404:format strings
388:
329:
326:
325:toolset, etc.)
310:
309:Usage patterns
307:
294:
291:
289:
286:
250:
247:
229:
226:
216:, etc., where
164:
161:
149:
148:
145:
142:
139:
130:
127:
113:
110:
78:mini-languages
15:
9:
6:
4:
3:
2:
3314:
3303:
3300:
3298:
3295:
3294:
3292:
3277:
3269:
3267:
3259:
3257:
3249:
3248:
3245:
3239:
3236:
3234:
3231:
3229:
3226:
3224:
3221:
3219:
3216:
3214:
3211:
3209:
3206:
3204:
3201:
3199:
3196:
3194:
3191:
3189:
3186:
3184:
3181:
3179:
3176:
3174:
3171:
3169:
3166:
3164:
3161:
3159:
3156:
3154:
3151:
3149:
3146:
3144:
3141:
3140:
3138:
3134:
3128:
3125:
3123:
3120:
3118:
3115:
3113:
3112:Mixed reality
3110:
3108:
3105:
3103:
3100:
3098:
3095:
3093:
3090:
3089:
3087:
3085:
3081:
3075:
3072:
3070:
3067:
3065:
3062:
3060:
3057:
3055:
3052:
3051:
3049:
3047:
3043:
3037:
3034:
3032:
3029:
3027:
3024:
3022:
3019:
3017:
3014:
3012:
3009:
3007:
3004:
3002:
2999:
2998:
2996:
2994:
2990:
2984:
2981:
2979:
2976:
2974:
2971:
2969:
2966:
2964:
2961:
2960:
2958:
2956:
2952:
2946:
2945:Accessibility
2943:
2941:
2940:Visualization
2938:
2936:
2933:
2931:
2928:
2926:
2923:
2922:
2920:
2918:
2914:
2908:
2905:
2903:
2900:
2898:
2895:
2893:
2890:
2888:
2885:
2883:
2880:
2878:
2875:
2873:
2870:
2868:
2865:
2864:
2862:
2860:
2856:
2850:
2847:
2845:
2842:
2840:
2837:
2835:
2832:
2830:
2827:
2825:
2822:
2820:
2817:
2815:
2812:
2810:
2807:
2805:
2802:
2800:
2797:
2795:
2792:
2790:
2787:
2785:
2782:
2781:
2779:
2777:
2773:
2767:
2764:
2762:
2759:
2757:
2754:
2752:
2749:
2747:
2744:
2742:
2739:
2737:
2734:
2732:
2729:
2728:
2726:
2724:
2719:
2713:
2710:
2708:
2705:
2703:
2700:
2698:
2695:
2693:
2690:
2689:
2687:
2685:
2681:
2675:
2672:
2670:
2667:
2665:
2662:
2660:
2657:
2655:
2652:
2650:
2647:
2643:
2640:
2639:
2638:
2635:
2634:
2632:
2630:
2626:
2620:
2617:
2615:
2612:
2610:
2607:
2605:
2602:
2600:
2597:
2595:
2592:
2590:
2587:
2585:
2582:
2580:
2577:
2575:
2572:
2571:
2569:
2567:
2563:
2557:
2554:
2552:
2549:
2547:
2544:
2542:
2539:
2537:
2534:
2532:
2529:
2527:
2524:
2522:
2519:
2517:
2514:
2512:
2509:
2508:
2506:
2504:
2500:
2496:
2490:
2487:
2485:
2482:
2480:
2477:
2475:
2472:
2470:
2467:
2466:
2464:
2460:
2454:
2451:
2449:
2446:
2444:
2441:
2439:
2436:
2434:
2431:
2429:
2426:
2425:
2423:
2421:
2417:
2411:
2408:
2406:
2403:
2401:
2400:Dependability
2398:
2396:
2393:
2391:
2388:
2387:
2385:
2381:
2375:
2371:
2368:
2366:
2363:
2361:
2358:
2356:
2353:
2351:
2348:
2346:
2343:
2341:
2338:
2336:
2333:
2331:
2328:
2326:
2323:
2322:
2320:
2318:
2314:
2309:
2303:
2299:
2292:
2287:
2285:
2280:
2278:
2273:
2272:
2269:
2260:
2254:
2249:
2243:
2238:
2232:
2231:
2217:
2214:
2212:
2209:
2207:
2204:
2202:
2199:
2197:
2194:
2193:
2191:
2189:
2185:
2179:
2176:
2174:
2171:
2169:
2166:
2164:
2161:
2160:
2157:
2154:
2152:
2149:
2147:
2144:
2142:
2139:
2138:
2136:
2132:
2128:
2121:
2116:
2114:
2109:
2107:
2102:
2101:
2098:
2090:
2077:
2068:
2063:
2058:
2056:
2053:
2051:
2047:
2044:
2041:
2037:
2024:
2015:
2010:
2005:
2003:
2000:
1999:
1995:
1994:
1990:
1986:
1982:
1979:
1976:
1974:
1971:
1969:
1966:
1964:
1960:
1957:
1955:
1952:
1950:
1946:
1943:
1940:
1938:
1934:
1930:
1927:
1925:
1921:
1919:
1914:
1913:Minilanguages
1910:
1909:
1899:
1893:
1889:
1884:
1880:
1874:
1870:
1869:
1863:
1852:
1847:
1843:
1839:
1835:
1831:
1827:
1823:
1819:
1815:
1811:
1807:
1803:
1797:
1793:
1788:
1784:
1780:
1776:
1772:
1767:
1763:
1759:
1755:
1751:
1747:
1743:
1739:
1734:
1727:
1723:
1719:
1715:
1713:0-7695-0081-1
1709:
1705:
1701:
1697:
1690:
1685:
1681:
1679:0-442-01740-5
1675:
1671:
1667:
1662:
1661:
1654:
1651:
1643:
1640:February 2020
1633:
1632:editing guide
1627:
1623:
1618:
1609:
1608:
1587:
1583:
1576:
1568:
1561:
1554:
1546:
1540:
1532:
1526:
1518:
1512:
1498:on 2011-07-24
1494:
1487:
1480:
1472:
1468:
1463:
1458:
1454:
1450:
1443:
1436:
1428:
1424:
1420:
1419:IEEE Software
1413:
1411:
1402:
1398:
1394:
1387:
1379:
1375:
1371:
1367:
1363:
1356:
1345:
1341:
1337:
1333:
1331:0-7695-0081-1
1327:
1323:
1319:
1315:
1308:
1301:
1286:
1282:
1278:
1274:
1270:
1266:
1262:
1255:
1249:
1245:
1241:
1237:
1231:
1229:
1222:
1218:
1214:
1208:
1206:
1190:
1183:
1179:
1170:
1167:
1159:
1149:
1145:
1139:
1138:
1132:
1127:
1118:
1117:
1107:
1104:
1102:
1099:
1097:
1094:
1092:
1089:
1087:
1084:
1082:
1079:
1077:
1074:
1073:
1063:
1060:
1056:
1053:
1050:
1047:
1044:
1039:
1035:
1034:JetBrains MPS
1032:
1031:
1022:
1019:
1016:
1013:
1010:
1007:
1003:
1000:
997:
994:
990:
987:
984:
983:
982:
976:
972:
969:
965:
961:
960:
959:
949:
946:
944:
941:
939:
936:
934:
931:
930:
929:
921:
919:
914:
905:
903:
899:
898:Apache Thrift
895:
885:
883:
879:
875:
871:
867:
857:
855:
850:
845:
843:
839:
835:
831:
821:
819:
814:
810:
806:
802:
798:
794:
785:
783:
779:
774:
772:
767:
765:
761:
757:
753:
749:
745:
744:metacompilers
741:
735:
728:Metacompilers
725:
723:
719:
714:
712:
708:
707:model checker
704:
700:
696:
691:
689:
679:
677:
673:
669:
665:
655:
653:
646:FilterMeister
643:
641:
636:
634:
625:
623:
619:
615:
611:
601:
599:
595:
591:
587:
583:
579:
575:
571:
567:
563:
559:
555:
551:
547:
543:
539:
535:
531:
527:
523:
519:
515:
511:
507:
503:
499:
495:
491:
487:
474:
471:
470:
469:
463:
460:
459:
458:
456:
443:
439:
436:
433:
432:
431:
428:
420:
412:
409:
405:
401:
397:
393:
389:
386:
382:
378:
374:
370:
366:
362:
358:
354:
350:
346:
342:
338:
334:
330:
327:
324:
320:
316:
315:
314:
306:
304:
300:
285:
281:
279:
275:
271:
267:
262:
260:
257:
246:
242:
239:
235:
225:
223:
219:
215:
211:
207:
203:
198:
193:
191:
187:
183:
179:
175:
171:
160:
158:
154:
146:
143:
140:
137:
136:
135:
126:
123:
119:
109:
107:
103:
99:
95:
94:shell scripts
91:
87:
81:
79:
75:
71:
69:
64:
60:
58:
53:
51:
46:
42:
38:
34:
30:
26:
22:
3208:Cyberwarfare
2867:Cryptography
2525:
2262:}}
2256:{{
2251:}}
2245:{{
2240:}}
2234:{{
2076:cite journal
2023:cite journal
1916:
1887:
1866:
1855:. Retrieved
1820:(5): 62–69.
1817:
1813:
1810:Larus, James
1791:
1777:(1): 91–99.
1774:
1770:
1745:
1741:
1695:
1665:
1646:
1637:
1625:
1589:. Retrieved
1585:
1575:
1566:
1553:
1539:
1525:
1511:
1500:. Retrieved
1493:the original
1479:
1452:
1448:
1435:
1418:
1401:the original
1396:
1386:
1361:
1355:
1344:the original
1313:
1300:
1288:. Retrieved
1271:(3): 62–71.
1268:
1264:
1254:
1239:
1212:
1192:. Retrieved
1182:
1162:
1153:
1134:
980:
957:
948:ActionScript
927:
911:
891:
863:
846:
827:
801:UnrealScript
791:
775:
768:
760:metalanguage
756:metacompiler
737:
734:Metacompiler
715:
692:
685:
676:transclusion
663:
661:
649:
637:
631:
607:
574:graph layout
483:
467:
452:
429:
426:
423:Design goals
417:
377:kotlinx.html
340:
336:
332:
312:
302:
298:
296:
282:
263:
252:
243:
231:
194:
166:
150:
132:
115:
82:
77:
67:
56:
49:
24:
20:
18:
3218:Video games
3198:Digital art
2955:Concurrency
2824:Data mining
2736:Probability
2469:Interpreter
2156:Interpreted
1531:"MontiCore"
1148:introducing
872:language),
840:, DTRules,
807:(using the
722:methodology
666:feature of
530:spreadsheet
510:Mathematica
347:and better
345:type safety
68:programming
3291:Categories
3276:Glossaries
3148:E-commerce
2741:Statistics
2684:Algorithms
2642:Stochastic
2474:Middleware
2330:Peripheral
2188:Generation
2168:High-level
1935:. Also in
1857:2009-09-08
1624:" section
1591:2012-04-08
1502:2010-11-22
1131:references
1112:References
1065:languages.
1006:efficiency
968:validation
633:ColdFusion
588:and other
506:GNU Octave
442:redundancy
353:SQLAlchemy
206:PostScript
98:PostScript
3097:Rendering
3092:Animation
2723:computing
2674:Semantics
2365:Processor
2163:Low-level
2062:CiteSeerX
2009:CiteSeerX
1853:. C4Media
1834:0001-0782
1762:207158373
1049:MontiCore
809:Id Tech 2
668:MediaWiki
652:Photoshop
590:Hashicorp
586:Terraform
584:used for
540:queries,
202:byte-code
70:languages
59:languages
52:languages
3256:Category
3084:Graphics
2859:Security
2521:Compiler
2420:Networks
2317:Hardware
2228:See also
2178:Esoteric
2151:Compiled
2146:Assembly
2046:Archived
1996:Articles
1981:Archived
1945:Archived
1726:Archived
1722:16079058
1471:16502371
1378:43144779
1340:16079058
1070:See also
828:Various
782:TreeMeta
674:and the
664:Template
566:GraphViz
480:Examples
383:eDSL in
323:GraphViz
319:Makefile
129:Overview
57:modeling
3266:Outline
2141:Machine
1842:2803479
1545:"Xtext"
1285:3887010
1144:improve
974:domain.
913:Gherkin
908:Gherkin
778:Meta-II
748:parsers
592:tools,
546:parsers
494:Verilog
147:billing
27:) is a
2211:Fourth
2201:Second
2064:
2011:
1894:
1875:
1840:
1832:
1798:
1760:
1720:
1710:
1676:
1620:This "
1469:
1376:
1338:
1328:
1290:15 May
1283:
1194:6 July
1133:, but
1096:Jargon
1062:Racket
943:Gradle
880:, and
842:Drools
793:Unreal
709:and a
620:, and
614:Delphi
594:Puppet
562:Csound
556:, the
554:lexers
518:Maxima
502:MATLAB
455:idioms
449:Idioms
385:Kotlin
357:Python
218:Csound
180:has a
50:markup
33:domain
2669:Logic
2503:tools
2216:Fifth
2206:Third
2196:First
2134:Level
1838:S2CID
1758:S2CID
1729:(PDF)
1718:S2CID
1692:(PDF)
1563:(PDF)
1496:(PDF)
1489:(PDF)
1467:S2CID
1455:(1).
1445:(PDF)
1421:: 1.
1374:S2CID
1347:(PDF)
1336:S2CID
1310:(PDF)
1281:S2CID
1055:Xtext
963:case.
805:Quake
622:BASIC
570:GrGen
514:Maple
414:both.
236:like
190:shell
100:is a
2501:and
2374:Form
2370:Size
2089:help
2036:help
1978:jEQN
1961:and
1931:and
1892:ISBN
1873:ISBN
1830:ISSN
1796:ISBN
1708:ISBN
1674:ISBN
1326:ISBN
1292:2019
1196:2019
882:Stan
878:Jags
874:Bugs
834:ILOG
795:and
750:and
662:The
638:The
576:and
568:and
542:YACC
536:for
520:for
516:and
504:and
498:VHDL
496:and
490:Logo
486:HTML
406:, a
396:Perl
381:HTML
375:and
369:LINQ
365:Java
361:jOOQ
337:eDSL
259:XSLT
214:JPEG
178:grep
92:and
86:Perl
45:MUSH
41:HTML
1922:by
1915:",
1822:doi
1779:doi
1750:doi
1700:doi
1457:doi
1423:doi
1366:doi
1318:doi
1273:doi
1244:doi
1217:doi
993:IDE
900:or
818:Lua
618:C++
534:SQL
394:or
379:an
349:IDE
331:As
278:UML
274:QVT
270:OCL
264:In
238:SQL
222:POV
210:GIF
186:sed
112:Use
90:AWK
25:DSL
3293::
2372:/
2080::
2078:}}
2074:{{
2027::
2025:}}
2021:{{
1836:.
1828:.
1818:52
1816:.
1775:56
1773:.
1756:.
1746:37
1744:.
1740:.
1724:.
1716:.
1706:.
1694:.
1672:.
1668:.
1584:.
1565:.
1465:.
1451:.
1447:.
1409:^
1395:.
1372:.
1334:.
1324:.
1312:.
1279:.
1269:61
1267:.
1263:.
1238:.
1227:^
1204:^
904:.
876:,
836:,
784:.
773:.
766:.
616:,
600:.
580:,
548:,
524:,
512:,
488:,
373:C#
367:,
359:,
232:A
212:,
208:,
108:.
80:.
19:A
2310:.
2290:e
2283:t
2276:v
2119:e
2112:t
2105:v
2091:)
2087:(
2070:.
2038:)
2034:(
2017:.
1991:.
1920:,
1911:"
1900:.
1881:.
1860:.
1844:.
1824::
1804:.
1785:.
1781::
1764:.
1752::
1702::
1682:.
1653:)
1647:(
1642:)
1638:(
1628:.
1594:.
1569:.
1547:.
1533:.
1519:.
1505:.
1473:.
1459::
1453:6
1429:.
1425::
1380:.
1368::
1320::
1294:.
1275::
1246::
1219::
1198:.
1169:)
1163:(
1158:)
1154:(
1140:.
995:)
870:S
866:R
813:C
444:.
410:)
392:C
387:.
335:(
23:(
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.