Two Christchurch, New Zealand, academics have completed a Mac OS X port of Gyro, a project to extend Microsoft Corp.'s .Net development tools, with the help of Microsoft funding.
Nigel Perry and student Oliver Hunt of Canterbury University migrated 1.5 million lines of code to produce Gyro X, which runs on top of Rotor, a cross-platform version of the .Net tools released under Microsoft's shared source license.
Two Victoria University researchers, meanwhile, have received grants from IBM's Eclipse program to study alleviating difficulties with object-oriented programming.
The grants, totalling $US35,000, go to professor James Noble and associate professor Robert Biddle and make Victoria the only tertiary institution in Australasia to receive two awards from the Eclipse scheme in the current year.
A total of 70 researchers from around the world received the awards, which further use of IBM's Eclipse open source platform.
Canterbury's Perry says Gyro will be included in the next version of the .Net development tools, scheduled for release in 2005.
The project involves generic programming, which is polymorphic -- it allows a value to take multiple datatypes -- but does enforce a subtype, making it more likely that a programming error will be revealed at compilation rather than runtime.
"The purpose of generics is that it enables both more flexibility and fast code to be produced," Perry says. "It removes the need for a lot of tests that is otherwise there if you write in standard OO."
Perry and Hunt's changes are made in the Rotor virtual machine, where machine-specific code is used. That allows the code to compile and run, though it could be faster if done in runtime code.
"One of the things we're discussing is to build a faster version of Rotor," says Perry.
Because Gyro and Rotor are licensed under Microsoft's shared source license, they are available for free download but conditions are placed on their use. Perry says the Rotor code can't be included in a commercial product.
His motivation is to make the next generation of .Net development tools available to those who will be using it in the future, he says. "This is something which is coming and will have a very big impact on anybody who is programming on this platform. Anybody can go out and start using this code.
"Within minutes of us releasing it we received a thank you from Pisa, in Italy." Oliver and Perry are also writing a new chapter for a curriculum book, Concurrency: State Models and Java Programs. The pair are updating the book to include information on C#, a language used in .Net. The new chapter will be distributed online and will be part of any future edition, Perry says.
"We're doing the curriculum not because we're pushing C# or Java; it's just good for the students to see both," he says. "For academics, there's not a huge reason to change to C# from Java at the moment." Both projects are funded by Microsoft Research.
Victoria's Noble and his graduate students will use his part of the grant to further research into "ownership types". This is a way of controlling the access by one program object to another to prevent inadvertent or sometimes malicious side-effects. The mechanism by which an e-mail object accesses an address-book object to retrieve names for spam distribution is an example of such irregular use, Noble says.
Specifying an ownership type, through an extension to Java, can limit an object to accessing only those objects which it owns, or which its "parent" (the object that owns it) owns.
Noble invented the concept of ownership types while at Macquarie University in Sydney. Research on it has since been pursued by institutions all over the world.
Biddle's research revolves around the question of taking different views of a complex of objects. The most visible "aspect" of a set of objects is that which views them as analogs of real-world objects; a "till" object in a supermarket program will be associated with an object representing the aisle in which the real till is situated. But there are other concerns which cut across that neat division; common security measures for example, may concern all tills and other objects.
These tangled relationships can be very difficult to keep straight in the mind, and Biddle's current research has evolved animated diagrammatic techniques for representing them.
Using these techniques, a piece of Java code will be able to be "dropped on to" a Web site page, Noble says. It will display the diagram appropriate to its structure, assisting comprehension of an often difficult concept.