RubySharp and MorphR

Hi,

I created a web page for the theses of the student projects I have
talked about on the list during the last couple of months. Not all pdf
are up yet but hopefully I’ll have the time to add them before going on
a 3-week vacation (with no/little Internet connection!) tomorrow.

Feedback and comments appreciated.

http://www.pronovomundo.com/htu/theses2004/

Jan-Åke Hedström, "RubySharp – A Ruby to CIL Compiler"
This paper describes the development of RubySharp, a proof-of-concept
compiler. It is able to compile a subset of features from the dynamic
programming language Ruby into CIL (Common Intermediate Language), which
is a static assembler intermediate language in the .NET platform. The
language constructs of Ruby and CIL are examined to see what
similarities and differences that exist. To be able to support the
correct Ruby behaviour in all compiled programs, a class hierarchy is
developed for RubySharp. Additionally, basic goal programs are defined
in Ruby and in CIL, forming a specification for the RubySharp compiler
on how to compile the goal programs. Furthermore, other Ruby language
constructs, besides these introduced by the goal programs, are also
examined to see if and how they can be implemented on the .NET platform.

Kerstin Lyngfelt, "MorphR – a Morphic GUI in Ruby"
Building Graphical User Interfaces (GUI) has always been a challenge for
software engineers. Many patterns have been developed to help software
engineers in their work, some patterns with longer lifetime than others.
One pattern that has been used since the late 1970s is the
Model-View-Controller (MVC). The MVC pattern has limitations and
therefore modifications to the MVC pattern have been made to suit
different purposes. In this study, which aims to design and implement a
modern, flexible, easily extendible vector-based GUI for a dynamic
programming language, both the MVC pattern and other design options like
Morphic and Ion were analyzed. This paper initially looks at how MVC has
been implemented in different GUI frameworks and furthermore takes the
first step in applying said design in a flexible implementation in Ruby.
It will also look at how to use themes in order to provide different
graphical options of the same application.

Regards,

Robert Feldt

Very interesting! It’s great to see academical papers about Ruby being
written.

Will the sourcecode be someday available, especially for MorphR and
Rockit 0.5.0?

Regards,

Michael

···

On Thu, May 27, 2004 at 08:42:32PM +0900, Robert Feldt wrote:

Hi,

I created a web page for the theses of the student projects I have
talked about on the list during the last couple of months. Not all pdf
are up yet but hopefully I’ll have the time to add them before going on
a 3-week vacation (with no/little Internet connection!) tomorrow.

Feedback and comments appreciated.

http://www.pronovomundo.com/htu/theses2004/

Robert,

Hi,

I created a web page for the theses of the student projects I have
talked about on the list during the last couple of months. Not all pdf
are up yet but hopefully I’ll have the time to add them before going on
a 3-week vacation (with no/little Internet connection!) tomorrow.

Feedback and comments appreciated.

http://www.pronovomundo.com/htu/theses2004/

Jan-?ke Hedstr?m, “RubySharp ? A Ruby to CIL Compiler”

[snip]

My current internship requires me to dig inside the CLR as well and have
been curious about a Ruby to CIL compiler. I must say it was a true joy
reading Jan’s thesis. I believe he conveyed his work really well.

I do have a minor correction that I would like to point out. On page 11
of the PDF (there are no page numbers) Jan writes:

Limitations of interfaces are that they cannot derive from classes or other interfaces and they cannot have instance methods.

The fact is that interfaces can indeed derive from other interfaces. I
doubt this would have been useful during his project though. Perhaps you
could inform Jan about this.

Here is an example…

emiel@chyrellos:~/csharp> expand -t4 quux.cs
using System;

interface IFoo
{
void Foo();
}

interface IBar : IFoo
{
void Bar();
}

class Quux : IBar
{
public Quux()
{
//
}

public void Foo()
{
    Console.WriteLine("foo");
}

public void Bar()
{
    Console.WriteLine("bar");
}

static void Main()
{
    Quux q = new Quux();
    q.Foo();
    q.Bar();
}

}

…and the relevant CIL:

.class interface private auto ansi abstract ‘IFoo’
{

// method line 1
.method public virtual  hidebysig  newslot  abstract 
       instance default void 'Foo' ()  cil managed 
{
    // Method begins at RVA 0x0
} // end of method IFoo::instance default void 'Foo' () 

} // end of type IFoo

.class interface private auto ansi abstract ‘IBar’
implements IFoo {

// method line 2
.method public virtual  hidebysig  newslot  abstract 
       instance default void 'Bar' ()  cil managed 
{
    // Method begins at RVA 0x0
} // end of method IBar::instance default void 'Bar' () 

} // end of type IBar

Cheers,

Emiel

···
  • Robert Feldt (feldt@ce.chalmers.se) wrote:

    Emiel van de Laar
    PGP pubkey: %finger emiel@il.fontys.nl

Michael Neumann wrote:

···

On Thu, May 27, 2004 at 08:42:32PM +0900, Robert Feldt wrote:

Hi,

I created a web page for the theses of the student projects I have
talked about on the list during the last couple of months. Not all pdf
are up yet but hopefully I’ll have the time to add them before going on
a 3-week vacation (with no/little Internet connection!) tomorrow.

Feedback and comments appreciated.

http://www.pronovomundo.com/htu/theses2004/

Very interesting! It’s great to see academical papers about Ruby being
written.

Will the sourcecode be someday available, especially for MorphR and
Rockit 0.5.0?

Yes, the intention is to make open-source projects out of these. I’m
going on vacation now but I hope things will “pop up” here on ruby-talk
during the summer.

Regards,

Robert

Emiel van de Laar wrote:

Hi,

I created a web page for the theses of the student projects I have
talked about on the list during the last couple of months. Not all pdf
are up yet but hopefully I’ll have the time to add them before going on
a 3-week vacation (with no/little Internet connection!) tomorrow.

Feedback and comments appreciated.

http://www.pronovomundo.com/htu/theses2004/

Jan-?ke Hedstr?m, “RubySharp ? A Ruby to CIL Compiler”

[snip]

My current internship requires me to dig inside the CLR as well and have
been curious about a Ruby to CIL compiler. I must say it was a true joy
reading Jan’s thesis. I believe he conveyed his work really well.

I do have a minor correction that I would like to point out. On page 11
of the PDF (there are no page numbers) Jan writes:

Limitations of interfaces are that they cannot derive from classes or other interfaces and they cannot have instance methods.

The fact is that interfaces can indeed derive from other interfaces. I
doubt this would have been useful during his project though. Perhaps you
could inform Jan about this.

I believe that interface methods can also have default implementations.

Curt

···
  • Robert Feldt (feldt@ce.chalmers.se) wrote:

Curt Hibbs wrote:

Emiel van de Laar wrote:

Hi,

I created a web page for the theses of the student projects I have
talked about on the list during the last couple of months. Not all pdf
are up yet but hopefully I’ll have the time to add them before going on
a 3-week vacation (with no/little Internet connection!) tomorrow.

Feedback and comments appreciated.

http://www.pronovomundo.com/htu/theses2004/

Jan-?ke Hedstr?m, “RubySharp ? A Ruby to CIL Compiler”

[snip]

My current internship requires me to dig inside the CLR as well and have
been curious about a Ruby to CIL compiler. I must say it was a true joy
reading Jan’s thesis. I believe he conveyed his work really well.

I do have a minor correction that I would like to point out. On page 11
of the PDF (there are no page numbers) Jan writes:

Limitations of interfaces are that they cannot derive from classes or other interfaces and they cannot have instance methods.

The fact is that interfaces can indeed derive from other interfaces. I
doubt this would have been useful during his project though. Perhaps you
could inform Jan about this.

I believe that interface methods can also have default implementations.

Thanks, for your corrections; we will check this and update accordingly.
I don’t think we can use the interface inheritance but default methods
could be very useful (when inheriting a CIL class on the Ruby side).

Regards,

Robert

···
  • Robert Feldt (feldt@ce.chalmers.se) wrote: