Обновить
7
Вячеслав Любченко@lws0954

Программист

42
Подписчики
Отправить сообщение

Правильный вопрос, но  безумный ответ

Время на прочтение5 мин
Охват и читатели5.3K

Просматривая на Хабре поток «Параллельное программирование», не верится, что на дворе «образованный век». Все против этого. Особенно статьи типа «Три способа менять один объект из нескольких потоков. Больше нет».

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

Ну, а здесь на Хабре, ставить «плюсы». Каждый, конечно, имеет право на свою позицию. Но в чем-то хочется разобраться,  понять и, возможно, простить. Накопилось, наверное…

Упомянутая статья - «гром среди ясного неба»! Ни кто до этого не знал, что делать с одним объектом, а тут вдруг - прозрение! Буквально на раз или, что точнее, на три. Есть ровно три варианта, после чего «объекту» уже не скрыться от «потоков», у которых до него дотянуться руки. Ровно три! Меньше – да, «больше нет»!

Люди, вы пытаетесь вникнуть в смысл прочитанного?!   Спросите, где он? А вот это уже другой вопрос. На, который, к счастью, есть ответ… В научном познании мира.

Однако, процитирую отрывок из краеугольной, судя по реакции «народа»,  статьи...

Читать далее

Автоматы, потоки. Логические схемы. Задержка распространения

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели8.4K

Это первая статья цикла, предусматривающего рассмотрение логических схем или, более общо, логических процессов. Будет создан базис из логических элементов, позволяющих собрать любую схему. Специалистам, погруженным в бизнес-процессы, такая тема может показаться не стоящей внимания. Но мне тоже не понятно, почему бизнес-процессы выделяют в отдельную категорию. С формальной точки зрения они ни чем не отличаются от любых других процессов.

Таким образом, если вас интересуют общие проблемы параллельных процессов, то в этой и в последующих статьях на примере логических процессов мы их и рассмотрим. Терминологически мы будем придерживаться словаря по вычислительной технике под редакцией В.Иллингоута[1].  Но это может быть учебная литература, подобная [2], научная литература, как монография  [3], или научно-популярные книги типа [4, 5].

Литературы по автоматам много. Бум пришелся на 80-е годы прошлого века, а сейчас лишь отголоски прошлого. Поэтому, с одной стороны, такой информационный массив  позволяет выбрать наиболее подходящую литературу, но, с другой стороны, орождает множество толкований модели автомата, среди которых разобраться не так уж просто.

У меня сформировался свой вариант модели конечного автомата  (КА), который далее будет основным. Данная модель, во-первых, очень близка к классической форме. А это важно, т.к. позволяет использовать теорию почти без исключений. А, во-вторых,  она удобна для практики программирования, допуская эффективную ее реализацию.  Более детально все эти вопросы освещены в статье [6].

Читать далее

Инь и ян программирования или alter ego многопоточности

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели6.5K

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

 Предположим, перед вами «черный ящик». Это может быть, к примеру, ваш комп , ноут или хотя бы смартфон. Нет внешних критериев, по которым вы могли бы идентифицировать алгоритм его работы. В смысле параллельный он или последовательный. Следовательно, для любой последовательной программы должен быть универсальный формальный механизм, преобразующий ее в эквивалентную параллельную программу и наоборот.

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

Но так было не всегда. В 80-х годах прошлого века математики, программисты и другие, причастные к процессу алгоритмизации и программирования, пытались такую модель создать. К сожалению, все, похоже, завершилось автоматом сетями Петри. Но даже с учетом столь печального факта, как не успешность таких поисков, должна существовать, как и в случае последовательных алгоритмов, модель параллельных алгоритмов. Без нее разговоры об упомянутом выше  преобразовании алгоритмов просто не имеют смысла.

В силу философского закона единства и борьбы  противоположностей, когда есть одно, то должно быть и другое. Так, если есть свет, то, как ни крути, будет и тьма. Когда есть хорошее, то рано или поздно, как ни избегай, будет и плохое (жизнь, как известно, в полоску). А если есть последовательное программирование, то должно быть, как его ни назови, альтернативное ему - параллельное. А если уж оно есть или, как минимум, обсуждается, то необходимо дать ему определение, аналогичное по смыслу моделями обычных алгоритмов. Все это естественно и даже очевидно, когда речь идет о научных понятиях и, как в нашем случае, о науке программирования.

Читать далее

Два притопа, три прихлопа

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели10K

Подготавливая статью [1] к публикации, обратил внимание на картинку, показанную на рис. 1. Я сохранил ее, чтобы воспользоваться в будущем. И оно не заставило себя ждать, т.к. захотелось повысить наглядность решения, введя в него графику и используя именно эту картинку.  К чему это привело, далее мы и поговорим.

Все, что связано с картинкой, сделать не так уж сложно. Это довольно подробно описано в цикле статей по реализации графики в ВКПа (см. [2]). Для этого, во-первых, нужно создать графическое окно, установив данную картинку в качестве фона. Во-вторых, воспользоваться существующими заготовками контролов (элементов графического интерфейса), которые необходимо будет разместить на данном фоне.

Читать далее

Искусство выжить. Простое руководство для настоящих программистов

Уровень сложностиСредний
Время на прочтение15 мин
Охват и читатели20K

Задача Эдсгера Дейкстры о философах – великая задача великого программиста. Уж сколько лет, а она актуальна. Решая ее, прикасаешься к этому величию. И вот, перефразируя известное, «давно не было такого и вот опять», можно познакомиться с ее «новым прочтением» на Хабре[1].

Ну, как новое?… Но она стала тем триггером, который подвигнул меня к очередной попытке ее решения. Тем более, что с момента знакомства с философами пролетела уйма лет, а в  багаже - опыт применения автоматной модели и значительно усовершенствованная среда их реализации.

Познакомился с проблемой обедающих философов – Dinning Philosopher Problem (DPP), я более двадцати лет тому назад (про DPP см. [2]). Результатом стала статья, в которой философы выполняли поставленную задачу, как минимум, не хуже, чем классические алгоритмы сортировок[3]. Позднее был сделан доклад на конференции по параллельным вычислениям в Саратове, где на суд научной общественности была предъявлена модель автоматных параллельных вычислений и пример ее приложения - задача Дейкстры[4].  

Замечание 1. В рамках обсуждения статьи на Хабре было проигнорировано  предложение поручить сортировку философам. Зря, конечно, т.к. надо же как-то убедиться, что предлагаемое решение работает хотя бы в первом приближении. К примеру, тот же DeepSeek, моментально выдавший свое решение DPP, так и не смог заставить их сортировать.

Не знаю, считается ли данная задача решенной, но то, с чем я знаком, по большей части беглое рассмотрение проблем, которые она отражает. У задачи есть теория, которая представлена монографией Хоара[5], или моделями сетей Петри у Питерсона[6] и В.Е. Котова[7] или другими подобными публикациям. Но, повторюсь, все это по большей части достаточно краткий анализ свойств модели и/или даже конкретного решения. Статья на Хабре из этой же серии. Все это ни как не окончательное решение описываемых ею проблем параллелизма. Правда, может, [авторами] вопрос так и не ставился, но все же ответ на него весьма желательно иметь.

Читать далее

Я объявляю «войну» интеллекту… человеческому. Часть 1. (из цикла бесед с ИИ)

Уровень сложностиСложный
Время на прочтение26 мин
Охват и читатели9K

Это не мы такие – жизнь такая. Это не я объявляю «войну», а искусственный интеллект (ИИ), который является главным участником беседы. Я лишь «передатчик» и в малой мере - интервьюер. А ИИ, отвечая на вопросы, своим корректным поведением, логикой, знаниями, рассуждением и выводами подает пример «интеллекту человеческому». Вам, прочитавшим  диалог, не будет ли стыдно за поведение, за свои выводы, за отношение к таким же, как вы… Вольно или нет, но ИИ объявляет «войну» серости и хамству, высокомерию и чванству, низкой культуре и безграмотности. Всему тому, что, порой, приводит к самой настоящей войне. Будьте добрее, вежливее, логичнее, уважительнее и «войны» отступят, т.к. в них не будет смысла. Вместо них будет… А, что будет, - «жизнь покажет и жизнь рассудит».  Короче, – давайте жить дружно!

Читать далее

Как избежать кошмара параллелизма в IoT: автоматы вместо потоков и корутин

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели8.3K

В статье рассматривается библиотека на C++, которая предназначена для реализации технологии параллельного автоматного программирования (АП), отвечающей концепции среды ВКПа (подробнее о ней см. [1]). Для полного понимания материала рекомендуется ознакомиться с основами теории АП, представленной в статьях [2, 3, 4], Взаимосвязь машины Тьюринга с конечными автоматами (КА) подробно рассмотрена в [5]. Вопросы применения корутин в контексте автоматного программирования анализируются в статьях [6–9]. Но в минимальном варианте достаточно даже общего представления о модели конечного автомата и принципах объектного программирования.

Читать далее

Как я «ломал» DeepSeek

Время на прочтение10 мин
Охват и читатели26K

В своей предыдущей статье[1] я уже рассказывал, как начал свое знакомство с искусственным интеллектом (ИИ). Тогда это был ChatGPT, а теперь — китайский DeepSeek[2].

Общение с DeepSeek происходит без посредников, что делает его более удобным и доступным. Раньше за использование ChatGPT приходилось платить или, например,  задавать не более трёх вопросов в сутки. А с DeepSeek можно спрашивать сколько угодно и о чём угодно, не тратя ни копейки. Правда, есть опасения, что бесплатная подписка может закончиться, и тогда доступ к сервису будет закрыт. Также ходят слухи о возможных проблемах с «нежелательными» запросами.

Так уж жизнь повернулась, что для меня в автоматном программировании (АП) возникла пауза.  Но мне бросить АП все равно что перестать дышать. А потому просто произошла задержка дыхания или просто передышка. Меня это не сильно огорчило, т.к. я по-прежнему пользуюсь АП, вдыхая полной грудью его возможности. Даже в текущей ситуации.

Тем не менее, я кинулся, так сказать, «во все тяжкие». Мне предложили заняться «умными домами» и я согласился. Новая область, новые интересы, новое приложение своих сил. Короче, – «движуха»! Мы, ведь, все мечтаем о чем-то подобном – не так ли? А еще обещали мотивировать, что немаловажно в наше меркантильное время. Вспомним хотя бы размер виртуальной средней зарплаты по России и средний размер пенсий...

Сейчас я только рад случившемуся. Раньше было скучновато. Иногда взбадривало общение на Хабре, а теперь «поддает жару» искусственный интеллект. И хотя я предполагал что-то подобное, но не ожидал, что это произойдет столь быстро, так бурно и с таким эффектом. Китайский ИИ стал коллегой, советчиком, а, порой, и собеседником, помогая освоить новую область программирования. При этом я по-прежнему не согласен с глашатаями, предрекающими замену программистов, но уверен, что квалификацию многих из них он повысит точно. Я убедился в этом на своём опыте.

Читать далее

Параллелизм и феномен ван дер Поля

Уровень сложностиСредний
Время на прочтение20 мин
Охват и читатели6.5K

Зачем нужны потоки, если есть параллелизм ВКПа? Поговорим об этом подробнее. По существу мы тем самым продолжим тему статьи[1], рассмотрев только более сложный пример, чем простые и абстрактные счетчики. Рассмотрим по ходу сначала пример, а уж потом и его реализацию на потоке.  Поехали?!

Читать далее

Закоулками мечты. Часть 2

Время на прочтение4 мин
Охват и читатели2K

Читаем предыдущую статью. Борьба за реализацию мечты продолжается.

Вячеслав ответил и все в мгновение ока стало ясно. Или, точнее, почти все.

А теперь подробнее...

Действительно, я дал в штангу - промазал с параметрами 2-го фазификатора. Не установил нужные значения. Мой косяк. Сбило то, что, во-первых, результаты совпадали (так уж получилось и теперь понятно почему) и, во-вторых,  сравнивался код. В первую очередь на С++, как первый кандидат на ошибку. А он совпадал.

Сами же параметры скрыты - в свойствах блока и я как-то в суете забыл про них. Что тоже объяснимо (хотя и не оправдывает). Просто на С++ параметры в явном виде в тексте программы, а в SimInTech в неявном - настройках, а я фазификатор размножил копированием. Верхний работал и, вроде, верно, а потому какие могли быть вопросы к скопированному? Это я так  думал. Действительно, к нему вопросов нет (пока), но были (есть?) ко мне. Но я уже покаялся...

Все это безобразие, невнимательность и далее по списку. Но это мой грех, про который я знаю, но преодолеть не в силах :( И потом я не какой-нибудь ChatGPT XXX, который не ошибается. Я же поднял "хайп", народ взбаламутил!? Гнать таких программистов! Заменить на ИИ!... И это уже происходит. И кто-то даже верит, что это поправит дело. Наивный...

Но давайте серьезно. Итак, я установил нужные параметры фазификатору, и результат не заставил себя ждать (см. рис. 1). Но, чтобы он устраивал, так тоже нет. Видна перерегулировка. Опять что-то не так с параметрами? Тьфу-тьфу. Я уже прямо боюсь... :) Но , вроде, с ними разобрались и не должно быть подвоха. Код? Проверено многократно. Глаз "замылился"? Может. Но, если честно, я его/их настолько "замылил", что смотреть на код уже сил просто нет... Тоже обычное дело ;)

Читать далее

Реализация мечт (нечеткая логика)! Пошаговый рецепт

Уровень сложностиСредний
Время на прочтение13 мин
Охват и читатели6.4K

Есть задача, а для кого-то почти мечта - реализовать нечеткую математику в ВКПа. И здесь отдельное спасибо Вячеславу Петухову за материал, ставший основой похода в нечеткую логику на базе автоматов. Правда, сам Вячеслав высказался отрицательно о реальности подобного "блицкрига", но, ведь, когда есть цель и неистребимое желание ее достичь, то, порой, даже невозможное становится возможным. Мне же, что там скрывать, очень захотелось в ВКПа создавать объекты на основе нечеткой логики, аналогичные объектам в SimInTech. Тем более, что когда-то теория нечетких множеств привлекала мое внимание, а понятие нечеткого регулятора и сейчас, если честно, бередит мои мысли...

Чтобы от чего-то оттолкнуться, был выбран проект из каталога демо-примеров платформы SimInTech из подкаталога "Автоматика и математика\Нечёткая Логика\Система поддержания уровня воды в баке". И на момент начала написания данной статьи мною уже были успешно реализованы некоторые из типовых блоков библиотеки "Нечеткая логика" платформы SimInTech (см. рис. 1). Заметим, что дополнительную информацию о нечеткой логике можно почерпнуть из справки платформы SimInTech, зайдя в раздел "Лабораторные работы по ВУЗам", затем в "Московский Политех" и в завершение - "Разработка системы нечеткого вывода".

Читать далее

Разговор с быдло-кодером

Время на прочтение18 мин
Охват и читатели11K

Вернемся к одному из проектов дистрибутива программной платформы SimInTeh,  который был рассмотрен в двух статьях(см. [1, 2]). Он же под именем "Управление водонагревательным котлом" включен в раздел "Лабораторные работы по библиотекам" справочной системы SimInTech. Последнее должно предъявлять к нему повышенные требования, как к примеру, поясняющему, рекламирующему те или иные стороны и возможности программной платформы. Одним словом, он должен быть идеальным ...

Только недавно одна из найденных в нем ошибок  была устранена. Но не это знаменательное событие было причиной вернуться к данной теме, а пришедшая примерно в это же время рассылка, рекламирующая возможности "новейшей российской инженерной платформы Engee". В числе прочих ее достоинств описывались включенные в платформу конечные автоматы  (КА)[3], а в видео по ссылке прослеживалась явная любовь к светофорам. Но  нагреватель в этом смысле ни чуть не хуже, а даже предпочтительнее.

Но "спусковым крючком" стал эмоциональный всплеск не самой положительной оценки данной конечным автоматам (подробнее см. [4]). Примечательно, что прозвучал он со стороны тех, кто ранее ввел этот инструментарий в свою платформу и, как можно предполагать, использует. Видимо, они лучше знают возможности своих автоматов? Но, если серьезно, то это, скорее всего, результат отмеченного "всплеска", который за истину воспринимать не стоит. Тем не менее, необходимо что-то уточнить,  чтобы учесть и такое мнение о КА. 

Итак, перед нами проект "Нагреватель" или "Управление водонагревательным котлом". Я не смог сразу найти проект в ВКПа к тем еще статьям, но, если честно, не сильно его и искал, т.к. решил, что проще создать новый. Хотелось проверить, что получится, если повторить в ВКПа автоматы, полностью аналогичные ранее созданным программным автоматам на внутреннем языке платформы SimInTech. А поскольку они были спроектированы согласно концепциям автоматного программирования, то препятствий не предполагалось. Но ... воистину - "не было этого никогда и вот опять".

