Obstacl(ID:6717/obs003)


Stanford, 2002


References:
  • Patel, A J "Obstacl: A Language With Objects, Subtyping, And Classes" Stanford Univ 2002 view details Abstract: Widely used object-oriented programming languages such as C++ and Java support software engineering practices but do not have a clean theoretical foundation. On the other hand, most research languages with well-developed foundations are not designed to support software engineering practices. This thesis bridges the gap by presenting OBSTACL, an object-oriented extension of ML with a sound theoretical basis and features that lend themselves to efficient implementation. OBSTACL supports modular programming techniques with objects, classes, structural subtyping, and a modular object construction system. OBSTACL's parameterized inheritance mechanism can be used to express both single inheritance and most common uses of multiple inheritance. In addition, it can be used to implement designs that are difficult to implement with conventional single or multiple inheritance. There is a large space of possible designs for an object- oriented language. The design of OBSTACL is driven by program design and maintenance needs rather than simplicity or elegance. It explicitly supports both object to an object. Although simplicity was not a goal, OBSTACL's objects and classes are simpler than those in many object-oriented languages because many of the problems solved by complicated features in a purely object-oriented language are solved instead by a rich set of non-object features such as modules, vs. shallow equality, copying vs. cloning, and mutation) are answered by supporting both objects and non-objects in the same language. The resulting language is straightforward to implement efficiently and relatively simple to analyze mathematically.