Compiler-Based Dedicated Application Code Generation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing online application distribution services face challenges in generating highly optimized application code for diverse terminals, as current methods either require manual porting and optimization for each processor or rely on virtual machines that do not achieve performance equivalent to offline compilers, leading to suboptimal execution.

Innovation Solution

A method utilizing compilers to generate dedicated application code from a single original code for specific terminals, incorporating optimizations for better performance, memory access, and energy efficiency, allowing for automatic generation and distribution of optimized code across various platforms, including those with different processors and APIs.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a virtual machine is used to execute intermediate code on multiple terminals, then compatibility across different platforms is improved, but execution speed and performance optimization deteriorate

Engineering Contradiction:
Improveplatform compatibilityVSAvoidexecution speed
Core Design Contradiction:
Adaptability or versatilityVSSpeed

Solution Approach 1:

The patent segments the code compilation process by generating multiple specialized binary code versions from a single intermediate code, each optimized for specific terminal types (iPhone, iPad, Android devices with different processors). This allows the system to maintain platform compatibility through intermediate code while delivering optimized native binary code to each terminal type, thus resolving the contradiction between compatibility and execution speed

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary compilation action by pre-compiling intermediate code into multiple terminal-specific binary code versions before distribution. The compilation server proactively generates optimized binary code for different terminal types in advance, so that when users download applications, they receive already-optimized code rather than requiring runtime compilation, thereby improving execution speed while maintaining compatibility

Inventive Principle:
Principle #10Preliminary action

2Speed

If binary code is generated for each processor type, then execution performance is improved, but development complexity and time increase

Engineering Contradiction:
Improveexecution performanceVSAvoiddevelopment complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent introduces an intermediary compilation server that acts as a mediator between the developer's single intermediate code and multiple terminal-specific binary codes. The developer only needs to compile once to intermediate code, and the compilation server automatically handles the generation of multiple optimized binary versions for different processors, thus improving execution performance while reducing development complexity

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent uses copying by creating multiple binary code copies from a single intermediate code source, each copy being optimized for a specific terminal type. This allows the system to generate processor-specific optimized code without requiring the developer to manually create separate codebases for each platform, thereby improving execution performance while simplifying the development process

Inventive Principle:
Principle #26Copying

3Ease of manufacture

If a runtime system is used to abstract terminal-specific parts, then ease of development is improved, but code optimization capability deteriorates

Engineering Contradiction:
Improveease of developmentVSAvoidcode optimization
Core Design Contradiction:
Ease of manufactureVSManufacturing precision

Solution Approach 1:

The patent segments the code delivery process by separating the universal intermediate code (which provides ease of development through runtime abstraction) from terminal-specific optimized binary codes (which provide manufacturing precision through native optimization). The system delivers both: the intermediate code maintains developer ease, while the generated binary codes achieve native-level optimization for each terminal type

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies preliminary optimization action by pre-compiling intermediate code into terminal-specific binary codes before distribution. This preliminary compilation step captures optimization opportunities that would be lost in runtime execution, achieving native-level code optimization while the developer continues to work with the easier-to-use intermediate code through the runtime system

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP2649520B1Application distribution supplying a dedicated application to a terminal from an application deposited by the developer
Publication Date: 2019.02.27 GOOGLE LLC
  • EP2649520B1 patent drawingFigure 1~4
  • EP2649520B1 patent drawingFigure 2~3

AI summary

The invention relates to a method for providing an online distribution service with an application dedicated to a terminal type. The invention comprises the following steps consisting in: identifying a terminal type associated with a terminal connected to the online distribution service, supplying a terminal type identifier; obtaining at least one characteristic of the terminal according to the terminal type; compiling the dedicated application from a generic application according to said at least one terminal type characteristic; and transmitting the dedicated application to the connected terminal.