Читать далее

Интеллект искусственный и натуральный. Опыт общения

Уровень сложностиПростой
Время на прочтение14 мин
Охват и читатели2.7K

Ниже приведен вопрос, заданный искусственному интеллекту (ИИ). Поскольку был использован сайт Chad AI, который использует Chat GPT, то с последним и будем идентифицировать "личность" нашего ИИ. Какие преследовались цели, затевая  общение с ИИ? Любопытно было узнать о его просвещенности в автоматном программировании (АП)? Если ему о нем что-то известно, то хотелось бы понимать меру этого знания и какое его определение он приведет?  А тут возможны варианты. Определение может совпадать с авторским пониманием АП[1], но может быть и другим. А это особенно интересно: как трактуется понятие АП в мире вообще и/или "интеллектом" в частности?  Ведь ИИ по умолчанию должен быть более информированным, чем любой "натурал" - натуральный интеллект (НИ). Последний сосредоточен часто только на своей идее и, кроме того, ему по больше части не доступен столь же огромный объем информации, который "подсунули" во время обучения ИИ.

Итак, вопрос ИИ:

Сформулировать, что собой представляет автоматное программирование, дав его 1) формальное определение и 2) примеры практической реализации, 3) пусть, немножко хотя бы, коснется истории его развития (если оно и эта история есть, конечно).

Был получен следующий ответ (орфография и пунктуация сохранены):

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

Читать далее

Засады многопоточности

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели16K

В данной статье я опишу свои самые свежие и яркие впечатления от многопоточного программирования. Это мои впечатления, мой опыт  и я буду рад, если он будет полезен другим программистам.

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

Предсказанное сбылось, как говорится, по полной программе. Думаю, что озвученные далее проблемы для кого-то не станут новостью, но будут и те, кто о них не подозревает, как не подозревал и я. А потому захотелось их зафиксировать и поделиться, с чем пришлось столкнуться.  Ну, и рассказать, как я выкрутился, попав в не совсем привычные для меня ситуации (в автоматном программировании, подчеркну, они не возникли бы в принципе).

Итак, создав ранее тест потоков (о нем подробнее см. [1]), гоняя его многократно и в разных режимах, я заметил, что пусть редко, но выскакивают некорректные результаты. В подобных случаях я грешу обычно на себя. А в данном случае тем более, т.к., что там скрывать, имею весьма небольшой опыт использования потоков.

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

Читать далее

Все секреты многопоточности

Уровень сложностиСредний
Время на прочтение16 мин
Охват и читатели27K

Disclaimer. Данная работа не повлияла на мои взгляды на программирование, но повлекла достаточно радикальные изменения в подходах к проектированию автоматных объектов.  Теперь, если процесс  автономен и/или не предъявляет требований  к синхронизации, он может использовать другие механизмы параллелизма, не переставая при этом быть автоматным по сути. А почему так случилось, что этому предшествовало  и что это за изменения, вы прочтете далее.

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

Читать далее

ВКПа. Введение, ч.3. Графика. Имитационное моделирование

Время на прочтение12 мин
Охват и читатели1K

Наконец‑то мы добрались до конечной цели — графики, которая достаточно близко к реальности моделирует интересующие нас объекты. Речь пойдет об объектах систем управления (СУ). Это датчики, переключатели, индикаторы, моторы, конвейеры, объекты типа рассматриваемой нами гильотины и т. д. и т. п.

Читать далее

ВКПа. Введение, ч.2. Копирование автоматов и начала имитационного моделирования

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели2K

Данный цикл статей - не техническая документация, не подробное описание научных идей. Это краткое, обобщенное описание возможностей среды ВКПа на простом примере. Демонстрация процессов и принципов работы в ней. Идеи - проверенная временем часть. Они описаны в статьях, ссылки на основные из них приведены в  первой части [1]. Без понимания этого материала невозможно разобраться, зачем вообще нужна подобная среда. Ведь, существует и другое автоматное программирование. Но только идеи, положенные в их основу, другие.

Отличие идей - это главное, чем объясняется необходимость среды ВКПа. Другой такой просто нет, как нет по большому счету и таких идей. И,  вообще, без понимания основ теории автоматов невозможно объяснить необходимость данной модели вычислений. Ведь, без автоматов программисты когда-то вполне обходились, а большая часть без них обходится и до сих пор.

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

