Typed intermediate representation for object-oriented languages
US7512938B2 · kind B2 · utility
Assignee
Inventors
Key dates
| Filing date | Mar 18, 2005 |
| Grant date | Mar 31, 2009 |
| Priority date | — |
| Expiry date | Oct 22, 2026 |
Classification
- Technology area (CPC G)Physics
- CPC primaryG06F8/437
- WIPO fieldComputer technology
- WIPO sectorElectrical engineering
Abstract
Described herein are typed intermediate representations of object-oriented source code that preserve notions of class names, as well as add structure-based information related to classes in the source code. Types in the intermediate representation are divided into corresponding class name-based types and associated structure-based record types. The structure-based record type comprises a layout of objects that are instances of the corresponding class name-based types, where the object comprises one or more data fields and one or more virtual method members. Dynamic types can be abstracted in the form of existential types with sub-classing bounded quantifications. This makes type checking decidable. Existential types bind type variables with sub-classing bounds to represent dynamic types of objects. The layout of those objects can be approximated by structure-based record types. The types of virtual methods in the approximation record types include type variables that represent the dynamic types of those objects to guarantee safety.
Source: USPTO / EPO open patent data. Objective bibliographic and citation counts.