On Fri, 1 Mar 2019 at 18:00, Matthias Felleisen <matth...@felleisen.org>
wrote:

>
>
> > On Mar 1, 2019, at 12:05 PM, Stephen De Gabrielle <
> spdegabrie...@gmail.com> 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 racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to