AW: [mono-vb] VB.NET Compiler - Regarding

Jochen Wezel (CompuMaster GmbH)
Wed, 5 Jan 2005 13:14:09 +0100

Hi Jambu!

This sounds great, I think. This would help the basic compiler to profit =
from all optimizations which have been and will be done in mcs compiler.

Unfortunately, I'm not able to help in compiler tasks :(

Best wishes for 2005

-----Urspr=FCngliche Nachricht-----
Von: =
[] Im Auftrag von Jambunathan K
Gesendet: Mittwoch, 5. Januar 2005 13:00
Betreff: [mono-vb] VB.NET Compiler - Regarding

Hello All

As you might be knowing, I had been contributing to mono's VB.NET =
compiler for a brief period of time (in my capacity as an employee of

Now that I am no more bound with Novell, I am one among the whole lot of =
you involved with Mono.

Over the Christmas week, during some spare time, I had been spending =
some time building a VB.NET compiler out from the then mcs-HEAD. I am =
calling this new mcs derivative as bmcs ('a pun on gmcs').

I have essentially replaced C#'s tokenizer and parser (cs-tokenizer.cs & =
cs-parser.jay) with the mbas' tokenizer and parser (mb-tokenizer.cs & =
mb-tokenizer.jay) and I have got to a point where I can compile some =
simple, but not so trivial 'VB.NET programs'. I plan to evolve the =
current C# core towards a VB.NET core by liberally borrowing from the =
curent mbas code.

Here are e a few strong reasons why I indulged in such an experiment:

The current mbas code branched off from mcs sometime in 2001-2002.
This essentially leaves the "compiler core" as an alpha quality one.
Also two years is too much of a time that the code bases have diverged =

As I see, during the last two years, the VB.NET compiler code has =
essentially evolved on two fronts: 1) Merging patches or features from =
the mcs core which was added to mcs since the mbas fork 2) Introducing =
VB.NET specific semantics.

With the new approach 1) the effort spent on (1) gets reduced =
significantly 2) The trees could be get in sync so that pulling in =
partial classes or generics supoort in feature would be relatively a =
simple task. 3) It opens up possibility of a single mammoth code base =
that can be built to either C# compiler (mcs/gmcs) or VB.NET compiler =
(bmcs). Or atleast it will show up avenues for building a reusable code =
emission library from the current compiler for building new .NET =
langauge compilers.

I would be spending some time pampering this new beast. It is going to =
be essentially a night job and develop in bits and pieces.

If the community sees a value in this experiment and (IS interested in =
co-operatuing with me) I am willing to get in a new subdir mcs/bmcs in =
to svn.

Otherwise I can privately nurture my efforts and release it to the =
community once it is a sufficiently evolved.

I invite views from the community. (I would be particularly happy to =
hear from anyone who is willing to co-opearte with this effort of

With best wishes for the new year 2005,
Jambunathan K.
Mono-vb mailing list