Alexander's profileAlexander ShevchuckBlogListsNetwork Tools Help

Alexander Shevchuck

Alexander Shevchuck

Occupation
Location
Interests
www.cbsystematics.com

Spaces Maps

Loading...
April 17

Visual Studio Localization

 

Наконец MS Россия решились локализовать Visual Studio.

http://gmagdanurov.spaces.live.com/default.aspx

Мы с кумом еще больше года назад обсуждали эту тему. И помнится мне Деня был в контрпозиции русификации VS. Так что скоро VS предстанет перед нами в Великом и Могучем. И это правильно! Потому что Русский язык - это самый совершенный язык в мире!

Пользуясь, случаем, и тем, что у меня легкая рука, я лично приступил к локализации своей студии))))).

VS

Правда на этом думаю остановлюсь)))))))).

А тем, кому понравилось)). Может скачать ехе-шник и заменить). Только свой сохраните) чтобы обратно вернуть привычный пейзаж))).

devenv.exe

http://www.cbsystematics.com/

March 13

Microsoft WPF 3D

Маршрутки в Киеве бастуют. После часа ожидания транспортного средства, настроение испортится у любого. Но, всегда его можно поднять (настроение, имею ввиду), если после рабочего дня немного побездельничать и поиграть с технологиями Microsoft.

Ни для кого не секрет, что WPF предоставляет возможности по работе с 3D объектами. Вот набросал кубик и разместил на нем несколько стандартных (или уже нестандартных) контролов. Чем не элемент конструктора Popfly? Microsoft как всегда, не устает радовать простотой и красотой. Но, что самое главное. Кто работал в XNA c 3D – тем даже не придется особо задумываться над реализацией. Потому, что работа с системой координат, камерой, источниками света, проекциями – практически идентична. Не считая, конечно, необходимости прибегнуть к декларативному программированию на XAML. Имена типов участвующих в построении трехмерных представлений интуитивно понятны. Одно удовольствие. Сразу такая игрушка-сущность просится стать активити, в каком-нибудь Workflow.

cub1 

Заполняем поля TextBox – ов прямо на стороне куба.

cub2

Жмем кнопку регистрация. И ура, ура, ура! Меняем цвет и выводим сообщение. Готово.

cub3

Если завтра, маршрутчики опять будут бастовать, придется надрать с Popfly тех обворожительных соединительных линий. И соединять, соединять, соединять свои кубики. Хотя. Помню навигатор в виде компаса еще со старой игры-музея CATS. Хотя, нет, его лучше на забастовку метрополитена оставлю. Тогда точно на работу не попаду.

http://www.cbsystematics.com/

February 13

Popfly! Popfly! Popfly!

В первую очередь – это удовольствие. Не наигрался, хочу еще. Но, катастрофически не хватает времени. Какое там высказывание Джорджа Марсальи, у себя в книге приводит Кнут? Что, генератор случайных чисел во многом подобен сексу: когда он хорош – это прекрасно, когда он плох, все равно приятно. Так вот, играясь с Popfly , возникает подобное чувство.

Вот, попробовал набростать тестовый проектик и меш.  MyTestPopfly

Конечно, все хорошо, если бы в студию не встроилась моя карикатура. А может это просто РЕБУС. А разгадка его такая – “Тот, который внизу, умный как утка”. ))))))))))))

InPFStd

http://www.cbsystematics.com/

November 15

MATHEMATICAL MODELING OF AIRCRAFTS

clip_image001

Our team deals with software development for complex flight simulator of the aircraft L-410M crew. Also we deal with mathematical building of aircraft models Tu-154 and Mig-29.

Questions connected with spatial motion dynamics, work and modeling of power-plants, navigation and control system for the above-mentioned aircrafts will be overviewed at our team members’ blogs.

Adequately one would be able to be acquainted with program codes under which our systems work. Our engineers will gladly answer all your questions related to the above-said topics.

I’d like to introduce the first member of our team - Timothy Arteev. Click here to view his blog:

http://arteev.spaces.live.com

Here he is, in the cockpit of L-410M.

Tima

 

And of course, Vladimir, who can be a good company to discus the above-mentioned topics.

Vova

 

We’ll be glad if this info is useful for you.

http://www.cbsystematics.com/

October 25

Windows Workflow Foundation & Finite State Language (the English language)

The goal of this article is to examine state machine as a device executing algorithmic operations with languages; to build the simplest finite state machine-recognizer of machine language grammar.

The languages which can be distinguished and transmitted by state machines are called state languages. In practice state languages compose narrow, the simplest language class. Common machine languages are more complicated, they cannot be described with this model. However, the meaning of these state languages is also very important: besides, many language processors are built on the basis of state machine model, all high-level languages translator maintain pre-processors distinguishing and processing lexemes which are specified by state languages.

Let’s give the definition of the language.

DEFINITION. Finite aggregates of the elements are called as a vocabulary, vocabulary elements – as symbols, and consistency of vocabulary symbols – as series or sentences. Number of sentences is called as language. Language above vocabulary V is marked by LV, or just L, if V is evident.

If V is vocabulary, V* is a number of all possible series composed with vocabulary symbols V. If V={a, b, c}, then V*={ε, a, b, c, aa, ab, ac, … aaa, aab, … abacbcaacbcacb.., …}, where ε is empty series without any symbols. Obviously, though V is finite, V* is nonfinite denumerable set. There is infinite number of languages above vocabulary V (as subsets, denumerable set V*), infinite number is number of continuum facility.

One of the most popular methods of language specify uses “determinant of number” form {ω|statement of series ω}, where ω –is a common expression with parameters, and statement of series ωdefines some conditions out on parameters. On numerous occasions the usage of these methods is difficult or impossible. E.g., how can we set L – the number of correct stapler expressions, how can we define the number of all computer language indicators, how can we set computer language itself?

To simplify fulfillment of the majority of the tasks two types of grammar are used: generating and identifying.

Generating grammar of the language L is understood as finite set of rules, permissive to build all “correct” sentences of the language L and none of the “incorrect”.

Identifying grammar sets criterion of arbitrary series attributes to the given language. This algorithm, accepting as a basis for entrance as the symbol after symbol the arbitrary series above the vocabulary V and giving on going out one of two possible answers: “the given series belong to the language L” or “the given series do not belong to the language L”. In fact this algorithm has to divide all possible entrance series into two classes: one class belongs to the language L, and another class does not belong to the language L.

gram2

The role of identifying grammar can execute finite state machine without exit. Let’s connect the sign “YES” to some of the machine states and connect the sign “NO” to all the rest states. Then all the number of entrance series of state machine will be divided into two classes: some classes render to one of the states marked as “YES”, and all other classes – to one of the states marked as “NO”.

Let’s define state machine-recognizer formally.

DEFINITION. State machine-recognizer is called as five objects.

clip_image002, where:

S – finite nonempty number (of the states) ;

X –finite nonempty number of entrance signals (entrance alphabet)

clip_image002[5]- initial state

clip_image002[7]- function of transitions

clip_image002[9]- number of closing (final) states

DEFINITION: Finite state machine-recognizer clip_image002[11]permits entrance series clip_image002[13] , if transfer it from the initial to one of the closing states, i.e. if clip_image002[15]. Number of series permitted by state machine A, form the language, permitted by A.

 

EXAMPLE:

Let’s set 13 different language types and build its own machine transformer for each of them.

Language 1: V1 = {a, b, c}; L1 = {abc, cc};

Language 2: V2 = { a, b, c }; clip_image002[17];

Language 3: V3 = {a, b, c}; L3 = V*;

Language 4: V4 = {a, b, c}; L4 = {anbcn|n>=0};

Language 5: V5 = {a, b, c}; L5 = { anbcm|n>=0, m>=0};

Language 6: V6 = {a, b, c}; L6 = {x| in the series x the number of entrances a, b and c are equal};

Language 7: V7 = {0, 1}; L7 = {number of even binary numbers};

Language 8: V8 = {+, -, 0, 1, 2, …, 9}; L8 = {number of integer constants}

Language 9: V9 = {(,)}; L9 = {number of correct stapler expressions}

Language 10: V10 = {+, -, 0, 1, 2, …, 9, ‘.’}; L10 = {number of material constants}

Language 11: V11 = {a}; L11 = { clip_image002[19]|length α = 2k, where k=0, 1, 2, 3, … }

Language 12: V12 = {a}; L12 = { clip_image002[21]|length α = 2k, where k=0, 1, 2, 3, … }

Language 13: V13 = {words of the Russian language}; L13 = {the Russian language}

 

 

To be continued.

http://www.cbsystematics.com/

October 23

Windows Workflow Foundation & Finite State Language (Русский язык)

Цель статьи – рассмотреть автомат как устройство, выполняющее алгоритмические операции над языками. Построить простейший конечный автомат-распознаватель грамматики автоматного языка.

Те языки, которые могут быть распознаны и оттранслированы конечными автоматами, называются автоматными языками. На практике автоматные языки составляют узкий, самый простой класс языков. Обычные языки программирования являются более сложными, они не могут быть описаны этой моделью. Однако значение автоматных языков тоже очень большое: кроме того, что многие языковые процессоры построены на основе модели конечного автомата, все трансляторы языков высокого уровня содержат препроцессор, выделяющий и обрабатывающий лексемы, задаваемые автоматными языками.

Дадим определение языка.

ОПРЕДЕЛЕНИЕ: Конечное множество элементов будем называть словарем, элементы словаря – символами, а последовательности символов словаря – цепочками или предложениями. Множество предложений назовем языком. Язык над словарем V будем обозначать LV, или просто L, если V очевидно.

Пусть V – словарь. Обозначим V* - множество всех возможных цепочек составленных из символов словаря V. Если V={a, b, c}, то V*={ε, a, b, c, aa, ab, ac, … aaa, aab, … abacbcaacbcacb.., …}, где ε – пустая цепочка, не содержащая символов. Очевидно, что хотя V конечно, V* - бесконечное счетное множество. Всего языков над словарем V(как подмножеств, счетного множества V*), бесконечное число: это множество мощности континуум.

Один из распространенных методов задания языка использует «определитель множества» вида {ω|утверждение о цепочке ω}, где ω – это обычно выражение с параметрами, а утверждение о цепочке ω – определяет некоторые условия налагаемые на параметры. Во многих случаях использовать этот метод трудно или невозможно. Например, как задать L - множество правильных скобочных выражений, как определить множество всех идентификаторов языка программирования, как задать сам язык программирования?

Для упрощения решения большинства таких задач существует два типа грамматик: порождающие и распознающие.

Под порождающей грамматикой языка L понимается конечный набор правил, позволяющий строить все «правильные» предложения языка L и ни одного «неправильного».

Распознающая грамматика задает критерий принадлежности произвольной цепочки данному языку. Это алгоритм, принимающий в качестве входа символ за символом произвольную цепочку над словарем V и дающий на выходе один из двух возможных ответов: «данная цепочка принадлежит языку L» либо «данная цепочка НЕ принадлежит языку L». В действительности этот алгоритм должен разделить все возможные входные цепочки на два класса: один – принадлежащие языку L, а другой – не принадлежащие языку L.

gram

Роль распознающей грамматики может выполнить конечный автомат без выхода. Свяжем с некоторыми состояниями автомата метку «ДА», а с остальными метку «НЕТ». Тогда все множество входных цепочек автомата разобьется на два класса: одни - приводящие автомат в одно из состояний помеченных «ДА», а все другие в одно из состояний помеченных «НЕТ».

Определим автомат-распознаватель формально.

ОПРЕДЕЛЕНИЕ: Конечным автоматом-распознавателем называется пятерка объектов:

clip_image002, где

S - конечное непустое множество (состояний);

X - конечное непустое множество входных сигналов (входной алфавит)

clip_image002[6]- начальное состояние

clip_image002[8]- функция переходов

clip_image002[10]- множество заключительных (финальных) состояний

ОПРЕДЕЛЕНИЕ: Конечный автомат-распознавательclip_image002[12] допускает входную цепочку clip_image002[14], если clip_image002[16] переводит его из начального в одно из заключительных состояний, то есть если clip_image002[18] . Множество всех цепочек допускаемых автоматом А, образуют язык, допускаемый А.

ПРИМЕР:

Зададим 13 различных типов языков и построим для каждого из них свой автоматный преобразователь.

Язык 1: V1 = {a, b, c}; L1 = {abc, cc};

Язык 2: V2 = { a, b, c }; clip_image002[1];

Язык 3: V3 = {a, b, c}; L3 = V*;

Язык 4: V4 = {a, b, c}; L4 = {anbcn|n>=0};

Язык 5: V5 = {a, b, c}; L5 = { anbcm|n>=0, m>=0};

Язык 6: V6 = {a, b, c}; L6 = {x|в цепочке x количествa вхождений a, b и c равны};

Язык 7: V7 = {0, 1}; L7 = {множество четных двоичных чисел};

Язык 8: V8 = {+, -, 0, 1, 2, …, 9}; L8 = {множество целых констант}

Язык 9: V9 = {(,)}; L9 = {множество правильных скобочных выражений}

Язык 10: V10 = {+, -, 0, 1, 2, …, 9, ‘.’}; L10 = {множество вещественных констант}

Язык 11: V11 = {a}; L11 = {clip_image002[3] |длина α = 2k, где k=0, 1, 2, 3, … }

Язык 12: V12 = {a}; L12 = { clip_image002[5]|длина α = 2k, где k=0, 1, 2, 3, … }

Язык 13: V13 = {слова Русского языка}; L13 = {Русский язык}

Построим распознаватели для всех языков, которые мы определили.

Язык 1: V1 = {a, b, c}; L1 = {abc, cc};

Построим граф переходов автомата, распознающего L1. Входные цепочки «abc» и «cc» (и только они) переводят автомат из начального, в одно из заключительных состояний S5 или S3.

L1 

Программная реализация.

WWF L1

 Sample.

 

Далее следует.

http://www.cbsystematics.com/

Windows Workflow Foundation – Moore Automation (English language)

Mealy automaton and its program realization were overviewed in the previous article. Moore automaton forms another model class, in the view of computing facilities it is completely equivalent to the class of Mealy automatons.

Let’s examine another type of finite state information transformer: Moore automaton.

In Moore automaton:clip_image002 , the exit function λ is defined not by the pair <condition, entrance signal>, but only by the state clip_image002[5]. Exit of Moore automaton is defined unambiguously by the state in which automaton is transformed to after the input signal recept.

EXAMPLE:

Let’s set Moore state machine which will be equivalent to Mealy automaton overviewed in the previous article. There will be no difficulty to transform it. Interconnection of the elements of entrance and exit alphabets is easily seen on the graph of Mealy automaton. Having built the table of state compliances of Moore automaton to alphabetic pairs, it’s easy to understand which states demand splitting.

t3 

States s2 и s3 of Mealy automaton are spitted to two equivalent states s2 = {s2, s4}, s3={s3, s5}, and one exit signal is connected with each of them.

Moore automaton will possess:

Six states, S = {s0, s1, s2, s3, s4, s5}

Two entrance signals X = {x0, x1}, where: x0 = 0, x1 = 1.

Six exit signals Y = {y0, y1, y2, y3, y4, y5} where: y0 = 1, y1 = 2, y2 = 3, y3 = 4, y4 = 5, y5 = 6.

Let’s imagine Moore automaton in the form of graph (in comparison to Mealy automaton):

ma2 

 

REALIZATION OF Moore FINITE STATE MACHINE

C# and technology WWF will be used for program realization of automaton.

Flow block of the program which realizes behavior of Moore automaton is represented in the picture 1.

Picture 1.

image

It is not difficult to see that the topology of program flow block repeats the topology of graph transitions of finite state machine.

Every state is connected with the operation, execution of definite actions when the state comes along, expectation of a new entrance signal coming, its reading to standard buffer - int x; , and also subsequent analysis of the fact what signal it is and state machine transition to a new state. (See below Picture 2)

Picture 2.

image

Presented software simulator of Moore automaton is completely equivalent to the model of Mealy automaton presented in the previous article.

Source code for the article

http://www.cbsystematics.com/

October 22

Windows Workflow Foundation – Moore Automation (Русский язык)

В предыдущей статье был рассмотрен автомат Мили и его программная реализация. Автоматы Мура образуют другой класс моделей, с точки зрения вычислительной мощности полностью эквивалентный классу автоматов Мили.

Итак, рассмотрим еще один тип конечноавтоматного преобразователя информации: Автомат Мура.

В автомате Мура: clip_image002, выходная функция λ определяется не на паре <состояние, входной сигнал>, а только на состоянии clip_image004. Выход Автомата Мура определяется однозначно тем состоянием, в которое автомат переходит после приема входного сигнала.

ПРИМЕР:

Зададим КА Мура, который будет являться эквивалентным Автомату Мили, рассмотренному в предыдущей статье. Не составит труда его преобразовать. На графе автомата Мили легко прослеживается взаимосвязь элементов входного и выходного алфавитов. Построив таблицу соответствий состояний автомата Мили алфавитным парам, легко увидеть какие состояния требуют расщепления.

tab

Состояния s2 и s3 Автомата Мили расщепляется на два эквивалентных состояния s2 = {s2, s4}, s3={s3, s5}, с каждым из которых связывается один выходной символ.

Автомат Мура будет иметь:

шесть состояний, S = {s0, s1, s2, s3, s4, s5}

два входных сигнала X = {x0, x1}, где: x0 = 0, x1 = 1.

шесть выходных сигналов Y = {y0, y1, y2, y3, y4, y5} где: y0 = 1, y1 = 2, y2 = 3, y3 = 4, y4 = 5, y5 = 6.

Теперь представим автомат Мура в виде графа (в сравнении с автоматом Мили):

 

fsm

 

РЕАЛИЗАЦИЯ КА Мура

Для программной реализации автомата будет использоваться язык C# и технология WWF.

На рисунке 1 представлена блок-схема программы, реализующей поведение автомата Мура.

Рисунок 1.

image

Нетрудно увидеть, что топология блок-схемы программы повторяет топологию графа переходов конечного автомата.

С каждым состоянием связана операция, выполнения определенных действий при наступлении данного состояния, ожидания прихода нового входного сигнала, чтение его в стандартный буфер – int x; , а также последующий анализ того, какой это сигнал и перевод автомата в новое состояние. (см. Рисунок 2)

Рисунок 2.

image

Данная программная модель автомата Мура, полностью эквивалентна модели автомата Мили представленной в предыдущей статье.

Исходный код к статье:

http://cid-cd039a48a1f1ab5e.skydrive.live.com/self.aspx/Public/FSM_MOORE.zip

http://www.cbsystematics.com/

October 20

Windows Workflow Foundation – State Machine (English language)

The aim of this article is to present the concept of Finite-State Machine with the help of WWF which is the simplest fundamental model of great number of various applications. These applications – from language processors to real time control systems and communication protocols – cover the most part of systems, which are developed, realized and analyzed by information science and cybernetics.

Business process in most cases is automatic model of system (program complex) – optional task which is executed consistently or simultaneously with two or more participants of the working group to reach common result. Workflow is full or partial automation of business process when documents, information or tasks are transmitted from one participant of Business process to another to execute operations due to the set of guiding rules. This is the coordination of people, information, objects and events to make flowsheet and reach the status which leads to the set of goal achievements. Construction of Business process will not be overviewed in this article. Fundamental part is more interesting, which is on the basis of systems simulation, including Business processes, - Theory of Finite-State Machine.

For program realization of Finite-State Machine are used such software and technologies as MSVS 2008 v9 Beta2, WWF. , C#.

Let’s examine the simplest type of finite state information transformer: Mealy automaton. Let’s define finite automat formally. There are other definitions, but we concentrate on hereon.

DEFINITION. Six objects are called as finite automat of Mealy automation:

clip_image002, where:

S – finite nonempty set (states);

X –finite nonempty set of entrance signals (entrance alphabet)

Y – finite nonempty set of exit signals (exit alphabet)

clip_image004 - initial state

clip_image006 - function of transitions

clip_image008 - function of exits

It is convenient to specify automat with the help of state graph, in which the apexes are corresponded to states, and edge from the state s to the state q, marked as x/y, is conducted when automat from state s under the influence of entrance signal x and it is transformed to the state q with the exit reaction y.

EXAMPLE:

Let’s set FSM which has:

four states, S = {s0, s1, s2, s3}

two entrance signals X = {x0, x1}, where: x0 = 0, x1 = 1.

Six exit signals Y = {y0, y1, y2, y3, y4, y5} where: y0 = 1, y1 = 2, y2 = 3, y3 = 4, y4 = 5, y5 = 6.

Let’s present the state machine in the form of graph:

au

Besides pictorial representation for state machine we can use tabular, defining next-state and exit functions in the forms of tables. Given state machine can be represented with the following tables.

Table 1. It defines next-state function δ this way: δ(s0, 0) = s1; δ(s2, 1) = s0; …..

t1

Table 2. It defines exit function λ this way: λ(s0, 0) = y2; λ(s2, 1) = y3; …..

t2

REALIZATION OF FSM of Mealy automaton

Program realization can be executed with any language by different means. In this case C# and WWF are used as the means which simplify realization of program FSM.

In the picture 1 there’s flow block of the program which realize state machine behavior.

Picture 1.

mswf

It is easily to see that the topology of flow block of the program repeats the topology of transition graph of Finite State machine.

With every state the operation is connected, which executes the function of expectation of the next event of coming of the new input signal and its reading to the standard buffer - int x; , also consequent analyze of what signal it is.

s0

Depending on what signal comes to the entrance, this or that function y0 – y5 is executed and transaction to a new state takes place.

Having built the program like this and added the active facilities which realize separate entrance and exit operations, the control of any process can be passed to computer. It takes few minutes to build such a program with the help of WWF, which makes this technology rather inviting.

Source code for the article

http://www.cbsystematics.com/

Windows Workflow Foundation – State Maсhine (на Русском языке)

Цель статьи – при помощи WWF, представить концепцию Конечного Автомата, который является простейшей фундаментальной моделью большого числа разнообразных приложений. Эти приложения – от языковых процессоров до систем управления реального времени и протоколов связи – покрывают значительную долю систем, разработкой, реализацией и анализом которых занимается информатика и кибернетика.

Бизнес процесс – это в большинстве случаев автоматная модель системы (программный комплекс) – произвольное задание, выполняемое последовательно или параллельно двумя или более участниками рабочей группы с целью достижения общей цели. Workflow - это полная или частичная автоматизация бизнес процесса, при которой документы, информация или задания передаются от одного участника Бизнес Процесса к другому для выполнения действий согласно набору руководящих правил. Это координация людей, информации, объектов и событий для произведения последовательности операций и достижения статуса, который приводит к достижению установленных целей. В данной статье не будет рассматриваться построение Бизнес Процесса. Более интересна фундаментальная часть - лежащая в основе моделирования систем, в том числе и Бизнес Процессов, - Теория Автоматов или (Theory of Finite-State Machine).

Для программной реализации КА использованы программные средства и технологии - MSVS 2008 v9 Beta2, WWF. Язык C#.

Итак, рассмотрим простейший тип конечноавтоматного преобразователя информации: Автомат Мили. Определим конечный автомат формально. Есть и другие определения, но мы остановимся на этом.

ОПРЕДЕЛЕНИЕ. Конечным автоматом Мили называется шестерка объектов:

clip_image002, где:

S - конечное непустое множество (состояний);

X - конечное непустое множество входных сигналов (входной алфавит)

Y - конечное непустое множество выходных сигналов (выходной алфавит)

clip_image004 - начальное состояние

clip_image006 - функция переходов

clip_image008 - функция выходов

Задавать автомат удобно графом, в котором вершины соответствуют состояниям, а ребро из состояния s в состояние q, помеченное x/y, проводится тогда, когда автомат из состояния s под воздействием входного сигнала x переходит в состояние q с выходной реакцией y.

ПРИМЕР:

Зададим КА, который имеет:

четыре состояния, S = {s0, s1, s2, s3}

два входных сигнала X = {x0, x1}, где: x0 = 0, x1 = 1.

шесть выходных сигналов Y = {y0, y1, y2, y3, y4, y5} где: y0 = 1, y1 = 2, y2 = 3, y3 = 4, y4 = 5, y5 = 6.

Теперь представим автомат в виде графа:

au

Кроме графического представления для автомата можно использовать и табличное, задавая функции переходов и выходов в виде таблиц. Данный автомат может быть представлен следующими таблицами.

Таблица 1. Определяет функцию переходов δ так: δ(s0, 0) = s1; δ(s2, 1) = s0; …..

t1

Таблица 2. Определяет функцию выходов λ так: λ(s0, 0) = y2; λ(s2, 1) = y3; …..

t2

РЕАЛИЗАЦИЯ КА Мили

Программную реализацию можно выполнить на любом языке разными способами. В данном случае будет использоваться C# и WWF – как инструменты упрощающие реализацию программных КА.

На рисунке 1 представлена блок-схема программы, реализующей поведение автомата.

Рисунок 1.

clip_image002

Нетрудно увидеть, что топология блок-схемы программы повторяет топологию графа переходов конечного автомата.

С каждым состоянием связана операция, выполняющая функцию ожидания очередного события прихода нового входного сигнала и чтение его в стандартный буфер – int x; , а также последующий анализ того, какой это сигнал. (См. рисунок 2)

Рисунок 2.

s0

В зависимости от того, какой сигнал пришел на вход, выполняется та или иная функция y0 – y5 и происходит переход к новому состоянию.

Построив программу подобную этой и добавив активные устройства, реализующие отдельные входные и выходные операции, можно управление каким либо процессом поручить компьютеру. Построение такой программы при помощи WWF занимает считанные минуты, что не может не делать данную технологию привлекательной.

http://www.cbsystematics.com/