Automated Code Transformation for Semantic Equivalence

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software application porting processes often result in non-conforming semantics when migrating to new architectures or platforms, leading to potential breaks in satellite applications and other interfacing software, posing a risk to mission-critical systems.

Innovation Solution

An automated code transformation application that performs code separation with semantic guarantees, utilizing abstract syntax trees and transformational rules to ensure semantic equivalence across different architectures, allowing for the preservation of business logic during porting.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a full rewrite is performed to port an application to a new software architecture or platform, then the application can be migrated to the new architecture, but the semantics may not be preserved and the application behavior may differ from the original

Engineering Contradiction:
Improveadaptability to new architectureVSAvoidsemantic preservation
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent creates a virtual machine that copies and emulates the original software architecture environment, allowing the legacy application to run on new hardware platforms without modification. This copying approach preserves the exact semantic behavior of the original application while enabling migration to modern systems.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent introduces a virtual machine as an intermediary layer between the legacy application and the new hardware platform. This mediator translates and adapts interactions between the application and underlying system, preserving application semantics while enabling compatibility with new architectures.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Duration of action of stationary object

If the application lifecycle is extended through porting to new architectures, then the application remains usable on modern platforms, but the porting process introduces risk of non-conforming semantics that may break satellite applications

Engineering Contradiction:
Improveapplication lifecycleVSAvoidsemantic conformity
Core Design Contradiction:
Duration of action of stationary objectVSReliability

Solution Approach 1:

By creating an accurate copy of the original runtime environment through virtualization, the patent enables long-term application lifecycle extension without semantic drift. The virtual machine ensures that the application behaves identically to its original execution environment, preventing breaks in satellite applications.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The patent employs static analysis and verification techniques before deployment to detect and prevent semantic deviations in the ported application. This beforehand cushioning approach identifies potential issues prior to migration, ensuring semantic conformity and preventing breaks in interfacing software.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

3Reliability

If automated code transformation is used to preserve semantics during porting, then semantic equivalence can be maintained, but the complexity of the transformation process increases

Engineering Contradiction:
Improvesemantic equivalenceVSAvoidtransformation process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent uses an abstract syntax tree as an intermediary representation to bridge the source code and target code. This structured intermediate form simplifies the transformation process by providing a standardized way to represent and manipulate program semantics, reducing overall transformation complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent divides the code transformation process into discrete, manageable steps including parsing, abstract syntax tree generation, transformation rule application, and code emission. This segmentation allows each step to be independently developed, tested, and maintained, reducing the perceived complexity of the overall process.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10061573B2User interfaces of application porting software platform
Publication Date: 2018.08.28 SNOWFLAKE INC
  • US10061573B2 patent drawing
  • US10061573B2 patent drawing
  • US10061573B2 patent drawing

AI summary

User interfaces of a software platform that generates transformed code from source code enable interaction with the codes. In various embodiments, the software platform may store the source code and the transformed code in a data store. The transformed code is a transformation of the source code by at least one business semantic preserving code transform. The at least one business semantic preserving transform causes an execution of the transformed code in a new execution scenario to produce an identical semantic effect as an execution of the source code in an old execution scenario. Subsequently, the software platform may cause a display of a user interface of the application on a display device. The user interface may provide one or more user command items for manipulating at least one of the source code or the transformed code stored in the data store.