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