Pull to refresh
12
0
Александр Соловьёв @Dr_Dash

Пользователь

Send message

Медуза Горгона — косматая старуха апокалипсиса. Что не так?

Reading time20 min
Views3.2K

Новогодняя сказка для старших, младших, научных и не очень сотрудников

Медуза Горгона не меняет профессию. Сквозь кротовую нору и что там увидел Шурик.

Соорудив бутерброд с чаем, я сидел у компа в полудрёме с томиком «Понедельник начинается в субботу» в руках и размышлял о том, чем таким всё же бабушка Наина Киевна накормила молодого программиста Александра Привалова? И о том, где происходили последовавшие за этим события: в виртуальной альтернативной реальности, которая, по задумке авторов как бы существовала в заброшенном уголке Союза? Или, может быть, Александр Привалов, оставаясь в «нашей» советской реальности, в домике Наины Киевны погрузился в удивительный, сказочный сон?

Читать далее
Total votes 7: ↑3 and ↓4-1
Comments0

Автоматный практикум — 2. Пример «Переправа», математические преобразования ТЗ при ОА

Reading time14 min
Views6.7K
Велосипед изобрести — не речку переплыть. Задача «Переправа» поднималась дважды за пару месяцев, но я хочу отметить вот это решение, поскольку именно оно иллюстрирует удачный предметный взгляд, и даёт модель удачного ОА, которую остаётся только логически развить, что в итоге даст более совершенное решение, чем при иных взглядах на проблему.
Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments0

Автоматный практикум — 1. Пример «Дисплей», разработка ОА и УА

Reading time28 min
Views6.4K
Тесты в предыдущей статье убедительно показали высокую эффективность «автоматной» реализации примера «Дисплей» по сравнению с условно названной «неавтоматной» версией. Вкратце итог: обе реализации автоматные, но разница в эффективности многократна и глубинная причина видится в том, что вариант А1 («автоматный») изначально проектировался как автомат, а вариант А2 («неавтоматный») нет. Не столько автоматная реализация, сколько автоматное проектирование является основой высокой эффективности. Для простых алгоритмов автоматные реализации получаются сами собой. Есть смысл говорить о том, что автоматное программирование, это не столько реализация программы в виде конечного автомата, сколько автоматное проектирование, фундаментом которого является конструктивная декомпозиция. Я несколько раз касался темы автоматного проектирования и конструктивной декомпозиции, но чтобы раскрыть эту тему нужны практические примеры. В этой и следующих нескольких статьях я проведу практикум, покажу процесс автоматного проектирования, пытаясь по возможности приводить ход рассуждений присущих автоматному проектированию.
Читать дальше →
Total votes 11: ↑9 and ↓2+7
Comments24

Автоматное программирование. Часть 4. Эффективность автоматно-спроектированных программ

Reading time16 min
Views9.1K
В предыдущих двух статьях речь шла о диаграмме состояний и переходов, используемой для описания динамических процессов в автоматном стиле, и о том, что диаграмма состояний и переходов даёт наилучшее понимание таких процессов. Также были рассмотрены базовые методы реализации автоматов, заданных диаграммой состояний, и были очерчены артефакты автоматной схемотехники, доставшиеся от неё автоматному программированию. Но, до сих пор совершенно не затронут вопрос: насколько эффективны автоматно-реализованные программы?

Я бы сформулировал вопрос иначе: насколько эффективны автоматно-спроектированные программы? Такая формулировка вопроса намекает, что автоматное проектирование — источник высокой эффективности программ. Я ещё практически не касался столь важной темы как эффективность, и пример «Дисплей» идеально подходит для иллюстрации эффективности автоматного проектирования. В первой статье я познакомил читателей с «лабораторной» версией этого модуля, но тестировать я буду «боевой» вариант, процесс проектирования которого я приведу в следующей статье. Исследование эффективности будет выполнено для платформ msp430 и CortexM3.

Чтобы не быть субъективным, оценивая эффективность, нужно с чем-то сравнивать результаты. Поэтому я проведу тот же комплекс испытаний для неавтоматной реализации примера «Дисплей» любезно предоставленной michael_vostrikov, за что ему огромная благодарность и плюсы в карму.

Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments12

Автоматное программирование. Часть 3. Диаграмма состояний и переходов. Продолжение

Reading time22 min
Views22K
В предыдущей статье речь шла о психологических аспектах описания динамических процессов при помощи диаграммы состояний и переходов (то есть в автоматном стиле) и о том, что диаграмма состояний и переходов даёт лучшее понимание динамического процесса. Сегодня я продолжу рассмотрение диаграммы состояний, олицетворяющей автоматный подход, и способы её воплощения в код. Тема предыдущей статьи органично перетекает в сегодняшний материал, поэтому я рекомендую ознакомится с ней.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments20

Автоматное программирование. Часть 2. Диаграмма состояний и переходов

Reading time12 min
Views15K
В первой статье я дал пример автоматного программирования от общего к частному, а точнее конструктивную декомпозицию. Следующий этап проектирования, проработка получившихся модулей. Но сначала я покажу чем являются автоматы с математической и практической точки зрения. В основе автоматов лежит модель описывающая процесс протекающий во времени, называемая диаграмма состояний, и невозможно себе представить автоматное программирование без этой сущности. Почему это так рассматривается в сегодняшней статье.
Читать дальше →
Total votes 5: ↑4 and ↓1+3
Comments19

Автоматное программирование – новая веха или миф? Часть 1. Введение

Reading time22 min
Views40K
Тема автоматного программирования ( AP, АП) уже много лет занимает заметное место в научно-популярных СМИ. Однако, несмотря на это, АП не стало магистральным трендом. Главная причина здесь — недостаточный опыт использования, и как следствие, отсутствие популяризаторов. Нельзя сказать, что недостаточно статей посвященных АП, но круг обсуждаемых в статьях вопросов по большому счёту сводится к описанию UML Statechart, т.е. инструменту описания автоматов, либо к вопросу «Как реализуются программные автоматы?». Это печально но факт, отсутствует обсуждение того, какие перспективы для программистов-профессионалов открываются при использовании данной технологии.

Эта статья – попытка взглянуть на программаты глазами прагматика, на примере задачи, взятой из реальной практики программирования микроконтроллеров. Однако она может заинтересовать не только embedderов, поскольку автоматный подход может эффективно использоваться для создания и драйверов и интерактивных приложений в системах основанных на обработке событий, как например Windows.

Читать дальше →
Total votes 28: ↑23 and ↓5+18
Comments80

Information

Rating
Does not participate
Location
Челябинская обл., Россия
Registered
Activity