[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: new cohort for "Building a Programming Language"
- From: rzvxa <rzvxa@...>
- Date: Wed, 29 Nov 2023 18:47:37 +0000
Hello,
As it is right now I'm experimenting with different features and syntax ideas. In this stage, I can figure out what syntax sugars are good to have and what is bloat and should be left for the user to implement in their code base.
Some features may sound nice for example preprocessor macros are possible in this language, But doing it like what C does while efficient and 100% doable can lead to a disaster that's why I'm researching this topic at the moment, both Rust and Jai have interesting macro systems and I prefer to keep the syntax of macros similar to the base language and just interpret them at compile time instead of runtime.
On the other hand, I'm trying to decide between including a minimal runtime for more advanced types(for example hashmap, array, utf8 strings, functional iterators, and features that users decide to require in their project) or inline the metatables in the definition itself while generating the lua output.
These fundamental parts are hard to change after publishing the base language syntax and compiler.
When I pinpoint them I'll publish the whole source of the project under the MIT license on GitHub and I make sure to announce it on both Lua and LuaJIT mailing lists.
On Wednesday, November 29th, 2023 at 8:38 PM, Spar <developspartv@gmail.com> wrote:
It would be great if you share the link to GitHub repository of your project when you publish it!
On Nov 29, 2023 at 19:44 +0300, rzvxa <rzvxa@protonmail.com>, wrote:
Hi,
That's great! Sadly I'm living in a third-world country and can't pay for this course and it is such a shame since I'm currently working on a typed language with modern Lua-like syntax that transpiles into Lua (jit compatible). The syntax is inspired by Luau, Typescript, and Rust.
I'm writing it in Rust and because of multipass compilation/execution, I'm doing some optimizations that a lightweight language like Lua can't do by itself.
I would like to call this language "luar" as in moonlight but sadly there is already an active project on Git Hub with this name. But until I find a meaningful name as a replacement I'm calling it Luar.
Definitely getting to know the ideologies of one of the creators of Lua could really help in implementing Luar features(for example some that are missing in Lua 5.1 syntax or completely new ones like pattern matching), The idea itself isn't anything new but I think writing it in the Rust instead of Lua can help with performance, especially in cases that the developers want to embed this compiler along with lua itself for direct execution of Luar code instead of compiling it to Lua ahead of time.
I think using a language that can transpile into pure Lua can be a much better solution for enterprises instead of using a completely new interpreter(like what Luau offers) and it can offer complete lua-jit support with something like preprocessor if-else, so the developers can implement a pure lua compatible version of some of their functionalities in case they want jit performance in some environments and lua portability in others.
I hope I can catch this course next time(hopefully in a year or so) when I've migrated to a more sane country.
Kind Regards,
Ali Rezvani
On Wednesday, November 29th, 2023 at 7:40 PM, Roberto Ierusalimschy <roberto@inf.puc-rio.br> wrote:
A new cohort for the course "Building a Programming Language", with
Roberto Ierusalimschy, is starting in the beginning of December.
See [1] for details.
[1] https://classpert.com/classpertx/courses/building-a-programming-language/cohort
-- Roberto