|Home \ Graduation Activities \ Post-Graduation Page||Login|
Inferência de Tipos Em Ruby
Dynamic typed object oriented languages, thanks to their high expressiveness and flexibility, can be used to develop software quickly and with higher quality. However, their use has not yet been preferential in business contexts, mostly because the principal advantage of those languages is also their greatest disadvantage. The fact that the concrete types of the expressions are unknown until run time hinders optimizations such as method inlining and also makes it very difficult to design certain development tools, such as automatic refactoring browsers. In this work, it is carried out a review of the state of the art of concrete type inference for dynamic typed object oriented languages. It is also proposed a concrete type inference system for a subset of the Ruby language. Among the addressed parts of the language that are addressed, we emphasize the following: the typing of message sends, using an adaptation of the Cartesian Product Algorithm; the ability to capture the time of definition of classes and methods; and the typing of objects when instance specific behavior is added, which corresponds to a situation of dynamic type change. The proposed algorithm is able to obtain concrete types with high precision and shows very good potential as the foundation upon which the analysis of the remaining language constructs can be developed.
Start Date: 2007-02-28
End Date: 2008-12-05
Post-Graduation Student / Researcher / Professor: