On Fri, 1 Mar 2019 at 18:00, Matthias Felleisen <[email protected]>
wrote:

>
>
> > On Mar 1, 2019, at 12:05 PM, Stephen De Gabrielle <
> [email protected]> wrote:
> >
> > Hi Matthias,
> > (or anyone else who is available to answer :))
> >
> > I'm trying to get my head around the range of possible languages in
> Racket.
> >
> > You got me thinking how many languages seem to have embedded little
> languages.
> > I was wondering how they fit into your categories of languages?
> >
> > 3. The nature of languages ranges from
> >         — stand-alone languages with ugly syntax (example: datalog)
> >         — #lang stand-alone DSLs (config, scribble)
> >
> > Does '#lang video' fit in this group?
>
> Yes.
>
>
> >
> >         — #lang language mixins (s-expr, 2d)
> >
> > Do regular #px""/#rx expressions fit in this category?
>
> I don’t understand how #px is similar to the s-expr or at-expr or 2d #lang
> mixins. I am referring to lines such as #lang at-exp scribble.

[...]
> p.s. In my mind, format and regexp-match (and similar functions) are
> interpreters for programs in DSLs that are written down as strings. That’s
> my opening slides for HtDL (from last year).


The example from Greg Hendershot, below, gave the impression they were like
at-exp and the #2dcond syntax extension seems to fit the same pattern as
#px , but I see what you mean about regex-match and format being
interpreters.
@pregexp{\d\.\d}  ; #px"\\d\\.\\d"  (from
https://www.greghendershott.com/2015/08/at-expressions.html )
(I do use that trick to make regexp more readable - at-exp is great)

leaving aside my confusion, my goal here is to a page to the racket website
that showcases an selection of languages made with Racket, that is better
than a search of things that define a #lang

*#lang stand-alone languages with non-s-exp syntax* (I'm inclined not to
include 'ugly syntax' on a PR for the racket website)

   - Algol 60
   - Datalog
   - Scratchy
   - ProfessorJ (deliberately included as ~30% of job ads in the UK specify
   Java)
   - Rash: The Reckless Racket Shell
   - Riposte

-

*#lang stand-alone DSLs (config?, scribble)*

(I don't know a 'config' lang apart from #lang info)


   - Scribble
   - Hackett <https://lexi-lambda.github.io/hackett/>
   - Heresy <https://docs.racket-lang.org/heresy/>
   - Lindenmayer <https://docs.racket-lang.org/lindenmayer/>
   - Parenlog <https://docs.racket-lang.org/parenlog/>
   - Pie <https://docs.racket-lang.org/pie/>
   - Video


*#lang language mixins (s-expr, 2d)*


   - #lang s-exp [module]
   - #lang 2d racket
   - #lang at-exp

*embedded DSLs with mostly coarse-grained interactions with Racket (redex)*

Redex (require redex)
[need to identify another example]


*embedded DSLs with fine-grained interaction with Racket *(the language of
class syntax; syntax-parse: the pattern and templated languages, which
interact via syn-pattern vars)


   - (require racket/class)
   - syntax-parse
   - syntax-case patterns and templates etc.
   -

string interpreters

   - regexp
   - format


Languages with other targets

   - Asi64
   - Pollen
   - Scribble (?)
   - Racket-script


Are these good categories?

Kind regards,

Stephen

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to