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

> Surely the plethora of OO helpers

I already thought about them, but I'd rather try to classify them as syntax extensions or syntactic sugar, because the domain is part of the host language.

But the distinction is fuzzy since techniques and requirements are similar.

For comparison LINQ is often called a DSL, while it's integral part of C#. (Language Integrated Query), at the same time there are ports for other host languages as external libraries, which are not fully equivalent, but surely a DSL. (Basically an expert in the LINQ domain could help using them, without knowing the host language in depth)

I'm not aware about a port of any M* lib to another language. ...

> I'm not entirely clear whether PDL would count as internal or external.

I had a quick look into the docs and it's really too wast to tell.

I can see operator overloading (internal) and a dependency to Filter::Simple (external)

And despite the L in the name, it doesn't look independent enough to be a DSL.

maybe I'm missing a good tutorial, it certainly has elements of all in its large code base.

You see im struggling to find objective definitions, maybe it's better to concentrate on the applied techniques... :)

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

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

Replies are listed 'Best First'.
Re^3: Which internal DSL are there in Perl? (Domain Specific Languages - Part 1)
by ikegami (Patriarch) on Aug 04, 2017 at 21:18 UTC

    I already thought about them, I'd rather try to classify them as syntax extensions or syntactic sugar

    I would include them. They form a language to describe classes and attributes, and their relations.

Re^3: Which internal DSL are there in Perl? (Domain Specific Languages - Part 1)
by etj (Priest) on May 09, 2022 at 13:40 UTC
    I'd say that PDL::NiceSlice (the Filter::Simple-using module) which creates the "new" syntax $pdl1(0:4,2;-) is definitely a DSL, particularly if LINQ counts.