Compiler Automaton Unrolling for Transition Degree Control

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing compiler technologies face challenges in optimizing finite state machines (FSMs) for efficient implementation on target devices, particularly in handling regular expressions and quantifications, which can lead to complex and inefficient machine code due to uncontrolled transitions and state complexities.

Innovation Solution

A compiler that converts source code into machine code by utilizing an automaton intermediary, optimizing FSMs by converting syntax trees into deterministic or non-deterministic automata, and unrolling quantifications to limit in-degree and out-degree transitions, thereby simplifying the FSM implementation and improving efficiency on target devices like parallel machines.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If quantifications are not unrolled, then the automaton can handle complex regular expressions with fewer states, but the in-degree and out-degree of transitions become uncontrolled leading to implementation inefficiency

Engineering Contradiction:
Improveautomaton state complexityVSAvoidpattern matching efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent segments the quantification transitions by unrolling them into multiple discrete transitions with controlled in-degree and out-degree. Instead of having a single complex transition handling quantification, the automaton creates multiple simpler transitions, each with bounded connectivity, thereby segmenting the complex state handling into manageable units that improve implementation efficiency on target devices

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If the automaton allows high in-degree and out-degree transitions, then it can represent complex quantifications more compactly, but the resulting FSM becomes difficult to implement efficiently on target devices

Engineering Contradiction:
Improvequantification handling capabilityVSAvoidtransition complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent changes the parameter of transition connectivity by imposing constraints on in-degree and out-degree values. By modifying these structural parameters of the automaton transitions, the patent transforms high-complexity transitions into low-complexity transitions that are suitable for efficient implementation on target devices while preserving the essential quantification handling capability through the unrolled structure

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP2668577B1Unrolling quantifications to control in-degree and/or out degree of automaton
Publication Date: 2019.08.14 MICRON TECHNOLOGY INC
  • EP2668577B1 patent drawingFigure 1
  • EP2668577B1 patent drawingFigure 2
  • EP2668577B1 patent drawingFigure 3

AI summary

Apparatus, systems, and methods for a compiler are disclosed. One such compiler parses a human readable expression into a syntax tree and converts the syntax tree into an automaton having in-transitions and out-transitions. Converting can include unrolling the quantification as a function of in-degree limitations wherein in-degree limitations includes a limit on the number of transitions into a state of the automaton. The compiler can also convert the automaton into an image for programming a parallel machine, and publishes the image. Additional apparatus, systems, and methods are disclosed.