Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re: Which internal DSL are there in Perl? (Domain Specific Languages - Part 1)

by sundialsvc4 (Abbot)
on Aug 05, 2017 at 17:09 UTC ( #1196806=note: print w/replies, xml ) Need Help??


in reply to Which internal DSL are there in Perl? (Domain Specific Languages - Part 1)

Now, this is interesting (to me), because my colloquial understanding of the term, “domain-specific language,” would more-likely include tools such as (the statistics programming language) “R.”   In particular, it would not be “represented within the syntax of a general-purpose language” (unless you refer to textual inclusion), nor would it be “a stylized use of that language.”

I really don’t know where that particular requirement comes from – nor why it is considered necessary.

For instance, neither the meta-language of HTML templates, nor the syntax of effective-languages such as Moose, is strictly tied to the underlying host language, Perl, except to the extent that both can seamlessly communicate (both with data, and procedurally) with that host-language environment.   I would consider both of these to be plausible candidates to be called DSLs, maybe, but would not describe ether as being “a stylized use of [Perl].”

Were I an attendee at your presentation, and should your presentation weigh too-heavily on this as a constraining definition of “what a domain-specific language is,” I might find myself a bit thrown-off-the-bus.

Let me for now stick to my direct experience – the use of “R.”   Often operating within the context of a traditional statistics project which uses SAS® or SPSS®, this obviously domain-specific language enables statisticians to perform certain tasks procedurally, instead of being forced to do it with what amount to “vendor-supplied macros.”   Although R is a procedural language, implemented in C, it is nonetheless entirely devoted to the “domain” of statistics.   Statisticians are thus able to describe their objectives in a way that otherwise would not be available to them, without having to be concerned with any issues that a “conventional” programming tool would require of them, and to readily accomplish what would otherwise be very cumbersome.   (It is no accident that many statistics packages, and other tools, have purposely created good interfaces to “R,” and have embraced it.   The language filled a great-big hole in their products, and did it for free.)

I would include Prolog in this (my) definition of DSLs, as well, because once again it enables one to describe and to tackle a well-defined class of problems (in this case) declaratively, and in some cases to do so within the context of other tools which leverage it.

In designing your presentation, I would advise that you should anticipate that participants (like myself) might bring to the conference room a self-defined meaning of your terminology which is not exactly aligned with yours, and/or with Dr. Fowler’s.   And that they might be put-off-base by it.   I would also stress that the subject is not ... is not at all ... very-closely aligned with (versus any other language or tool) “Perl.”   It is, in fact, a very generalized subject, although of course the conference in which you intend to present it (this time ...) is not.

  • Comment on Re: Which internal DSL are there in Perl? (Domain Specific Languages - Part 1)

Replies are listed 'Best First'.
Re^2: Which internal DSL are there in Perl? (Domain Specific Languages - Part 1)
by shmem (Chancellor) on Aug 06, 2017 at 12:12 UTC
    Were I an attendee at your presentation, and should your presentation weigh too-heavily on this as a constraining definition of “what a domain-specific language is,” I might find myself a bit thrown-off-the-bus.

    Of course, because you didn't get the point. Re-read the OP. This is not about DSLs in general, but about internal DSLs, which can mean: a) a subset of the perl language which addresses some domain, b) a perlish way to write some DSL code.

    Diatribing about DSLs in general is not requested and off topic.

    perl -le'print map{pack c,($-++?1:13)+ord}split//,ESEL'
      Why bother replying to a worst nodes champion?

      Please inform yourself about Dunning–Kruger effect before feeding a Ig Nobel prize contender. ;-p

      > a) a subset of the perl language which addresses some domain,

      Actually if you mean something like the RegEx engine I'd say it's external.

      Anyway the definition is from the author I mentioned in the OP (Martin Fowler), and might be fuzzy at times.

      > b) a perlish way to write some DSL code.

      Yes, my main interest are DSLs which are implemented using Perl vocabulary and syntactic sugar.

      Cheers Rolf
      (addicted to the Perl Programming Language and ☆☆☆☆ :)
      Je suis Charlie!

        A reply falls below the community's threshold of quality. You may see it by logging in.
Re^2: Which internal DSL are there in Perl? (Domain Specific Languages - Part 1)
by Anonymous Monk on Aug 05, 2017 at 18:05 UTC
    > would advise that you should anticipate that participants (like myself) might bring to the conference room a self-defined meaning of your terminology which is not exactly aligned with yours

    Your self-defined meaning for everything is vastly different from what everyone else knows and can prove. Give it up Mike, you're lies are transparent
      A reply falls below the community's threshold of quality. You may see it by logging in.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1196806]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (6)
As of 2019-07-16 16:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?