Data processing: database and file management or data structures – Database design – Data structure types
Reexamination Certificate
2000-09-13
2004-03-09
Mizrahi, Diane D. (Department: 2175)
Data processing: database and file management or data structures
Database design
Data structure types
C707S793000, C707S793000
Reexamination Certificate
active
06704743
ABSTRACT:
FIELD OF THE INVENTION
The invention is generally related to computers and computer software. More specifically, the invention is generally related to programming languages and computer management of logical entities such as objects and the like.
BACKGROUND OF THE INVENTION
Translating human knowledge into computerized form to enable a computer to perform a useful task is a difficult problem that has existed since the advent of computers. Humans tend to think in terms of abstract concepts and the meanings behind such concepts, while computers are more literal in nature, expecting specific inputs and outputting specific responses to such inputs. To bridge the gap between humans that desire to perform tasks, and the computers that ultimately perform those tasks, often skilled program developers are required to develop computer programs that minimize the level of skill required by end users. Whereas at the beginning of the computer revolution, computer programs were rudimentary in nature, and required extensive skill on the part of end users, computer technology has now evolved to the point that computer programs are much more complex, often making computers much simpler to use. In addition, new development tools are constantly being developed to relieve the burden on developers so that, rather than having to construct a computer program from the ground up, the developer can rely on pre-existing components to impart high-level functionality to a computer program.
As a result of these advancements, the level of skill required to both develop and use computer programs continues to decrease. Consequently, computer technology has become more useful to a wider number of people. A need still continues to exist, however, for a manner of further simplifying the control of computers in performing useful tasks.
Computer programs are generally developed based upon computer languages, which essentially permit humans to develop computer programs in more human-centric manner. Computer languages typically exist only in the abstract; however, the concepts of the languages are implemented in software that is used in the development and execution of computer programs that follow the “rules” defined by the languages.
The ultimate goal of any computer language, as well as the underlying software that implements the computer language, is to simplify the development of computer programs. As such, the value of a computer language is generally gauged based on the ease in which the language can be used by a program developer to create new programs, or to modify existing programs to suit their needs. The ease of use of a computer language is typically dependent on the often competing goals of expressiveness and intuitiveness.
The expressiveness of a computer language represents the ability for a language to express different concepts in terms suitable for execution on a computer. In essence, the more expressive a language is, the greater the functionality and flexibility of the language.
Intuitiveness, on the other hand, reflects the ease in which abstract, human-centric concepts can be represented by a language. When a language is easier to understand, the learning curve associated with developing programs in that language is lower, as is the required level of skill for a developer.
One aspect of a computer language that weighs heavily on the expressiveness and intuitiveness of the language is the number and types of core semantic elements used by the language. In particular, despite the wide differences in computer languages, at the very essence, every computer language relies on a set of core semantic entities that represent the basic “words” for the language. Just as the words in a dictionary form the core elements for the English language from which all communication in the English language is derived, the core semantic entities for a computer language are the basic elements from which all programmatic concepts are constructed.
As the number of core semantic elements used in a language increases, in general the expressiveness of the language increases, while the intuitiveness decreases. In a low-level and rudimentary language such as machine language, for example, the basic core language entities are typically the actual microprocessor instructions executed by the computer, which are rarely intuitive to humans. More complex and abstract object-oriented programming languages such as c++ come closer to providing intuitiveness, but these languages are also quite large, offering dozens if not hundreds of key semantic entities, many of which are very low level and still require extensive effort on the part of individual developers to support more abstract concepts.
At the opposite end of the spectrum, some languages such as LISP and SELF have been defined with a restricted number of basic semantic entities. For LISP, as an example, only two basic semantic entities are supported: lists and list elements. In SELF, the basic semantic entities are objects and slots. It has been found, however, that having too few basic entities also compromises expressiveness, as some conceptual constructs may not be capable of being represented in literal computer instructions. Often, intuitiveness is also hampered because the logical leap necessary to represent conceptual constructs using only a few semantic entities may be too great for an inexperienced developer.
Therefore, a significant need continues to exist in the art for a computer language that implements a more useful set of core semantic entities that is capable of providing greater expressiveness and intuitiveness than is available from conventional computer languages.
Another aspect associated with simplifying the development process of computer programs is the ease in which programs can be transitioned from the development stage to the execution stage. For example, many computer languages utilize separate development and runtime environments. In the development environment, a developer writes a program in a source code representation and compiles the program into an executable representation. The runtime environment is used to execute the program, and may include debug capabilities to permit the developer to identify errors in the program. A developer must switch between the environments to revise a program and eliminate any errors found during debugging. Such separation of development and runtime environments, however, often complicates the development process.
Other languages support integrated development and runtime environments, whereby development of a program, as well as execution of the program, can be performed in the same environment. As a result, task switching between separate environments is eliminated, often streamlining the development process.
Furthermore, regardless of whether development and runtime environments are integrated, both environments are subject to concerns as to efficiently managing information in a computer environment, particularly in those environments that rely on an underlying database application.
Inheritance, for example, is a central mechanism of object oriented software engineering. Inheritance supports reuse, by placing common fields and behaviors into a “parent” entity. These common elements are then inherited into one or more “child” entities. This reduces the amount of work required to define the child entities, since the common elements only need to be defined one time in the parent, rather than defined separately for each child. As a result, the likelihood of error is reduced; and if an error is made in defining the common elements, the error only needs to be fixed in one place, on the parent, rather than needing to be fixed many times. The result is that systems using inheritance are generally less expensive to build and to maintain.
A common problem facing inheritance is that of restricting the inheritance of certain elements. During development of real-world systems, parent entities often hold information or behaviors that should not be inherited into children. These fields are often used for bookkeepi
Copernus, Inc.
Mizrahi Diane D.
Wood Herron & Evans L.L.P.
LandOfFree
Selective inheritance of object parameters in... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Selective inheritance of object parameters in..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Selective inheritance of object parameters in... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-3240066