Hello, from Robert

My name is Robert Einhorn from Hungary (Budapest).
I am interested in language design and ergonomics.

I am currently working on a C#-based language whose syntax would be BASIC-like, but its semantics would still be 100% C#.
My primary goal is a feasibility study of this idea with an ANTLR4-based parser.

Some of the main features of this new language:

  • Double transpiler:
    from C# to BASIC#
    from BASIC# to C#
    After a translation in any direction, we would always get the same code, of course with some formatting differences.
    In this way, the same application can be developed with C# or BASIC# syntax.

  • the new language would not contain new features (at least for now)

  • the blocks are based on indentation/dedentation and the coder can select 3 formatting options:
    named block termination like in Visual Basic:
    while b

    endwhile

    block termination with ‘end’ keyword like in Ruby:
    while b

    end

    block termination without keyword (with dedent) like in Python:
    while b

Furthermore, last but not least, it is an experimental method for developing a new programming language, the essence of which is the evolving of a language without compatibility problems.
The source code of the programs written in the new language (in our case, BASIC#) would never be saved, copied, or shared.
Saving, copying, and sharing the source code would be done by translating it into the base language (in our case, C#).
This would be a very important base rule that should be followed.
In this way, syntax modifications and changes could be made in the new language without compatibility problems due to new or better ideas that may arise.
Moreover, even semantic corrections could be implemented in the new language to a limited extent.
In our case, this would also provide an opportunity to transfer future changes from C# to BASIC#, which would be very difficult or unsolvable in the new language.
This would be a revolutionary new method of language development, which would speed up the evolution of programming languages in an extraordinary way.
Of course this is only experimental for the time being.

GitHub

Hi Robert, welcome here!

To me, your description sounds very much like an alternative projection of an existing language, not a different programming language.
If you want to dip your feet into this idea, you could use this partial C# implementation in MPS and create a different set of editors for the concepts.

You’d get the “never save in BASIC#, but translate back” for free – as it actually stores neither, but the AST.

Thank you.
Interesting project.
I will study it.