Server-Based Code Compilation for Resource-Constrained Devices

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Portable devices face resource constraints, such as limited processing power and memory, making it inefficient to compile software locally, and developers must create multiple versions of applications for different platforms, increasing complexity and cost.

Innovation Solution

A server-based compilation method where a server with multiple compilers receives and compiles source code, selecting the appropriate compiler based on the client's platform, and communicates the compiled code back to the client, conserving device resources and simplifying the development process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If code compilation is performed on portable devices, then developers can have direct control over the compilation process, but device resources (processing power, memory, battery) are consumed and efficiency is reduced

Engineering Contradiction:
Improvecontrol over compilation processVSAvoiddevice resource consumption
Core Design Contradiction:
Ease of operationVSUse of energy by moving object

Solution Approach 1:

The compilation function is extracted from the portable device and relocated to a remote server. The device only sends source code and receives compiled output, while the computationally intensive compilation process executes remotely, eliminating local resource consumption while preserving developer control through interface design.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

A communication interface acts as an intermediary between the portable device and the compilation server. This interface manages the interaction by transmitting compilation requests and results, maintaining developer control over the process while the actual compilation occurs on the server infrastructure.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If multiple compiler versions are maintained for different platforms, then support for various portable devices is improved, but system complexity and development costs increase

Engineering Contradiction:
Improvesupport for multiple platformsVSAvoidcompiler management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The compilation server is designed with multi-functionality to handle multiple programming languages, platforms, and compiler versions through a single unified system. The server automatically selects the appropriate compiler based on the target platform specified in the compilation request, providing universal support without requiring the client device to manage multiple compilers.

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

Solution Approach 2:

Instead of distributing multiple compiler versions to each device, the system maintains copies of various compilers on the centralized server. Each compilation request is routed to the appropriate compiler copy based on platform requirements, reducing client-side complexity while maintaining platform versatility.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8365153B2Server-based code compilation
Publication Date: 2013.01.29 QUALCOMM INC
  • US8365153B2 patent drawing
  • US8365153B2 patent drawing
  • US8365153B2 patent drawing

AI summary

A server is disclosed that includes an interface to a data communication network, a compiler library that stores a plurality of different compilers, and compiler selection logic responsive to data received at the interface and including logic. The compiler selection logic is configured to select one of the plurality of different compilers based on an evaluation of the received data. The selected compiler generates compiled output data and the compiled output data is communicated over the data communication network to a client.