- 1 Kinh Nghiệm Hướng dẫn What is the term for a style of language used in which language is used primarily to label objects? Chi Tiết
- 2 Use
- 3 Overview
- 4 Domain-specific language topics
- 5 Examples
- 5.1 GameMaker Language
- 5.2 ColdFusion Markup Language
- 5.3 Erlang OTP
- 5.4 FilterMeister
- 5.5 MediaWiki templates
- 5.6 Software engineering uses
- 5.7 Metacompilers
- 5.8 Unreal Engine before version 4 and other games
- 5.9 Rules Engines for Policy Automation
- 5.10 Statistical modelling languages
- 5.11 Generate model and services to multiple programming Languages
- 5.12 Gherkin
- 5.13 Other examples
- 6 Advantages and disadvantages
- 7 Tools for designing domain-specific languages
- 8 See also
- 9 References
- 10 Further reading
- 11 External
- 11.1 What is the term for a style of language use in which language is used primarily to label objects group of answer choices?
- 11.2 Is a style of language in which language is used primarily to label objects?
- 11.3 What is the term for the theory that a genetically determined?
- 11.4 What is the term for the overly broad use of words?
- 11.5 Video What is the term for a style of language used in which language is used primarily to label objects? ?
- 11.6 Chia Sẻ Link Download What is the term for a style of language used in which language is used primarily to label objects? miễn phí
Kinh Nghiệm Hướng dẫn What is the term for a style of language used in which language is used primarily to label objects? Chi Tiết
Quý khách đang tìm kiếm từ khóa What is the term for a style of language used in which language is used primarily to label objects? được Update vào lúc : 2022-09-21 16:14:35 . Với phương châm chia sẻ Bí quyết Hướng dẫn trong nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi Read nội dung bài viết vẫn ko hiểu thì hoàn toàn có thể lại Comment ở cuối bài để Ad lý giải và hướng dẫn lại nha.
A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a
general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging from widely used languages for common domains, such as HTML for web pages, down to languages used by only one or a few pieces of software, such as
MUSH soft code. DSLs can be further subdivided by the kind of language, and include domain-specific markup languages, domain-specific modeling languages (more generally,
specification languages), and domain-specific programming languages. 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
domain-specific modeling. Simpler DSLs, particularly ones used by a single application, are sometimes informally called mini-languages.
Nội dung chính
- OverviewIn design and
topicsExternal and Embedded Domain Specific
LanguageErlang OTPFilterMeisterMediaWiki templatesSoftware engineering
usesMetacompilersUnreal Engine before version 4 and other gamesRules Engines for Policy
AutomationStatistical modelling languagesGenerate model and services to multiple programming
LanguagesGherkinOther examplesAdvantages and
disadvantagesTools for designing domain-specific languagesSee alsoReferencesFurther
linksWhat is the term for a style of language use in which language is used primarily to label objects group of answer choices?Is a style of language in which language is used primarily to label objects?What is the term for the theory that a genetically determined?What is the term for the overly broad use of words?
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 specific domain. For example, Perl was originally developed as a text-processing and glue language, for the same domain as AWK and shell scripts, but was mostly used as a general-purpose
programming language later on. By contrast, PostScript is a Turing-complete language, and in principle can be used for any task, but in practice is narrowly used as a page description
The design and use of appropriate DSLs is a key part of domain engineering, by using a language suitable to the domain hand – this may consist of
using an existing DSL or GPL, or developing a new DSL. Language-oriented programming 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 tư vấn it), rather than reusing an existing language, can be worthwhile if the language allows a particular
type of 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.
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 also be a business area. Some examples of business areas include:
- life insurance policies (developed internally by a large insurance enterprise)combat simulationsalary calculationbilling
A domain-specific language is somewhere between a tiny programming language and a scripting language, and is often
used in a way analogous to a programming library. The boundaries between these concepts are quite blurry, much like the boundary between scripting languages and general-purpose languages.
In design and
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
Generic Eclipse Modeling System, programmatic abstractions, such as the Eclipse Modeling Framework, or textual languages. For instance, the command line utility grep
has a regular expression syntax which matches patterns in lines of text. The sed utility defines a syntax for matching and replacing regular expressions. Often, these tiny languages can be used together inside a
shell to perform more complex programming tasks.
The line between domain-specific languages and scripting languages 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 byte-code or executable code, but to various kinds of truyền thông objects: GraphViz exports to PostScript, GIF,
JPEG, etc., where Csound compiles to audio files, and a ray-tracing domain-specific language like POV compiles to graphics files. A computer language like SQL 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 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.
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.
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
functional language XSLT, 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.
model-driven engineering, many examples of domain-specific languages may be found like OCL, a language for decorating models with assertions or QVT, a domain-specific transformation
language. However, languages like UML are typically general-purpose modeling languages.
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, 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 their current workbench, realize they need a better drill and find that a particular domain-specific language provides exactly that.
External and Embedded Domain Specific
DSLs implemented via an independent interpreter or compiler are known as External Domain Specific Languages. Well known examples include LaTeX or AWK. A separate category known as Embedded (or Internal) Domain Specific
Languages 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.
There are several usage patterns for domain-specific
- Processing with standalone tools, invoked via direct user operation, often on the command line or from a
Makefile (e.g., grep for regular expression matching, sed, lex, yacc, the GraphViz toolset, etc.)Domain-specific languages which are implemented using programming language macro systems, and which are converted or expanded into a host general purpose language compile-time or realtimeembedded
domain-specific language (eDSL), implemented as libraries which exploit the syntax of their host general purpose language or a subset thereof while adding domain-specific language elements (data types, routines, methods, macros etc.). (e.g. jQuery,
React, Embedded SQL, LINQ)Domain-specific languages which are called ( runtime) from programs written in general purpose languages like
C or Perl, to perform a specific function, often returning the results of operation to the “host” programming language for further processing; generally, an interpreter or virtual machine for the
domain-specific language is embedded into the host application (e.g. format strings, a regular expression engine)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) both.
Many domain-specific languages can be used in more than one way. DSL code embedded in a host language may have special syntax tư vấn, such as regexes in sed, AWK,
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
Domain-specific languages have important design goals that contrast with those of general-purpose languages:
- Domain-specific languages are less comprehensive.Domain-specific languages are much more expressive in their domain.Domain-specific languages should exhibit minimal redundancy.
In programming, idioms are methods imposed by programmers to handle common development tasks, e.g.:
- Ensure data is saved before the window is closed.
Edit code whenever command-line parameters change because they affect program behavior.
General purpose programming languages rarely tư vấn such idioms, but domain-specific languages can describe them, e.g.:
- A script can automatically save data.A domain-specific language can parameterize command line input.
Examples of domain-specific languages include HTML, Logo for
pencil-like drawing, Verilog and VHDL hardware description languages, MATLAB and GNU Octave for matrix
programming, Mathematica, Maple and Maxima for symbolic mathematics,
Specification and Description Language for reactive and distributed systems, spreadsheet formulas and macros, SQL for
relational database queries, YACC grammars for creating parsers, regular expressions for specifying
lexers, the Generic Eclipse Modeling System for creating diagramming languages, Csound for sound and music synthesis, and the input languages of
GraphViz and GrGen, software packages used for graph layout and graph rewriting,
Hashicorp Configuration Language used for Terraform and other Hashicorp tools,
Puppet also has its own configuration language.
The GML scripting language used by GameMaker Studio is a domain-specific language targeted novice programmers to easily be able to learn programming. While the
language serves as a blend of multiple languages including Delphi, C++, and BASIC, there is a lack of structures, data types, and other features of a full-fledged programming language. Many of the built-in
functions are sandboxed for the purpose of easy portability. The language primarily serves to make it easy for anyone to pick up the language and develop a trò chơi.
ColdFusion’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, , ftp, exchange, directory services, and file systems for use in websites.
The ColdFusion Markup Language (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.
The Erlang Open Telecom Platform was originally designed for use inside
Ericsson as a domain-specific language. The language itself offers a platform of libraries to create finite state machines, generic servers and sự kiện managers that quickly allow an engineer to deploy applications, or tư vấn libraries, that have been shown in industry benchmarks to outperform other languages intended for a mixed set of domains, such as C and C++. The language is now officially open source and
can be downloaded from their website.
FilterMeister is a programming environment, with a programming language that is based on C, for the specific purpose of creating
Photoshop-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.
The Template feature of MediaWiki is an embedded domain-specific
language whose fundamental purpose is to tư vấn the creation of page templates and the transclusion (inclusion by reference) of MediaWiki pages into other MediaWiki pages.
There has been much interest in domain-specific languages to improve the productivity and quality of software engineering. 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.
The Software Cost Reduction Toolkit is an example of this. The toolkit is a suite of utilities including a specification editor to create a
requirements specification, a dependency graph browser to display variable dependencies, a consistency checker to catch missing cases in
well-formed formulas in the specification, a model checker and a theorem prover to check program properties against the specification, and an invariant generator that
automatically constructs invariants based on the requirements.
A newer development is language-oriented programming, an integrated software engineering methodology based mainly on creating, optimizing, and using domain-specific
Complementing language-oriented programming, as well as all other forms of domain-specific
languages, are the class of compiler writing tools called metacompilers. A metacompiler is not only useful for generating parsers and code generators for domain-specific languages, but a
metacompiler itself compiles a domain-specific metalanguage specifically designed for the domain of metaprogramming.
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 program transformation systems.
Metacompilers that played a significant role in both computer science and the computer industry include
Meta-II, and its descendant TreeMeta.
Unreal Engine before version 4 and other games
Unreal Tournament unveiled a language called UnrealScript. This allowed for rapid development of modifications compared to the competitor Quake (using the
Id Tech 2 engine). The Id Tech engine used standard C 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 Lua for scripting.
Rules Engines for Policy
Various Business Rules Engines have been developed for automating policy and business rules used in both government and private industry.
ILOG, Oracle Policy Automation, DTRules, Drools and others provide tư vấn for
DSLs aimed to tư vấn various problem domains. DTRules goes so far as to define an interface for the use of multiple DSLs within a Rule Set.
The purpose of Business Rules Engines is to define a representation of business logic in as human-readable fashion as possible. This allows both
subject-matter experts 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 Decision Tables) coupled with
alternatives to programming syntax in favor of DSLs.
Statistical modelling languages
Statistical modelers have developed domain-specific languages such as
R (an implementation of the S language), Bugs,
Jags, and Stan. These languages provide a syntax for describing a Bayesian model and generate a method for solving it using simulation.
Generate model and services to multiple programming
Generate object handling and services based on an Interface Description Language for a
Gherkin 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 line-oriented design. 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.
Other prominent examples of domain-specific languages include:
- Emacs LispGame
Description LanguageOpenGL Shading LanguageGradleActionScript
Some of the
- Domain-specific languages allow solutions to be expressed in the idiom and 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 case.Domain-specific languages allow validation the domain level. As long as the language constructs are safe any
sentence written with them can be considered safe.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 domain.Domain-specific languages are easier to learn, given their limited scope.
Some of the disadvantages:
- Cost of learning a new languageLimited applicabilityCost of designing, implementing, and maintaining a domain-specific language as well as the tools required
to develop with it (IDE)Finding, setting, and maintaining proper scope.Difficulty of balancing trade-offs between domain-specificity and general-purpose programming language constructs.Potential loss of processor
efficiency compared with hand-coded software.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.Non-technical domain
experts can find it hard to write or modify DSL programs by themselves.Increased difficulty of integrating the DSL with other components of the IT system (as compared to integrating with a general-purpose language).Low supply of experts in a particular DSL tends to raise labor costs.Harder to find code examples.
Tools for designing domain-specific languages
- JetBrains MPS is a tool for designing
domain-specific languages. It uses projectional editing 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 language
workbench, and an Integrated Development Environment (IDE) for such languages.MontiCore 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.Xtext 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
supporting Emacs, Vim, VSCode and others) and command line tools designed to accommodate creating both domain-specific and general purpose languages.
- Language workbenchArchitecture description languageDomain-specific entertainment languageLanguage for specific purposesJargonMetalinguistic abstractionProgramming domain
^ Fowler, Martin; Parsons, Rebecca. “Domain Specific Languages”. Retrieved 6 July
a b Marjan Mernik, Jan Heering, and Anthony M. Sloane. When and how to develop domain-specific languages. ACM Computing Surveys, 37(4):316–344,
b Diomidis Spinellis. Notable design patterns for domain specific languages. Journal of Systems and Software, 56(1):91–99, February 2001.
doi:10.1016/S0164-1212(00)00089-3^ Felleisen, Matthias; Findler, Robert Bruce; Flatt,
Matthew; Krishnamurthi, Shriram; Barzilay, Eli; McCarthy, Jay; Tobin-Hochstadt, Sam (March 2022). “A Programmable Programming Language”. Communications of the ACM. 61 (3): 62–71.
doi:10.1145/3127323. S2CID 3887010. Retrieved 15 May
^ Heitmeyer, C. (1998). “Using the SCR* toolset to specify software requirements” (PDF). Proceedings. 2nd IEEE Workshop on Industrial Strength
Formal Specification Techniques. IEEE. pp. 12–13. doi:10.1109/WIFT.1998.766290. ISBN 0-7695-0081-1. S2CID 16079058. Archived from
the original (PDF) on
^ Shorre, D. V. (1964). “META II a syntax-oriented compiler writing language”. Proceedings of the 1964 19th ACM National Conference: 41.301–41.3011.
doi:10.1145/800257.808896. S2CID 43144779.
^ Carr, C. Stephen; Luther, David A.; Erdmann, Sherian (1969). “The TREE-META Compiler-Compiler System: A Meta Compiler System for the Univac 1108 and General Electric 645”.
University of Utah Technical Report RADC-TR-69-83. Archived from the original on February 1,
^ a b Freudenthal, Margus (1 January 2009). “Domain Specific Languages in a Customs Information System”. IEEE Software: 1.
^ Aram, Michael; Neumann, Gustaf (2015-07-01). “Multilayered analysis of co-development of business information systems” (PDF). Journal of Internet Services and Applications. 6 (1). doi:10.1186/s13174-015-0030-8. S2CID 16502371.
^ Miotto, Eric. “On the integration of domain-specific and scientific bodies of knowledge in Model Driven Engineering” (PDF). Archived
from the original (PDF) on 2011-07-24. Retrieved
2010-11-22.^ “JetBrains MPS: Domain-Specific Language
“Xtext”.^ Tobin-Hochstadt, S.; St-Amour, V.; Culpepper, R.; Flatt, M.; Felleisen, M. (2011). “Languages as Libraries” (PDF). Programming Language Design and
^ Flatt, Matthew (2012). “Creating Languages in Racket”. Communications of the ACM. Retrieved
- Dunlavey (1994). Building Better Applications: a Theory of Efficient Software Development.
International Thomson Publishing. ISBN 0-442-01740-5.
Heitmeyer, Constance (1998). “Using the SCR Tool-set to Specify Software Requirements” (PDF). Proceedings, Second IEEE Workshop on Industrial Strength Formal Specification Techniques, Boca Raton, FL, Oct. 19, 1998: 12–13.
doi:10.1109/WIFT.1998.766290. ISBN 0-7695-0081-1. S2CID 16079058. Archived (PDF) from the original on February 1,
Mernik, Marjan; Heering, Jan & Sloane, Anthony M. (2005). “When and how to develop domain-specific languages”. ACM Computing Surveys. 37 (4): 316–344.
doi:10.1145/1118890.1118892. S2CID 207158373.
Spinellis, Diomidis (2001). “Notable design patterns for domain specific languages”. Journal of Systems and Software. 56 (1): 91–99.
Parr, Terence (2007). The Definitive ANTLR Reference: Building Domain-Specific Languages. ISBN 978-0-9787392-5-6.
Larus, James (2009). “Spending Moore’s Dividend”. Communications of the ACM. 52 (5): 62–69. doi:10.1145/1506409.1506425.
ISSN 0001-0782. S2CID 2803479.
Werner Schuster (June 15, 2007). “What’s a Ruby DSL and what isn’t?”. C4Media. Retrieved
2009-09-08.Fowler, Martin (2011).
Domain-Specific Languages. ISBN 978-0-321-71294-3.Brambilla, Marco; Cabot, Jordi; Wimmer, Manuel (2012). Model Driven Software Engineering in Practice. Synthesis Lectures on Software Engineering. Vol. #1. Morgan & Claypool. ISBN 978-1-62705-708-0.
- “Minilanguages”, The Art of Unix
Programming, by Eric S. RaymondMartin Fowler on domain-specific languages and Language Workbenches. Also in
a video presentationDomain-Specific Languages: An Annotated BibliographyOne Day Compilers: Building a small domain-specific language using OCamlUsenix Association: Conference on Domain-Specific Languages (DSL ’97) and 2nd Conference on Domain-Specific Languages (DSL ’99)Internal Domain-Specific
LanguagesThe complete guide to (external) Domain Specific LanguagesjEQN example of internal Domain-Specific Language for the Modeling and Simulation of Extended
- External DSLs with Eclipse technology”Building Domain-Specific Languages over a Language Framework”. 1997.
Using Acceleo with GMF : Generating presentations from a MindMap DSL modelerUML vs. Domain-Specific LanguagesSagar Sen; et al. (2009). “Meta-model Pruning”.
What is the term for a style of language use in which language is used primarily to label objects group of answer choices?
Toddlers with a referential language style use vocabulary to refer to things. They label objects and people, and structure their speech with the goal of being understood.
Is a style of language in which language is used primarily to label objects?
PSY 335-Ch 8.
What is the term for the theory that a genetically determined?
biological determinism, also called biologism or biodeterminism, the idea that most human characteristics, physical and mental, are determined conception by hereditary factors passed from parent to offspring.
What is the term for the overly broad use of words?
Overextension. The overly broad use of words, overgeneralizing their meaning.
Tải thêm tài liệu liên quan đến nội dung bài viết What is the term for a style of language used in which language is used primarily to label objects?
Expressive style language
Referential words Examples
Video What is the term for a style of language used in which language is used primarily to label objects? ?
Bạn vừa tìm hiểu thêm nội dung bài viết Với Một số hướng dẫn một cách rõ ràng hơn về Review What is the term for a style of language used in which language is used primarily to label objects? tiên tiến và phát triển nhất
Chia Sẻ Link Download What is the term for a style of language used in which language is used primarily to label objects? miễn phí
You đang tìm một số trong những ShareLink Download What is the term for a style of language used in which language is used primarily to label objects? miễn phí.
Giải đáp vướng mắc về What is the term for a style of language used in which language is used primarily to label objects?
Nếu sau khi đọc nội dung bài viết What is the term for a style of language used in which language is used primarily to label objects? vẫn chưa hiểu thì hoàn toàn có thể lại Comment ở cuối bài để Mình lý giải và hướng dẫn lại nha
#term #style #language #language #primarily #label #objects