Anonymous писал(а):
Это что-то весьма необычное. Я прочитал далеко не всё, что там было только несколько статей. Не могу сказать что очень понравилось. Кстати, в основном рекомендованном мне пособии "Параллельные вычисления" Воеводиных о подобном упоминаний я не нашёл. Правда успел прочитать всего пять глав, но в содержании тоже КА не видно.
Можете не искать… Но необычного в этом ничего нет. Как в том, что нет КА в упомянутой книге, и в том, что КА были, а в последнее время вновь стали объектом пристального внимания к ним. Первое – это существующая «традиция». Второе, - я упоминал уже выше UML. Это модная тема, о которой нынче говорят на каждом углу. Но, наверное, не потому только, что это очень уж модно? В справочнике по UML (Рамбо Дж., Якобсон А., Буч Г. UML: специальный справочник. – СПб.: Питер, 2002. – 656 с.) 6-я глава так и называется «Представление в виде конечного автомата». Тоже – не с потолка? Хотя, надо признать, UML – это больше идеология сетей Петри. Но, во-первых, потому, что UML позиционируется (модное слово) как язык моделирования, а, во-вторых, это … отдельная тема (о сетях Петри, автоматах и т.п.).
Anonymous писал(а):
Когда я брал эту тему, задача представлялась мне примерно так: в WinAPI есть средства для организации многопоточных приложений, для сетевого взаимодействия. Это основное. Главные недостатоки - сложность при изучении и непереносимость. Второй недостаток кажется не таким уж важным ввиду отсутствия альтернативной ОС. Первый вполне решаемый. Достоинство - всё осуществляется на достаточно низком уровне, т.е. гибкость и контролируемость.
Это представление, так сказать, «на коленке». С автоматами остается и гибкость и контролируемость. Причем, хочу заметить, используя нити, потоки и т.п. механизмы Windows Вы контролируемость на самом деле потеряете. Отладка многопоточных приложений – непростая вещь. Отладка параллельных процессов в FSA – в рамках стандартных средств С++ (Visual). Абсолютно ни каких проблем!
Anonymous писал(а):
То, что я прочитал в "Параллельных вычислениях" про MPI, делает привлекательной эту технологию. Достоинство - переносимость. Недостаток - никто из знакомых не знает что такое MPI. Поначалу это довольно значимый минус. Ну и гибкость несколько теряется.
А может потому и не знают, что проблемы с переносимостью?

Мне бы было интересно сравнить решения в FSA с MPI-шными. Но, во-первых, не могу найти MPI под Windows (кто-то и где-то, говорят, использует, но как-то наши дороги не пересекаются), во-вторых, даже те простые для автоматов задачи почему-то не решаются специалистами в рамках MPI. Даже здесь на сайте я предлагал. Тихо. Это к вопросу простоты и легкости MPI. И дело, думаю, не в самом MPI. Это не язык. Дело в языках, в которые он встроен. Но строго, даже и не в языках, а в той модели вычислений языков. Она обычно последовательная. Нужна параллельная. С++ плюс FSA – это параллельный С++. С преимуществами С++ и преимуществами параллельной автоматной модели.
Ну а гибкость автоматной модели – демонстрируют решения, приведенные на сайте. Можно привести и другие «универсальные» и «гибкие» примеры. В других технологиях (не КА-технология), но тоже автоматные (может, только не такие параллельные

Anonymous писал(а):
Технология программирования на базе конечных автоматов с первого взгляда кажется несколько неадекватной.
Это «на первый». Мы думаем и смотрим с тех позиций и на том языке, которому нас научили. Учат последовательному и неавтоматному. Но со временем взгляды меняют. Сейчас именно такое время. Как минимум в недалеком будущем и взгляды и языки станут параллельными. Автоматными ли – время покажет. Но то, что параллельными – точно. Я же со своего «взгляда» альтернативы автоматам пока не вижу. Многопоточность – интуитивная и абсолютно «ненаучная» модель, сети Петри – сложны и вероятности. Автоматы – строгая теория (параллельная!), наглядность, простота, детерминированность и т.д. и т.п. Что еще надо! Надо одно – подкорректировать «первый взгляд». Дальше будет проще. Дети долго учатся говорить, потом – не остановить

.
Anonymous писал(а):
Ведь всё равно программы будут писаться для одних и тех же компьютеров. Т.е. будет один и тот же бинарный код (какой-то лучше, какой-то хуже - зависит от программиста). Но это с первого взгляда. На подробное изчение мне понадобится не меньше недели. Но это действительно стоит того?
Можно говорить и о «бинарном коде». Только «бинарнее» С++, думаю, мало языков
Ну а то, что автоматы стоят того – это говорю не только я. Этому посвящено уже несметное число книг, статей… И не только в программировании. В программировании автоматы как раз только завоевывают подобающее им место (это помимо трансляторов, теории языков программирования, где без них - ни шагу).
Поэтому неделя – это, конечно, для такой обширной темы, как конечные автоматы, -оптимистично
Тем не менее, ЭТО стоит того. Пусть это звучит не очень объективно от лица того, кто этому посветил множество недель (несколько сотен минимум

. Но хотя бы «на пальцах» и хотя бы «неделю». ЭТО, поверьте, время не будет потраченное даром.
MPI - не было, MPI – есть, MPI – какое-то время еще будет. Но MPI уйдет, поскольку это не модель вычислений, не язык программирования, а средство коммуникации между параллельными процессами (немного – планирование). А вот автоматы были до MPI и будут после MPI. Поскольку это фундаментальная модель, имеющая большую и серьезную теорию. Главное, что есть большой опыт их применения во многих областях. И этот опыт и эта теория – не есть что-то застывшее.
Надеюсь, что я Вас не очень запугал «массивностью» информации по КА?

По крайней мере освоить FSA, имея самое общее представление об автоматах, при знании С++ и среды Visual – вполне реально. Будут вопросы – обращайтесь. Помогу, как смогу.