Kristian Kristensen’s Blog


My Thesis: Type Inference for Ruby

Posted in Code by Kristian Kristensen on the June 19th, 2007

So I’m just going to post the abstract for the thesis I handed in last Thursday. I worked with Martin Madsen and Peter Sørensen. The title is: Ecstatic – Type Inference for Ruby Using the Cartesian Product Algorithm

This master’s thesis documents Ecstatic – a type inference tool for the Ruby programming language. Ecstatic is based on the Cartesian Product Algorithm (CPA), which was originally developed for use in the Self language.

The major contributions of this thesis are: the Ecstatic tool that can infer precise and accurate types of arbitrary Ruby programs. By implementing CPA we confirm that the algorithm can be retrofitted for a new language. Utilizing RDoc we devise a method for handling Ruby core and foreign code both implemented in C. Using Ecstatic a number of experiments were performed that gained insights into the degree of polymorphism employed in Ruby programs. We present an approach for unit testing a type inference system. We compare Ruby to Smalltalk and Self, and conclude that their semantics are similar.

I think I’m going to talk more about my thesis in later posts. But we’ll see how it goes :)

  • If you like my writing you should subscribe to my RSS feed.

    5 Responses to 'My Thesis: Type Inference for Ruby'

    Subscribe to comments with RSS or TrackBack to 'My Thesis: Type Inference for Ruby'.

    1. Martin said,

      on June 20th, 2007 at 10:56 pm

      Where are you guys hiding the project? :-)


    2. on June 30th, 2007 at 1:46 pm

      In a very secret place… but maybe I can post the link… ;-)

    3. Vyacheslav Egorov said,

      on April 21st, 2008 at 10:04 am

      It seems that your thesis is still inaccessible, am I correct?

    4. Marek said,

      on November 12th, 2008 at 3:32 pm

      Is your thesis accessible in some way? Or could you send me a digital copy of it? Thanks in advance.


    5. on February 9th, 2009 at 11:02 pm

      Seems a few people have tried to find a link for the thesis. In the hope that others will not come in vain I’ve posted the link below. Please let me know if you find the thesis helpful or if you use it for something cool :-)

      https://services.cs.aau.dk/public/tools/library/details.php?id=1181807983

    Leave a Reply

    You must be logged in to post a comment.