Unified Compiler for Client-Server Symbol Resolution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developing rich internet applications (RIAs) requires managing separate client and server portions, which can be complex and requires explicit communication between them, often necessitating different programming languages and tooling for client-side and server-side development.

Innovation Solution

A method and system that allow a single programming language input to be parsed into both client and server portions, enabling seamless use of symbols and facilitating communication between them, with compilers selecting appropriate types and platforms for translation into executable applications.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If separate client and server portions are managed independently with different programming languages and tooling, then communication between client and server can be explicitly controlled, but the development process becomes complex and requires separate management of client and server portions

Engineering Contradiction:
Improvedevelopment process simplicityVSAvoidmanagement complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent merges separate client and server development processes into a unified development environment. A single programming language and IDE are used to develop both client and server portions, eliminating the need for separate tooling and management. The system automatically parses the unified code into client and server portions, generating appropriate communication interfaces and executable files for both sides.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent creates a universal programming language and development environment that can handle both client and server development simultaneously. The same language constructs and IDE features work for both client and server code, providing multi-functional capability. The system universally processes code regardless of whether it will become client or server portions, automatically determining the appropriate treatment through parsing and analysis.

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

2Ease of manufacture

If a single programming language is used for both client and server portions, then development is simplified within a unified IDE, but explicit communication mechanisms between client and server must be automatically generated

Engineering Contradiction:
Improvedevelopment easeVSAvoidautomatic communication generation
Core Design Contradiction:
Ease of manufactureVSExtent of automation

Solution Approach 1:

The system performs preliminary actions by automatically analyzing the unified source code during the development phase. It parses the code to identify client and server portions, pre-generates communication interfaces, and creates the necessary communication mechanisms before the actual client and server are deployed. This preliminary automatic generation eliminates the need for manual communication setup later.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The development system provides self-service by automatically handling the complex task of generating communication mechanisms between client and server. The system analyzes the unified code, identifies necessary communication points, and automatically generates the appropriate interfaces and protocols without requiring manual intervention. The same IDE that writes the code also automatically creates the communication infrastructure.

Inventive Principle:
Principle #25Self-service

3Ease of operation

If client symbols and server symbols share a common namespace, then symbol usage is simplified across client and server portions, but parsing and separation of client and server portions becomes more challenging

Engineering Contradiction:
Improvesymbol usage simplicityVSAvoidparsing difficulty
Core Design Contradiction:
Ease of operationVSDifficulty of detecting and measuring

Solution Approach 1:

The system uses feedback mechanisms during parsing to resolve the common namespace challenge. As the parser processes the unified code, it continuously analyzes contextual information to determine whether symbols should be treated as client-side or server-side. The parser provides feedback about symbol usage patterns and automatically adjusts the separation logic, using the common namespace information itself as feedback to guide the parsing and separation process correctly.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10209968B2Application compiling
Publication Date: 2019.02.19 ADOBE INC
  • US10209968B2 patent drawing
  • US10209968B2 patent drawing
  • US10209968B2 patent drawing

AI summary

A computer implemented method includes receiving a programming language input having a client portion and a server portion, where client symbols of the client input portion are usable in the server input portion and server symbols of the server input portion are usable in the client input portion. The method includes parsing the input to separate the client input portion from the server input portion, identifying the usage of any client symbols in the server input portion and any server symbols in the client input portion, producing at least one communication service between the separated client and server input portions to support the usage of any client symbols in the separated server input portion and any server symbols in the separated client input portion, and translating the client input portion into an executable client application and the server input portion into an executable server application with communication there between.