Re: Lark - A surface syntax for Common Lisp

"Stefan Edwards (as saedwards dot ecc at gmail dot com)" <[email protected]>
Newsgroups gmane.lisp.lispworks.general
Message-ID <CAEMRNFMaYyTE1ujop5sLWr0FNhNBC32Behwxv+oGiSsYR8dN+A@mail.gmail.com>
Dylan had/has macros for D-Exprs to provide similar functionality to its
S-Expr syntax, it’s part of why D-Exprs were formalized the way they were
iirc. That’s to say nothing about all the work that has been done in other
languages that provide syntactic macros to non-SExpr-based languages.
Racket, Template Haskell, ppx and co for OCaml, nim, lots of systems have
decent macros at various levels now.

====
Q. How many Prolog programmers does it take to change a lightbulb?
A. No.


On Sun, Feb 15, 2026 at 10:49 David McClain (as dbm at refined-audiometrics
dot com) <[email protected]> wrote:

> On a more serious note, the existing S-expr surface syntax is a huge
> reason for the enormous utility of Lisp macros. Noisy syntaxae (sp?) just
> make that so much more difficult.
>
> You have issues of syntax operator precedence, left/right binding, etc.
> Just an absolute mess, and guaranteed to be different in some respects from
> other popular “noisy” languages. I fully suspect that this is the reason
> for abandoning early M-syntax for Lisp.
>
> After all the effort, S-exprs are simply easier to use and syntax-extend.
>
> A simple example of the “noise” level is to just compare JSON with S-expr.
> You can do absolutely everything with S-exprs that JSON syntax requires,
> and with half the number of keyboard keystrokes.
>
>
>
> > On Feb 15, 2026, at 08:14, Greg Menke (as gregm32768 at comcast dot net)
> <[email protected]> wrote:
> >
> >
> > I used a similar method writing a 8052 embedded cpu assember- a small
> language built on top of lisp so all the macros etc can be applied, and the
> effect of "running" it is to emit a located binary ready to run on the
> cpu.   Not used for realsies alas but disassembly of the object code shows
> it working.. the 8052 being sufficiently simple that its easy to work that
> out.   The theory was complex functions more advanced than simple macro
> assembly could be built up conveniently using lisp, perhaps not unlike
> Forth.
> >
> > It was fairly simple to write, but did need a bit of nuance to get
> things to work right eg macros etc.
> >
> > Greg
> >
> >
> > On 2/15/2026 8:16 AM, Yuri Davidovsky (as work at disclosure dot ie)
> wrote:
> >>> On 15 Feb 2026, at 11:03, Gerry Weaver <[email protected]> wrote:
> >>>
> >>> It was actually inspired by several languages. Lark isn't a standalone
> >>> language that happens to compile to Lisp — it's a skin over Common
> Lisp.
> >>> Every Lark construct maps directly to a CL form. fn is defun, struct is
> >>> defstruct, |x| x * 2 is (lambda (x) (* x 2)), @(...) drops straight
> into
> >>> s-expressions. You can call any CL function, use CFFI, define CLOS
> >>> methods with typed dispatch, write macros with backquote templates. The
> >>> FFI, the package system, the condition system, the type declarations —
> >>> it's all CL exposed through a friendly syntax.
> >> It appears that you picked up where John McCarthy left off.
> >>
> >> An interesting approach of making lisp a language that is more suitable
> for one personally, that is something that I would totally approve as I
> myself constantly invent ways of doing things differently and more
> conveniently. I have also been thinking recently about streamlined ways of
> parsing DSL languages in Lisp (essentially what you are doing here), and I
> think I haven’t come to a good conclusion how it should work.
> >>
> >> Tokenising appears to be easy enough to do using the standard Lisp
> reader, however I haven’t decided on a good way to do parsing/syntax
> checking of the resulting list of tokens. How do you go about parsing the
> tokens in order to extract the syntax patterns (say for an fn definition)
> and compile them into lisp? Have you used the parsergen package in
> Lispworks for that, or did you come up with your own parsing tool?
> >>
> >> I am not deeply familiar with the topic of computer languages’ parsing
> and would be interested to hear the perspective of someone who did some
> work in the area, as you evidently have.
> >>
> >>
> >>
> >>
> >> _______________________________________________
> >> Lisp Hug - the mailing list for LispWorks users
> >> [email protected]
> >> http://www.lispworks.com/support/lisp-hug.html
> >
> > _______________________________________________
> > Lisp Hug - the mailing list for LispWorks users
> > [email protected]
> > http://www.lispworks.com/support/lisp-hug.html
>
>
> _______________________________________________
> Lisp Hug - the mailing list for LispWorks users
> [email protected]
> http://www.lispworks.com/support/lisp-hug.html
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.