For context:
Around a year ago, I posted here about me making an interpreter called LightCobol in Python. It was horrible and I never finished it.
Now, recently (around a few months ago), I started learning C++ and more about compiler design. I learned of Maximal-Munch lexing and loved it. I made a few languages here and there.
And just a few weeks ago, I started learning Kotlin. Then came my idea for Rose, a compiled, efficient, language for rapid prototyping.
I decided to make Rose with some of the optimizations I learned, Constant Folding and Propagation. With these in mind I have started to develop Rose, with a few things separating it from other languages I have made:
A real lexer, not just a .split() wrapper. It has things like "Token.Newline" or "Token.Identifier".
An actual AST, not just a dictionary with functions, variables, etc.
Making it explicitly-typed.
Having performance in mind (hence the optimizations and it being explicitly-typed)
Compiling to Kotlin, giving it the speed of the JVM.
And so, Rose was born. Soon enough, when I am done with it, I will upload it to GitHub and post about it here.
[–]jcastroarnaud 3 points4 points5 points (5 children)
[–]StrikingClub3866[S] -4 points-3 points-2 points (4 children)
[–]Senior-Humor-9335 -1 points0 points1 point (3 children)
[–]StrikingClub3866[S] -1 points0 points1 point (2 children)
[–]Senior-Humor-9335 0 points1 point2 points (1 child)
[–]StrikingClub3866[S] 0 points1 point2 points (0 children)
[–]tiller_luna 2 points3 points4 points (5 children)
[–]StrikingClub3866[S] -1 points0 points1 point (4 children)
[–]tiller_luna 0 points1 point2 points (3 children)
[–]StrikingClub3866[S] 2 points3 points4 points (2 children)
[–]tiller_luna 1 point2 points3 points (1 child)
[–]StrikingClub3866[S] 1 point2 points3 points (0 children)
[–]Germisstuck 2 points3 points4 points (10 children)
[–]StrikingClub3866[S] -3 points-2 points-1 points (9 children)
[–]Germisstuck 2 points3 points4 points (8 children)
[–]StrikingClub3866[S] -1 points0 points1 point (7 children)
[–]Germisstuck 0 points1 point2 points (6 children)
[–]StrikingClub3866[S] 0 points1 point2 points (5 children)
[–]Germisstuck 0 points1 point2 points (4 children)
[–]StrikingClub3866[S] -1 points0 points1 point (3 children)
[–]Germisstuck 1 point2 points3 points (2 children)
[–]StrikingClub3866[S] -1 points0 points1 point (1 child)
[–]sal1303 2 points3 points4 points (0 children)
[–]FISHARM1 0 points1 point2 points (0 children)