![]() | This article is rated C-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||
|
I my mind, the first example of a domain-specific language is "blocks world" - an AI experiment that created a small language specific to a very particular domain. I am reasonably certain I heard this term used in the late 1970's or early 1980's ... but finding reference material on the web from pre-web time is more difficult. (Or was the term used only verbally? Impossible to prove.) I read the description of "blocks world" as an undergraduate in the late-1970's.
Lisp was a primary platform for domain-specific languages in that time. (AI experiments, Emacs Lisp, AutoLisp in AutoCAD - are early examples.) We used what amounted to a domain-specific language to at UCI in a research project add a pretty-printer to an Ada development environment the group was building, and got a great deal done with a small amount of effort. That was a strong early lesson (in the late 1970's).
I was acquainted with the notion of domain-specific languages from school (late 1970's), but it is possible I heard the term slightly later. Two questions:
Please note that Martin Fowler has his own definition of a Domain Specific Language. This is especially true when it comes the concept of EDSLs. There should be a clear distinction between MF's definition and the "classical" definition.
The statement regarding the legend of John Henry is unclear. Could someone clarify this? Bsmntbombdood 21:59, 6 May 2006 (UTC)
I feel Graphviz is a package of graph rendering tools including dotty, which renders graphs specified in DOT Language. -- Sundar 09:35, Apr 2, 2004 (UTC)
One thing this article doesn't mention that I think it should is that DSLs need not be text-based. Good examples of this is a GUI builder for VB, and a circuit builder. Both have a WYSIWYG editor and semantics. Furthermore, both of these have textual representations but are easier to create graphically. --Andrew Eisenberg 00:58, 6 May 2005 (UTC)
I think there is some need for explaining that the drawbacks of pure DSLs can be compensated by embedding the DSL into a GPL.
http://en.wikipedia.org/w/index.php?title=Little_languages&diff=prev&oldid=29551180
This makes the access to lower abstraction levels possible, while keeping the benefits of abstraction level stacking.
EDSLs also allow to mix DSLs easily.
Examples are macro packages for C/C++ or rule based syntax transformations in Dylan/Scheme. Of course procedural macro facilities provide the greatest power (Common Lisp has this).
While macros can be used to implement DSLs; DSLs and macros are not the same. --EngineerScotty 20:02, 7 December 2005 (UTC)
I propose general-purpose programming language be merged to this article, because it discusses the same topic, just from the other direction. That article is minor and largely overlaps with this article and programming language. Most if not all of the article to be merged is already said on these two articles. --TuukkaH 19:52, 17 February 2006 (UTC)
Hi. I think that to merge GPLs and DSLs articles depends on the point of view you see DSLs and the general concept you are looking for. I mean, why don't to merge DSLs article with DSM (domain-specific modeling) and MDA (model-driven architecture) too? They can be seen as different ways of model-based development. I think that to have separated articles is the best choice, and to have a link to the GPLs article is enough (dictionaries have no links!). Don't be angry with the thing I will say, but if we use the argument you give in an extremal way, we could found some day in the future an article that explains everything, starting by the big-bang. We also have to have in mind what is a "good definition"... Wikipedia:Wikipedia_is_not_a_dictionary#Good_definitions --Pablo.barrientos 05:23, 20 March 2006 (UTC).-
Not all languages are programming languages. There are also modeling languages. Not all DSLs are DSPL (Domain Specific Programming Languages). The systematic redirection from DSL to DSPL is confusing to many. PL/1 is a GPPL (General Purpose Programming Language). UML is an example of a GPML (General Purpose Modeling Language). There are plenty of DSML (Domain Specific Modeling languages). that are currently been defined in model engineering. Not all of them are executable. (MDE)
I'm new to wiki so I'm not sure how to add a new discussion entry. As such i'm piggy-backing on this one since it seems the most related. I would like to suggest that YACC is not a programming language, it is a parser-generator. YACC and other generators use syntax-specific languages, such as BNF. (regards, David Kaplan)
I think it might be a good idea to reference how Software Factories can be implemented when using a DSL. Ideass? —The preceding unsigned comment was added by SCMcDonnell (talk • contribs) 21:49, 5 December 2006 (UTC).
To summarize, an analogy might be useful: a Very Little Language is like a knife, which can be used in thousands of different ways
What is a Very Little Language? Should this be 'scripting language' or something similar? —Preceding unsigned comment added by 86.41.36.254 (talk) 22:09, 1 April 2008 (UTC)
Domain-specific language (Redirected from General-purpose programming language)
general-purpose programming language in Domain-specific language redirects to Programming paradigm
Do shell scripting languages like Bash fall under the "domain specific" category. If they do, they'd probably make an excellent example for the introduction. —Preceding unsigned comment added by 128.36.68.99 (talk) 02:25, 14 February 2009 (UTC)
I dont think they do. In my experience scripting languages (including bash) are used either as glue between components (excluding the original use case of [k]sh etc. as an alternative to using a compiled language for writing OS components - one might argue this was an original domain for these languages) or as general-purpose languages (implementing all kinds of business logic without functional assumptions). Of course, whether the second usage is a good idea is highly-dependent on the problem that one is trying to solve. To be honest I think this page would strongly benefit from being rewritten by attempting to define domain at the start (with admission of the vagaries of the term) and move on from there.
217.43.81.139 (talk) 22:21, 19 October 2009 (UTC)TooLazyToImplementMyOwnSuggestionButThisPageSeemsToMissTheBeautyOfDSLsWhichCanOnlyBeAShame
Why is UML presented as an opposite of a DSL? UML is in itself clearly not a DSL. But the UML offers a set of extension mechanisms that can be used to define a graphical DSL. —Preceding unsigned comment added by 132.229.16.173 (talk) 14:50, 11 October 2010 (UTC)
I vehemently disagree that Bash or other shell scripting languages are domain specific. The entire section about shell scripts should be removed. HTML makes webpages, VHDL designs pcbs, what does bash do? Anything. The section states bash is for "data organization", but shell scripts are no more focused on that than anything else. It mentions weaving together little parsing tools like grep and wc, but those listed are a handful out of uncountable millions of tools encompassing literally anything anyone can get a computer to do. And those commands aren't part of bash anyway, bash itself is about starting processes and directing output between them, access to variables, parsing/evaluating conditions, looping flow control, etc, with "convenient" syntax -- smells like a general purpose language to me. Obviously this is a spectrum between general-purpose and domain-specific, but I can't think of anything more general purpose than parsing arbitrary control flow, with arbitrary variables, to perform arbitrary actions, and handle their arbitrary results. If shell scripts are domain-specific it's not clear to me what the domain is, I don't think it's "data organization" just because it has streams and pipes which is a rather general-purpose feature. If anything the domain might be "manipulating unix environments", but what is a general-purpose language than one that "manipulates a computer"? Even if you can make some stretching argument that it technically qualifies as a domain specific language (somehow?), it's a terrible example of one for this article. The whole section is misleading and the one citation just points to an irrelevant definition of 'data'. 24.173.0.66 (talk) 01:27, 11 November 2020 (UTC)
UnrealScript maybe used in the "domain" of game scripting, but it doesn't seem like a DSL to me. It looks like a general purpose programming langauge to me. This is not a DSL.
Fresheneesz (talk) 22:37, 11 May 2012 (UTC)
Quake 1 is NOT scripted in standard C. Quake C is an interpreted DSL with very simple syntax, based on C. Rather limited and slow, but also easy to learn. Other Id software games, such as quake 3 and Doom 3 also used DSL for scripting. Quake 1 mods are widespread and many are well-known. Total conversion mods existed before engine source code went GPL. Original Team Fortress is a quake mod. Counter strike is a mod of Quake1-based Half Life. Build engine-based FPS games also used DSL for scripting before Unreal as far as I know. Overall, DSLs are widely used in game development for a long time. Most adventure games are programmed with DSLs. Another World, classic action game, is written in DSL. List can be huge. 80.249.84.110 (talk) 21:47, 19 November 2012 (UTC)
I would like to change the lead sentence from:
to
In stead of specific category of..., it can also be specific group of... or specific type of... or general type of....
I just made a similar change in the Domain-specific modeling, see here. However, here I want to discuss this change first. The reasons for this change are:
I would like to have some feed back on this. -- Mdd (talk) 11:50, 30 November 2012 (UTC)
A search for DSL takes you directly to the "Digital Subscriber Line" article. This surprised me; would it make sense to have a disambiguation page for DSL? AmigoNico (talk) 21:07, 28 December 2012 (UTC)
Perhaps we need more discussion of languages like Marc Davis' Media Streams see [1] — Preceding unsigned comment added by 64.5.67.75 (talk) 16:29, 10 January 2013 (UTC)
is FilterMeister really relevant anymore? ---62.23.212.218 (talk) 08:52, 21 August 2013 (UTC)
Configuration files should perhaps be added as a new subsection under the "Examples" section. Most configuration files are written using a very simple but specific language, i.e. domain specific with the application or system which is being configured being the domain. —Kri (talk) 02:40, 29 August 2015 (UTC)
Hello fellow Wikipedians,
I have just modified one external link on Domain-specific language. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
When you have finished reviewing my changes, please set the checked parameter below to true or failed to let others know (documentation at ((Sourcecheck))
).
This message was posted before February 2018. After February 2018, "External links modified" talk page sections are no longer generated or monitored by InternetArchiveBot. No special action is required regarding these talk page notices, other than regular verification using the archive tool instructions below. Editors have permission to delete these "External links modified" talk page sections if they want to de-clutter talk pages, but see the RfC before doing mass systematic removals. This message is updated dynamically through the template ((source check))
(last update: 18 January 2022).
Cheers.—InternetArchiveBot (Report bug) 21:52, 14 December 2016 (UTC)