Role Extensions in Programming Languages for Secure Code Reuse

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing programming languages face challenges in efficiently managing inheritance, leading to increased program complexity, difficulty in maintenance, and security vulnerabilities due to overreliance on inheritance, which can result in unnecessary code proliferation and insecure access to object functionalities.

Innovation Solution

The implementation of role-scope extensions (RSE and RSEE) in programming languages, where independent and dependent-link objects are maintained separately, allowing for secure and efficient extension of data types and elements, with restricted access and implicit object tracing, thereby simplifying program maintenance and extensibility.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If inheritance is used to share features between related types, then code reuse is improved and program complexity is reduced, but security vulnerabilities increase and access control becomes weaker

Engineering Contradiction:
Improvecode reuseVSAvoidsecurity
Core Design Contradiction:
Ease of manufactureVSReliability

Solution Approach 1:

The patent segments the object model into independent types and role-specific extensions. Each extension is separated from the base type, allowing selective access control. This segmentation enables code reuse through shared base types while improving security by restricting access to extension-specific features through role-based permissions.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces role-specific extensions as intermediaries between base types and child types. These extensions act as mediators that provide inherited features while enabling fine-grained access control. The extensions serve as a buffer layer that allows secure access to base type features without exposing all features to all roles.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of repair

If inheritance is used to aggregate common features, then program maintainability is improved, but code proliferation increases when closely related types are created

Engineering Contradiction:
Improveprogram maintenanceVSAvoidcode structure
Core Design Contradiction:
Ease of repairVSDevice complexity

Solution Approach 1:

The patent segments the inheritance hierarchy into base types and separate role-specific extensions. This segmentation allows maintenance of common features at the base type level while isolating role-specific changes in separate extensions, reducing the impact of changes on other parts of the system.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent creates universal base types that can be extended by multiple role-specific extensions. This multi-functionality allows a single base type to serve multiple purposes across different roles, reducing code proliferation while maintaining ease of maintenance through shared common features.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Adaptability or versatility

If child objects inherit all functionality from parent objects, then feature sharing is improved, but unnecessary code is executed and performance decreases

Engineering Contradiction:
Improvefeature sharingVSAvoidexecution efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent segments functionality into base type features and role-specific extension features. This segmentation allows the system to share common features through the base type while executing only the necessary role-specific extensions, improving execution efficiency by avoiding unnecessary code execution.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by making different parts of the object model have different access and execution characteristics. Base type features are universally accessible, while extension features are selectively accessible and executable based on role permissions, optimizing performance by executing only necessary code.

Inventive Principle:
Principle #3Local quality

4Reliability

If independent types are created for each role, then access control is improved, but program complexity increases due to separate code for each role

Engineering Contradiction:
Improveaccess controlVSAvoidtype structure
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges common features into a single base type that is shared by all roles. Role-specific features are combined into separate extensions that attach to the base type. This merging reduces program complexity by eliminating redundant common features while maintaining strong access control through role-based permissions on extensions.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS20250342021A1Systems and Methods for Role Extensions in Programming Languages
Publication Date: 2025.11.06 ZOHO OFFICE SUITE
  • US20250342021A1 patent drawing
  • US20250342021A1 patent drawing
  • US20250342021A1 patent drawing

AI summary

A programming language compiler manages independent and dependent data type objects along with role extensions at run time. Objects of independent and dependent types can be instantiated using either nested or linked creation methods. In the nested case, the independent object is instantiated through a dependent object using a single create statement. In contrast, linked creation involves linking a dependent object to an existing independent object. Compile-time instructions are created to manage role-extension objects in alignment with the independent and dependent objects.