Projects

Subtyping with Parametric Polymorphism

Many modern languages have support for parametric polymorphism such as Generics in Java. Parametric polymorphism enhances the readability, maintainability, and safety of programs. Subtyping promotes software reuse by allowing code to be applied to a larger set of terms. Integrating both approaches is far from trivial. For example, consider a Generic interface List<E>, where E is a type parameter and instances of E can be read-from or written-to instances of List<E>. Even if String is a subtype of Object, it is not safe to assume List<String> is a subtype of List<Object>. Variance mechanisms enable greater subtyping between parametric types but can be difficult to use and cause a proliferation of types. This project aims at providing programming language mechanisms to better support subtyping with parametric polymorphism.

Feature-Based CAD System Interoperability

Computer-aided design (CAD) systems are used to create virtual representations of physical objects (e.g. cars, planes). Interoperability of CAD systems is a major problem when enabling information integration in a collaborative engineering environment. Existing standard CAD data formats such as IGES and STEP do not preserve feature information during CAD data exchange. Hence, they do not enable the modification, extension, and ability to perform higher-level functionality on imported CAD models from other CAD systems. This project aims at enabling higher-level CAD data exchange.

Refereed Publications

Unrefereed Papers

Presentations

Teaching Experience

Awards

Professional Events Attended

Conferences, Workshops

Summer Schools

NSF Center for e-Design IAB Meetings

University Activities