[Mono-list] Re: Should I fork the MonoBASIC project out of MCS?

A Rafael D Teixeira rafaelteixeirabr@hotmail.com
Thu, 14 Feb 2002 16:20:19 -0200

>From: "Kunle Odutola" Subject: RE: [Mono-list] Re: Should I fork the 
>MonoBASIC project out of MCS? Date: Thu, 14 Feb 2002 16:38:54 -0000 > 
>-----Original Message----- > From: mono-list-admin@ximian.com 
>[mailto:mono-list-admin@ximian.com]On > Behalf Of Miguel de Icaza > Sent: 
>13 February 2002 21:55 > To: A Rafael D Teixeira > Cc: Ravi Pratap M; 
>mono-list@ximian.com > Subject: [Mono-list] Re: Should I fork the MonoBASIC 
>project out of MCS? > > > Hello! > > > Do you think it is better to abandon 
>our previous design of a single > > executable capable of compiling many 
>sintaxes? I´ve already > merged MonoBASIC > > code with the Feb-10 snapshot 
>and it is working, albeit still > lacking true > > MonoBASIC compiling. > > 
>It is funny that you bring this up, because I just fired you an e-mail > 
>about this precise subject. For the sake of those reading the mailing > 
>list, I believe that having two compilers share the current driver will > 
>not work. > > Visual Basic and C# have vastly different semantic analysis > 
>requirements, and different ways of generating code, so at this point I > 
>am very skeptical of using the C# code base as the VB compiler code > base.
>Disagree. The VB.NET language (which MonoBASIC is designed to compile) is 
>*almost* C# with a VB-derived syntax. I suspect that that there is a great 
>deal more similarity once you get past the lexer/scanner than there are 
>differences. If we were talking about earlier versions of VB, you 
>[probably] would be right.
>What sort of differences in semantic analysis have you encountered or 
>foreseen that strongly suggest splitting the compilers?. I haven't looked 
>at mcs in detail for a while but there is a great deal of value in having a 
>framework that allows for multiple compiler front-ends to share an 
>increasingly sophisticated back-end. Or back-ends, in due course...

Well, I´m duplicating mcs to mbas, trying to keep it capable of compiling 
both languages. Some things must be added/changed like supporting 
case-insensitive resolution of symbols, for MonoBASIC´s sake.

>It reduces the TTM for adding new languages to Mono. Perhaps, what is 
>needed is a re-factoring of msc to have explicit interface for plugging in 
>different implementations of pretty much everything. This should cater for 
>extensions/implementations that are compiled into mcs.exe as well as those 
>supplied as stand-alone or external assemblies.

Also refactoring many of the structural classes is in the plans: my home 
version already switches parsers based on file extension, but more is 
needed, like achieving unbiased error messages and/or parameterized error 

Also higher level semantics like Generics (Parameterized classes), Multiple 
Inheritance, Closures, ... will have classes/interfaces in the backend to 
expedite adding new languages...

Happy hackings...

Rafael Teixeira
Brazilian Developer

Chat with friends online, try MSN Messenger: http://messenger.msn.com