Henrik Bengtsson The R.oo package - Object-Oriented Programming with References Using Standard R Code ******************************************************************** An easy to install and platform independent package named R.oo, which provides support for references and mutable objects via a specific class model using standard R code, has been developed. The root class Object implements and encapsulates all the mechanisms needed for references in a way such that object fields are accessed similarly to how elements of a list are accessed with the important difference that the fields can be reassigned within methods. The class model also provides an easy way for defining classes that inherit directly or indirectly from the Object class. Any instance of a class that inherits from the Object class can be passed to functions by reference. Supplementary utility functions for defining constructors and methods in a simple and robust way are also made available. For instance, generic functions are created automatically and if non-generic functions with the same name already exist, they are, if possible, modified to become default functions. Currently, S3 classes and S3 methods are defined, but future versions of the package are likely to support S4 too. We also suggest an \R coding convention, which the utility functions test against, with the intention to bring additional structure to the source code. The package also extends the current exception handling mechanism in R such that exception objects can be caught based on their class. The R.oo package has successfully been used in a medium-size microarray project. Keywords: Object-oriented programming, reference variables, mutable objects, environments, coding conventions, exception handling, root class, generic functions, S3, UseMethod.