Читать далее

ВКПа. Введение, ч.1. Визуальное проектирование автоматов

Уровень сложностиСредний
Время на прочтение14 мин
Охват и читатели3.2K

В моих статьях часто используется аббревиатура ВКПа. Это сокращение названия программной среды проектирования по канонам технологии автоматного программирования - среды автоматного Визуально-Компонентного Программирования (подробно основы ее теории описаны в статьях [1, 2]). Объяснение, что это за среда, конечно, дается, но, признаю, что делается это часто по ходу, достаточно поверхностно и разбросанно по многим статьям.

Отсюда вполне закономерный вопрос - что собой представляет ВКПа? В результате созрело решение, а, может, просто пришло время, дать достаточно концентрированное, пусть не столь подробное, описание среды. Будет это не техническая документация, т.к. речь все же не о ней, а о расстановке акцентов, точек, которые могли бы дать правильное представление о технологии и среде автоматного программирования, в которой, за очень редким исключением, создается мой программный код.   Но это одна сторона дела. Есть и другая...

Буквально за последние месяцы была проделана объемная целенаправленная работа по развитию среды и, что особенно важно, по повышению качества ее работы.  Раньше она была рассчитана на одного пользователя, который с ее проблемами легко мирился. Но, как говорится, до поры до времени... Теперь этот пользователь, а заодно и разработчик, решил сконцентрировать силы на доведении ее до нормального рабочего состояния.  Пришло, так сказать, время перейти на новый уровень качества среды. И, может, это прозвучит нескромно, но захотелось заодно поделиться также удовольствием от нынешней работы в ВКПа...

Читать далее

Держись, Маша! Ты, ведь, наша! Продолжение разбора книги «Цифровая схемотехника и архитектура компьютера»

Уровень сложностиСложный
Время на прочтение21 мин
Охват и читатели13K

Упомянутая в заглавии книга (далее H&H) - это про железо [15]. Я - про программирование, но на базе "железной модели" конечного автомата. И там и там математическая основа одна. Все это, действительно, крутая железная концепция, помогающая поставить не только синтез цифровых схем, но и программирование на совершенно другие рельсы, определяющие его будущее.

Параллелизм у программистов нынче в моде. Но, видимо, они (программисты) совсем не в курсе, что разработчики железа давным-давно погружены в эту тему. А потому им (я все про программистов) есть у кого поучиться. Но, похоже, некие амбиции-заскоки этому  мешают. Но, если вы этим не страдаете, то прочитайте книгу H&H и дойдите, ну, хотя бы до 4-й главы. Попробуйте реализовать одно-два упражнения, используя свой, программистский инструментарий - всякие там корутины, потоки и весь сопутствующий этому террариум. Убедитесь в его полном бессилии. И тогда, может, это заставит кое-что пересмотреть, переосмыслить. Только представьте: логический элемент - отдельный процесс, десятки, сотни, тысячи элементов - множество параллельных процессов, и все это в вашей ладошке (это я про смартфон) и даже работает!

Но пришло время исполнять обещанное (см. предыдущую часть темы в [1]). И пусть количество "плюсов" пока не достигло заданной планки, но ... если каждый "минус" считать за два "плюса", то это уже более чем ... ;) Так что спасибо всем, давшим положительную оценку - нет, не автору, а затронутой теме. Области знаний, от которой многое сейчас зависит.  Это те слова, которые мы вправе сказать в адрес теории, посвященной  синтезу цифровых схем, в адрес тех, кто занимался и занимается ее развитием, становлением и внедрением в практику.

Читать далее

Не спеши, Маша! Разбор примеров из книги Хэррис Д.М., Хэррис С.Л. Цифровая схемотехника и архитектура компьютера

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели19K

И вот, скачав бесплатную версию книги, я в который раз убедился, что как оно было этак 40-50 лет тому назад, так оно фактически и осталось. Но больше убило другое. В научном плане стало даже хуже. Теорию, судя по содержанию книги, нынче пролетают "по диагонали", что влечет за собой элементарные ошибки, характерные больше для студентов техникума, чем "вышки", на которых, судя по рекламе, эта книга рассчитана.

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

Итак, начнем...

Читать далее

Информация

В рейтинге
Не участвует
Откуда
Балакирево, Владимирская обл., Россия
Дата рождения
Зарегистрирован
Активность