Declarative State Specification in Imperative Code

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The page-based model using declarative code for web applications leads to duplicated code, increased network bandwidth demand, and difficulty in providing smooth animations, while imperative code offers more flexibility but complicates state management and sharing.

Innovation Solution

Implementing declarative language to specify states within imperative code, allowing developers to identify and describe states declaratively, enabling direct navigation and transitions between states without navigating the entire application flow, and supporting 'rolling back' to previous states.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If declarative code is used to describe each page condition, then the application can be readily refreshed and navigated, but code duplication increases and network bandwidth demand increases

Engineering Contradiction:
Improverefresh and navigation capabilityVSAvoidcode duplication
Core Design Contradiction:
Ease of operationVSQuantity of substance

Solution Approach 1:

The patent extracts the state description from complete page declarations and implements only the changed portions. Instead of reduplicating entire page descriptions, the system identifies and transmits only the specific state elements that have changed, thereby reducing code duplication while maintaining refresh and navigation capabilities.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent segments the page state into discrete state elements that can be independently described and transmitted. By dividing the complete page description into manageable state components, the system can selectively refresh only the necessary portions rather than transmitting entire pages, reducing network bandwidth demand.

Inventive Principle:
Principle #1Segmentation

2Ease of operation

If declarative code is used to describe each page condition, then the application can be readily refreshed and navigated, but network bandwidth demand increases

Engineering Contradiction:
Improverefresh and navigation capabilityVSAvoidnetwork bandwidth demand
Core Design Contradiction:
Ease of operationVSLoss of energy

Solution Approach 1:

The patent extracts only the changed state elements from complete page descriptions for transmission. By sending only the minimal necessary state information rather than entire page declarations, the system reduces network bandwidth consumption while preserving the ability to refresh and navigate between states.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent implements partial action by transmitting only the portion of state information that has changed rather than the complete state description. This selective transmission reduces network bandwidth demand while providing sufficient information to restore and navigate between application states.

Inventive Principle:
Principle #16Partial or excessive action

3Adaptability or versatility

If imperative code is used to provide robust programming environment, then flexibility and programming efficiency improve, but state management and sharing becomes difficult

Engineering Contradiction:
Improveprogramming flexibilityVSAvoidstate management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces declarative state descriptions as an intermediary layer between imperative code logic and state representation. This intermediary allows imperative code to manipulate application state while maintaining explicit, shareable state definitions, thereby reducing state management complexity without sacrificing programming flexibility.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Reliability

If hybrid application programs are developed using declarative code for program conditions and imperative code for flow logic, then robust features and multi-platform operation are achieved, but recovering from flow interruption requires returning to beginning

Engineering Contradiction:
Improvemulti-platform operationVSAvoidrecovery time from interruption
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent implements preliminary action by pre-defining declarative state descriptions at various points in the application flow. When an interruption occurs, the system can directly restore to the most recent defined state rather than returning to the beginning, reducing recovery time while maintaining multi-platform reliability through consistent state definitions.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS7949991B1Systems and methods for specifying states within imperative code
Publication Date: 2011.05.24 ADOBE INC
  • US7949991B1 patent drawing
  • US7949991B1 patent drawing
  • US7949991B1 patent drawing

AI summary

Systems and methods which implement declarative language for specifying states within imperative code are shown. According to embodiments an application program developer declaratively identifies one or more states within the imperative code of the application program. Declarative language identifying a particular state of an application program may both operate to identify the state and to describe the state so that the state may be selected or “jumped to” without a user having to navigate the application program flow to arrive at the state. Particular states may be described using a difference or “delta” between the particular state and another state, such as a base state. Transitions may be implemented between states, such as to provide animation, fading, color change, et cetera.