Skip to content

Commit ae2eb09

Browse files
authored
automata.md: pattern recognizers
1 parent 9d8011d commit ae2eb09

File tree

1 file changed

+35
-0
lines changed
  • embedded-system-design/theory-of-computation

1 file changed

+35
-0
lines changed

embedded-system-design/theory-of-computation/automata.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,8 @@ Formal notation of the deterministic machines:
9898
> typedef struct automaton_state (automaton_state);
9999
> typedef struct automaton_input (automaton_input);
100100
> typedef struct automaton_transition_complex (automaton_transition_complex);
101+
> typedef struct automaton_pattern (automaton_pattern);
102+
> typedef struct automaton_recognizer (automaton_recognizer);
101103
> typedef struct automaton_processors (automaton_processors);
102104
> typedef automaton_state *(*delta)(automaton_input *) (automaton_delta);
103105
>
@@ -172,11 +174,44 @@ Formal notation of the deterministic machines:
172174
> void *metadata;
173175
> };
174176
>
177+
> struct automaton_pattern {
178+
> automaton_transition_complex *start_address;
179+
> automaton_transition_complex *end_address;
180+
> };
181+
>
182+
> struct automaton_recognizer {
183+
> /**
184+
> * @brief Provides a complex binary-tuple representing
185+
> * the Sigma and the Q collections.
186+
> */
187+
> automaton_transition_complex **reference_complexes;
188+
>
189+
> /**
190+
> * @brief Provdies clamping maneuvers to synthesis a
191+
> * word from the alphabet of the automaton
192+
> * (i.e., the reference complexes).
193+
> */
194+
> automaton_pattern *pattern;
195+
> };
196+
>
175197
> uint8_t automaton_init(automaton *machine);
176198
>
177199
> uint8_t automaton_destroy(automaton *machine);
178200
>
179201
> uint8_t automaton_transit(automaton *machine, automaton_transition_complex *transition);
202+
>
203+
> /**
204+
> * @brief Automaton Pattern recognizer is a finite machine that
205+
> * tests whether a specific pattern of addresses is recognizable in this
206+
> * automaton. A transition complex sequence (i.e., the string in formal languages) is
207+
> * said to be recognized if and only if the final member in the sequence collection
208+
> * `automaton_transition_complex`, that is synethesized from the automaton alphabet, contains
209+
> * an accepting state, However, if this condition cannot be met; then the memory pattern
210+
> * is said not to be recognizable under this automaton recognizer machine. If the recognition
211+
> * operation is a success, the recognition success processer will be invoked, otherwise if the
212+
> * machine doesn't accept then the recognition failure processor will be invoked.
213+
> */
214+
> uint8_t automaton_recognizer(automaton *machine, automaton_recognizer *recognizer);
180215
>
181216
> #ifdef __cplusplus
182217
> }

0 commit comments

Comments
 (0)