Goals in language engineering

Federico asked via email

what do you want to achieve using Language Engineering?

Software engineering is a very new discipline, and we are still discovering what is possible, so for me I am trying to learn as much as I can.

I feel language-oriented programming (LOP) lop as described in A Programmable Programming Language is the next step in language engineering and the next stage in the evolution of programming languages - with the enabling genes quietly evolving in the Lisp and Scheme languages since the 1960ā€™s.

The ā€˜staged metaprogrammingā€™ of the compiler intermediate layer described by Robby Findler in his PADL keynote at POPLā€™23 changed how I see compilers: https://racket.discourse.group/t/padl23-modern-macros/1805?u=spdegabrielle

For me the #lang mechanism in Racket is an exciting approach supporting both completely different languages with new syntax and semantics (#lang datalog) or extending the parser of existing languages with reader extensions (e.g. #lang 2d racket/base or #lang at-exp racket/gui, where 2d and at-exp specify reader extensions)

That I get language specific IDE tooling and a fast incremental compiler for free when I use the #lang protocol is a bonusšŸ˜. (code typed at the REPL is compiled to native x86 or arm code so quickly people assume it is an interpreter - but people can and do write interpreters in racket too)

A programmable programming language. Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi, Eli Barzilay, Jay McCarthy, and Sam Tobin-Hochstadt. 2018. Communications of the ACM 61, 3 (March 2018), 62ā€“71. A programmable programming language | Communications of the ACM
links at ACM access to A Programmable Programming Language - General - Racket Discourse

Iā€™d like to apply my learning to making programming accessible to clinicians and health information workers in a way that is safe - but Iā€™m still pondering the opportunities. (Python was a step in the right direction but is is still inaccessible to too many people)

Best regards

Stephen :beetle:

On Fri, 14 Apr 2023 at 13:15, federico@tomassetti.me federico@tomassetti.me wrote:

Hi,

Ok, this is going to be an hard one.

I would like you to think about your goals: what do you want to achieve using Language Engineering?

Do you want to write a simple parser because your boss asked it?

Do you want to solve an open research problem?

Do you want to adopt a DSL to make your organization more efficient?

Do you want to build your own editor?

Do you want to migrate from some old language to a new fancy language using a transpiler?

Do you dream to concrete a revolutionary programming language?

Is it your goal to use a code generator to automatize the boring bits of your job?

Let us know by creating a new post. Maybe someone will be able to help, maybe someone will have a similar need and you can vent about it together. Who knows what can come out of it if you take a few minutes to share it.

Sometimes it is helpful to stop and reflect on your goals, as it brings clarity to ourselves. So why not doing so inside a community of peers?

Cheers,
Federico

P.S. For these posts you can use the ā€œintroductionā€ category

Unsubscribe | Update your profile | Corso Siccardi 11/BIS, Turin, TO 10122

2 Likes