Class Definition Syntax for Dynamically Typed Array Languages

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional class definition syntax in dynamically typed array-based programming languages fails to leverage array properties and efficiently combine inheritance with arrays, leading to inefficient class definition and method implementation.

Innovation Solution

The use of set notation and element-wise attributes in class definitions allows for efficient creation of derived classes and element-wise methods, enabling inheritance and array operations that take full advantage of the array-based nature of dynamically typed array-based programming languages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If conventional class definition syntax is used in dynamically typed array-based languages, then object-oriented programming support is provided, but array properties are not fully leveraged and inheritance combination with arrays is inefficient

Engineering Contradiction:
Improvearray properties utilizationVSAvoidclass definition efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent changes the syntax parameters of class definitions by introducing set notation (e.g., Class1 | Class2 for union, Class1 & Class2 for intersection) and element-wise attributes (e.g., @elementwise). This allows the language to express array operations and inheritance relationships more efficiently, directly leveraging the array-based nature of the language while maintaining object-oriented capabilities.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If conventional syntax is used for class definitions, then inheritance is supported, but code duplication increases and method implementation becomes complex

Engineering Contradiction:
Improveinheritance capabilityVSAvoidcode duplication
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent merges inheritance syntax with array set operations by allowing class definitions to specify multiple parent classes using set notation (e.g., class ChildClass < ParentClass1 | ParentClass2>). This unified approach enables inheritance while automatically handling code reuse through the language's array broadcasting and element-wise operation mechanisms, reducing manual code duplication.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent creates a universal class definition syntax that simultaneously handles inheritance, array operations, and method broadcasting. The element-wise attribute (@elementwise) and set notation work across multiple contexts (class definitions, method declarations, inheritance hierarchies), providing a multi-functional solution that reduces the need for separate mechanisms for each feature.

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

3Productivity

If element-wise operations are implemented without element-wise attributes, then array processing is possible, but method implementation requires explicit loops and reduces readability

Engineering Contradiction:
Improveelement-wise operation capabilityVSAvoidmethod implementation simplicity
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent implements self-service element-wise operations through the @elementwise attribute. When this attribute is present in a method definition, the language processor automatically handles the element-wise application of that method to array elements without requiring explicit loops or additional code from the programmer. The method serves itself to operate on arrays element-wise, improving readability while maintaining productivity.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS7984416B2System and method for providing class definitions in a dynamically typed array-based language
Publication Date: 2011.07.19 MATHWORKS INC
  • US7984416B2 patent drawing
  • US7984416B2 patent drawing
  • US7984416B2 patent drawing

AI summary

A class definition syntax that leverages the array and math-oriented nature of a dynamically typed array-based programming language is discussed. The present invention provides a simplified mechanism for the creation of element-wise methods. Additionally, a mechanism for defining derived classes in a dynamically typed array-based programming language using mathematical set notation and semantics is also supported.