Inheritance Module for Visual Programming Languages
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Modern programming languages, such as XAML and Silverlight, lack native support for object inheritance, hindering efficient and rapid application development by not allowing code reuse and inheritance of properties between objects.
Innovation Solution
Implementing an inheritance module that intercepts programming objects, merges them with their ancestors, and allows editing, enabling multi-level and nested inheritance without modifying the existing programming language or editor, by using a recursive algorithm to manage inheritance information and storage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If inheritance support is added to a programming language, then code reuse and application development efficiency are improved, but device complexity and implementation difficulty increase
Solution Approach 1:
The patent introduces an inheritance module as an intermediary component that sits between the existing programming language and the editor. This module intercepts programming objects, analyzes inheritance information, merges objects with their ancestors, and manages the inheritance relationships without requiring modifications to the core programming language or editor, thus adding inheritance functionality while minimizing system complexity
Solution Approach 2:
The inheritance functionality is segmented into a separate, independent module that handles specific inheritance-related tasks (intercepting objects, analyzing inheritance information, merging objects). This segmentation allows the inheritance feature to be added without complicating the existing programming language structure or editor architecture
2Adaptability or versatility
If inheritance functionality is integrated into the programming language, then code reuse capability is improved, but ease of operation and editor simplicity deteriorate
Solution Approach 1:
The inheritance module acts as a mediator that transparently handles inheritance operations. When the editor loads a programming object, the inheritance module intercepts it, merges it with ancestor objects, and presents the combined result to the editor without requiring the editor to understand inheritance mechanics. This maintains editor simplicity while enabling code reuse
Solution Approach 2:
The inheritance module creates copies of ancestor objects and merges them with descendant objects. This copying mechanism allows inheritance functionality to be added without modifying the original objects or the editor's core operations, preserving ease of operation while enabling code reuse capability
3Adaptability or versatility
If multi-level inheritance is supported, then versatility and object reusability are improved, but difficulty of detecting and managing inheritance relationships increases
Solution Approach 1:
The inheritance module performs preliminary actions by pre-analyzing inheritance information and pre-merging objects with their ancestors before the editor needs to use them. This preliminary processing organizes complex multi-level inheritance relationships in advance, making them easier to detect and manage during actual development work
Data Source
AI summary
Object inheritance is a programming feature that allows developers to designate a programming object as a “descendent” of one or more “ancestors.” Disclosed herein are system, method, and computer program product embodiments for supporting inheritance in a programming language. In an embodiment, a first programming object is received from a first document, inheritance information about the first programming object is received and analyzed, a second programming object based on the first programming object and the inheritance information is created, the second programming object is sent to an editor for editing, a third programming object is received from the editor, a fourth programming object based on the first or second programming object, the third programming object, and the inheritance information is created, and the fourth programming object is stored in a second document.


