Compiler Automaton Unrolling for Transition Degree Control
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
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
Data Source
Figure 1
Figure 2
Figure 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.