Hey All,

 

I was thinking about a new approach to this whole topic. Has anyone worked
with DSLs before? We could write a DSL->IL (DSL compilers are easy to write
because the programmer non-intuitively parses the code as he writes it)
compiler that is far more efficient than a C# compiler. We would then be
able to concentrate on the architecture of the Kernel instead of the
implementation.

 

I have also been thinking. We need to extend MSIL to allow for assembler
commands (or am I lost, are they already there?). Something like the
following:

 

... IL

asm{

                mov ax, bx

}

ret

 

Our legendary AOT man could then do a simple replacement on the IL when he
compiles it, e.g. (excuse the IL, I haven't worked with it enough):

 

Ld.arg Foobar

Asm

{

                pop ax

}

Ret;

 

Would become:

 

Asm

{

                Push (address of foobar)

}

Asm

{

Pop ax
}

Asm

{

                Ret

}

 

Which would then become:

 

Asm

{

                Push (address of foobar)

                Pop ax

                Ret

}

 

What you all think? The IL would simply get a new construct:

 

ASM ::= <0xFA> [int8 length]

 

Which could be chained if the ASM is longer than 256 bytes. E.g.

 

0xFAFF [256 bytes of assembler] 0xFAFF [256 bytes of assembler] 0xFA01 [1
byte of assembler].

 

^^ Is actually one assembler block. This is how some binary XML serializers
work.

 

*Do I finally I have write access to the sandbox?*

 

Jonathan Chayce Dickinson

 

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
SharpOS-Developers mailing list
SharpOS-Developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sharpos-developers

Reply via email to