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
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,
FedericoP.S. For these posts you can use the āintroductionā category
Unsubscribe | Update your profile | Corso Siccardi 11/BIS, Turin, TO 10122