Knowledge (XXG)

Domain-specific language

Source đź“ť

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: 1154: 3046: 2318: 705: 508: 1991: 1632: 2551: 1003: 732: 359: 3198: 3026: 2556: 1878: 1722: 1688: 1660: 1340: 1176: 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: 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.
1642: 3276: 3011: 2509: 1928: 592: 500: 375: 1147: 1141: 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: 943: 288: 116: 1158: 401:
Domain-specific languages which are called (at runtime) from programs written in general purpose languages like
3117: 2950: 2405: 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: 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:)

Index

Domain specific language
computer language
domain
general-purpose language
HTML
MUSH
markup languages
modeling languages
specification languages
programming languages
domain-specific modeling
Perl
AWK
shell scripts
PostScript
Turing-complete
page description language
domain engineering
Language-oriented programming
scripting language
programming library
Generic Eclipse Modeling System
Eclipse Modeling Framework
grep
regular expression
sed
shell
scripting languages
byte-code
PostScript

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