Assembler Data Structure Discovery via Overlap Analysis

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The unstructured nature of assembler languages makes it difficult for broker programs to identify and transform data structures, leading to challenges in sharing data between different programming languages.

Innovation Solution

A computer-implemented method that analyzes assembler code to identify and group data items based on their offset and order, generates data modeling language by creating overlap lists, and transforms implicit data structures into high-level language structures like DFDL, enabling effective data sharing across programming languages.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If assembler code is used to define data items, then data can be placed flexibly anywhere within a program, but the data items become highly unstructured and difficult to identify

Engineering Contradiction:
Improvedata placement flexibilityVSAvoiddata structure identification difficulty
Core Design Contradiction:
Adaptability or versatilityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent segments the unstructured assembler code by dividing it into discrete data items with specific attributes (offset, length, type). Each data item is treated as an independent unit that can be individually identified and processed, transforming the continuous unstructured stream into manageable segments that retain flexibility while enabling systematic analysis.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an intermediary data structure representation layer between the raw assembler code and the broker program. This intermediate representation includes structured attributes (offset, length, type) that bridge the gap between flexible assembler syntax and the structured data requirements of high-level language brokers, enabling data structure identification without constraining original data placement flexibility.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If data items are placed anywhere within a program in assembler language, then placement flexibility is achieved, but broker programs cannot effectively identify and transform the data structures

Engineering Contradiction:
Improvedata placement freedomVSAvoidbroker program data transformation capability
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent performs preliminary analysis of assembler code to extract and structure data item information (offset, length, type) before the broker program executes. This preliminary structuring creates a ready-to-use data model that the broker program can directly consume, eliminating the need for the broker to parse unstructured assembler syntax and enabling effective data transformation while preserving original placement flexibility.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates an intermediary data model representation that serves as a bridge between flexible assembler data placement and broker program transformation requirements. This intermediate layer maintains the offset and positioning information from the original assembler code while presenting it in a structured format that broker programs can easily process and transform.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If high-level language data structures are used, then structured data transformation is enabled, but the rich data definition capabilities of assembler language are lost

Engineering Contradiction:
Improvedata structure transformation capabilityVSAvoiddata definition flexibility
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent segments the structured data model into individual data items with specific attributes (offset, length, type) that correspond to the rich data definition capabilities of assembler language. Each segmented data item retains its positioning and formatting information, preserving the versatility of assembler data definitions while organizing them into a structured format suitable for high-level language transformation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary extraction of data definition information from assembler code, capturing the rich capabilities (offsets, lengths, types) before transformation. This preliminary action preserves the detailed data definition information that would otherwise be lost, allowing the structured transformation process to maintain the versatility of original assembler data definitions.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10353675B2Discovering high-level language data structures from assembler code
Publication Date: 2019.07.16 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10353675B2 patent drawing
  • US10353675B2 patent drawing
  • US10353675B2 patent drawing

AI summary

A computer-implemented method for transforming implicit data structures expressed by assembler code into high-level language structures includes analyzing a section of assembler code to identify a plurality of data items. The computer-implemented method further includes storing the plurality of data items in a plurality of groups. The computer-implemented method further includes modifying one or more groups in the plurality of groups based, at least in part, on a pair of adjacent groups having a non-identical overlap. The computer-implemented method further includes creating an overlap list for each group. The computer-implemented method further includes generating data modeling language for the section based, at least in part, on each overlap list. A corresponding computer system and computer program product are also disclosed.