Object-oriented, logic, and database programming tool with garbage collection
AssigneeEastman Kodak Company
InventorsFredric H. Mellender, Andrew G. Straw, Stephen E. Riegel
Life of this patent
Estimating the term…
Abstract
A programming tool is provided which integrates an object-oriented programming language system, a logic programming language system, and a database in such a manner that logic terms can be treated as objects in the object-oriented programming language system, objects can be treated as logic terms in the logic programming language system, and logic terms and objects are stored in the database in a common data structure format. Automatic management of the database is provided which is transparent to the user.
Claims33
A program tool, comprising
- a. a workstation having an operator interface, a mass memory, a CPU, and main memory;
- b. an object oriented programming language system including,
- (1) an object oriented programming language, and
- (2) object oriented language compiler means for translating source code written in the object oriented programming language into objects and interpreter code;
- c. a logic programming language system, having components representing terms, clauses, predicates, atoms, and variables, including,
- (1) a logic programming language, and
- (2) logic compiler means for translating source code written in the logic programming language into objects;
- d. a database residing in said mass memory, for storing objects and components of a logic programming language as objects in a common data structure format, applications data, and applications stored as compiled interpreter code;
- e. object database management for representing objects and components of a logic program in said common data structure format as objects, and responsive to calls for retrieving and storing such objects in said database, and for automatically deleting objects from said data base when they become obsolete;
- f. interpreter means for executing said interpreter code and generating calls to said database management means;
- and
- g. logic subsystem means for solving logic queries, said logic subsystem means treating any object as a term in the logic programming language.
In a heap based programming language system, having garbage collector means for removing objects from memory that are no longer reachable by the system, and improved garbage collector means, wherein the improvement comprises:
- means for defining numbered regions for garbage collection, such that when a context (representing the state of a method which is executing in the system) is created, it is assigned a region number, when an object is created or accessed by a method it is assigned the region number of the on context of the method that created or accessed it, unless the object was previously assigned a lower number;
- means for moving an object to the region of a calling method when an object is returned from a called method to the calling method, means for moving a second object to the region of a first object when reference is made from the first object to the second object assigned to another region and wherein said garbage collector means collects garbage when returning from a method, if the context to which it is returning belongs to a number at least two lower than the current region number before returning;
- the regions with the higher number than that of the context to which it is returning being collected (i.e. the objects in the regions are discarded).
Dependencies are inferred from the claim text.