Forth на STM32F103C8T6 — настоящие динозавры не вымирают

Довольно-таки бесполезная для большинства читателей статья об очень старом языке программирования, созданном Чарльзом X. Муром в конце 1960-х — начале 1970-х и используемом до сих пор. И немного поиграем с Форт на STM32.

«The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was»

Йоды магистра тайна речи раскрыта:
Старым Форта программистом он просто был.



В конце 80-х годов мне в руки попала замечательная книжка Баранова С.Н. и Ноздрунова Н.Р. «Язык Форт и его реализации».



В то время мы в институте железнодорожного транспорта разрабатывали портативный тестер для БУВИПа (Блок управления выпрямительно-инверторным преобразователем) для электровозов ВЛ-80Р/ВЛ-85. По нынешним временам не особо портативный — весил килограмм 10. В основном за счет щелочных аккумуляторных батарей, которые были распространены на железной дороге, но легкими не были ни разу.



Была под руками ДВК-2М и был кросс-ассемблер для i8080. Программное обеспечение писали на ассемблере, компилятора С не было и взять было неоткуда. Как известно, в то время коммунисты запрещали интернет и даже сотовые телефоны :). Из клонов IBM в то время в нашем вычислительном центре была только ЕС-1022.
Книжка вдохновила настолько, что я написал свою целевую Форт кросс-систему. В итоге весь еще недописанный ассемблерный код был выкинут и переписан на Форте в рекордные сроки. Хорошего редактора для Форта не было, за несколько дней был написан Форт-ориентированный редактор для ДВК, у которого был даже экзотический в то время буфер копирования/вставки строк. Код занял чуть больше 3 килобайт.
Сам Форт занял в памяти контроллера на базе 8080 что-то в районе 8-9 килобайт без всяких оптимизаций (если не нужна интерпретация и выбросить заголовки слов, то система уталкивалась менее, чем в килобайт), а вся задача, включая интерпретатор Форт — около 14 килобайт, включая графический интерфейс на газоразрядном дисплее ГИП-1000 (100х100 точек).



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

После был еще один проект на Форте — управление подсыпкой глинозема в электролизную ванну на алюминиевом заводе. Там контроллер был на базе i8085 — не велика разница. Контроллеров было что-то в районе десятка, доступ к ним был уже организован по-взрослому — был в интранете свой сервер и удаленный доступ к контроллерам. Можно было модифицировать программное обеспечение и получать данные не бегая в цех. По тем временам было круто — об интернете уже были наслышаны, но не более того. Обходились Фидо.



Сканы со старых фотографий, если вы решите, что они сделаны в аду — не сильно ошибетесь. Дым из электролизера — это какие-то фториды, дождь над заводом шел слегка разбавленный плавиковой кислотой. В итоге все окна слегка растворялись этой кислотой и через несколько недель новое прозрачное стекло становилось матовым. Впрочем, фотографии больше 25 лет, все сильно изменилось.



Через пару десятков лет, когда все было давно и прочно забыто, Форт вылез снова.
Я работал в печальной памяти National Semiconductor, когда в одну микросхему кому-то пришло в голову встроить стековую машину — по сути дела очень усеченную Форт-машину. Готовой кросс-системы не было, но что-то мне удалось адаптировать за считанные дни, в основном время ушло на то, чтобы вспомнить, что есть Форт. Все свелось к небольшой модификации встроенного ассемблера.
Идею очень компактного стекового процессора для FPGA или ASIC со всеми исходниками вы можете найти здесь.
Теперь вы знаете, как сделать свой форт-процессор :)

Разных реализаций Форт-систем существует, как собак нерезаных. В большинстве своем они бесплатны.
Форт — довольно странный язык для тех, кто уже занимался программированием.
В нем, как в Библии — в начале было слово. В конце, впрочем, тоже. Все объекты в Форте — это слова. Постоянные, переменные, функции — это всего лишь слова. Еще у него есть два стека — стек данных и стек возвратов. Все делается через задний проход стек данных. Это определяет и способ записи операций — обратная польская запись.

Программирование на Форте — это просто расширение словаря добавлением новых слов.
Форт, как современный Python — не компилирующий язык, а интерпретирующий.
Чтобы умножить 2 на 2 и распечатать результат, нужно положить на стек оба операнда и вызвать функцию умножения и распечатки.
Выглядит это так:
2 2 * .

в итоге получите (удивительное дело, правда?):
4 ok.

Можно оформить это вычисление, как функцию:
: myfunc 2 2 * . ;

Теперь, чтобы получить результат, нужно просто вызвать функцию:
myfunc
4 ok.


Теперь ближе к телу. Для примера можно взять реализацию Mecrisp Forth отсюда.

Файл, скачиваемый по умолчанию, содержит реализацию Форта для десятка разных контроллеров MSP430 от Texas Instruments.
Скачивайте файл mecrisp-stellaris-#.#.#.tar.gz
# я заменил номер версии. В файле Mecrisp-stellaris реализации для Cortex — в районе сотни разных процессоров от разных фирм. Есть тонкость — USB этот Форт не поддерживает, только UART. Если связываться с переходниками лень, как мне, здесь добрый человек уже добавил USB для STM32F103C8T6.

Загрузите файл usb-common.bin. С usb-common.hex какой-то косяк с адресами, разбираться поленился.

Для загрузки используем дешевый клон ST-LINK.



Можно с сайта STMicroelectronics скачать, но он только для Windows. Мультиплатформенный Open source ST-Link tools можно скачать тут.

Больше почитать на великом могучем можно тут.

Теперь очищаем флеш память микроконтроллера на всякий случай
st-flash erase


и заливаем паршивку
st-flash write usb-common.bin 0x08000000


После сброса появляется USB Virtual COM Port:
lsusb
Bus 001 Device 050: ID 0483:5740 STMicroelectronics Virtual COM Port


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

Словарь Форта содержит слов 300 минимум. И исходный текст Форта, написанный на этом Форте — это лучшие примеры и лучшая документация.

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

: blink omode-pp pc13 io-mode! begin pc13 iox! 500 ms key? until ;
blink




Светодиодик будет менять свое состояния каждые полсекунды до тех пор, пока не будет нажата какая-нибудь клавиша.
Разберем, что тут понаписано


:                      \ начало определения
blink                  \ имя нового слова
omode-pp pc13 io-mode! \ инициализируем порт pc13 на вывод
begin                  \ начало цикла
pc13 iox!              \ исключающее или порта pc13
500 ms                 \ задержка 500 мсек  
key?                   \ нажата ли клавиша?
until                  \ продолжать цикл пока клавиша не нажата    
;                      \ конец определения


Дублировать многочисленные книги и статьи я воздержусь, рассматривайте эту статейку как удочку, а не рыбу. Материалов по Форту очень много, он широко популярен в узких кругах :)
И, говорят, плох тот Форт-программист, кто не написал свой Форт. Это близко к истине, свою Форт систему написать легко, если понял, как она устроена. А устроена она не просто, а очень просто :). Особенно для того, кто до этого писал на ассемблере.

Обзор опубликован не в качестве документации или рекламы, а исключительно на правах мемуаров :)
Добавить в избранное +176 +218
+
avatar
+25
Хороший совет для автора:
Разбери ST-LINK и наклей каптоновый скотч на плату для изоляции. Часто выступающие элементы защищает от замыкания на корпус только тонкий слой лака на корпусе. А лак со временем протирается. И ST-LINK дохнет. Частенько вместе с подключенным МК.
+
avatar
0
по моему про эту фичу знают все у кого есть ст-линк
+
avatar
  • vismyk
  • 10 июня 2022, 09:57
0
Я не знал, у меня пластиковый… :-Р
+
avatar
+45
Можно я два плюса поставлю? и еще один за Фидонет?

Молодежи не понять как зарождалась цифровая электроника на микроконтроллерах. у них сразу был интернет и есть информация.

Нам древним первооткрывателям приходилось эту информацию добывать по крупицам из книг и журналов и методом проб и ошибок делать первые устройства.
+
avatar
+2
Два ++
+
avatar
  • Naevus
  • 05 июня 2022, 19:27
+3
два ++ это уже С++
А мы когда то писали на С-- (си минус-минус). Блин, до сих пор скучаю по нему.
Но и польская запись и сам форт нам не чужд — с них и начинали (ну почти)
И, да — книжки. если вы жили не в областном центре, можно было достать только по блату.
Именно поэтому я до сих пор храню на винте все, что ууекалось по фидо. Имидж ничто — информация — всё!
+
avatar
+1
"+".
+
avatar
+6
немного не так, 2 варианта:
+
avatar
  • vismyk
  • 04 июня 2022, 11:54
+11
рассматривайте эту статейку как удочку, а не рыбу
Если дать человеку удочку, то он скажет: «Вы что, совсем уху ели? Я зачем в этот ресторан хожу!?» ;)
З.Ы. Книжки про Форт тоже попадались в руки в старину, но, к счастью, инфицирования не произошло… ASM есть царь! ;)
+
avatar
+14
Товарищ donButton (sorry, — baton) крут однако, пишет интересно!
Я пронастольгитровал по своему первому компьютеру МК-61, который купил на сбережения со своей кровной стипендии.
Обратная польская запись, первые программы, первые игры, «Техника молодежи», Кон-тики, эх, где мои 16 лет!
Наири в нашем учебном заведении была сломана, но под конец обучения появились Роботроны 1715, CP\M я был один из главных главный по ним, но не долго!
Спасибо.
+
avatar
+3
Помню, для него игра была такая из «Техники молодёжи» — посадка самолёта, цифры на табло выдают высоту и скорость и что-то ещё, ты вбиваешь свои, калькулятор(на тот момент суперкомпьютер) быстренько обсчитывает их, выдаёт на табло новые, ты корректируешь и так много циклов, в конце, если якобы касание ВВП произошло с нормальной скоростью увидишь на экране одно, если по-ходу ошибся в коррекции показаний — будет фиаско с противным звуком(если не ошибаюсь).
+
avatar
  • Lett
  • 04 июня 2022, 20:58
+4
Звука не было вообще. Трассу помнил наизусть, так что когда учителя думали, что я на калькуляторе что-то считаю, то иногда ошибались — играл.
+
avatar
0
Звука не было вообще.
Возможно про звук ошибаюсь, но игра на тот момент была класс — тренировала мозговые вычисления.
+
avatar
  • dimasg
  • 06 июня 2022, 12:50
+1
Не «Посадка на Луну»? Она, правда, изначально вообще для БЗ-34 была, помню по блок-схеме писал её на Фокале для БК-0010 :)
+
avatar
+3
О да, Кон-тики наше все. Ностальгия. В каждом номере новая задачка и программа для нее. Отец где-то достал МК-52… эх, бессонные ночи. Стопки ТМ с тех времен до сих пор хранятся
+
avatar
+29
Хабр уже не торт. С такими статьями Муську станет читать гораздо интереснее.
+
avatar
+6
Спасибо! Понастальгировал! :) Моим первым программируемым электронным устройством ещё в школьные годы где-то году в 84 был микрокалькулятор «Электроника мк-54» со стековой организацией и, естественно, обратной польской записью. Так что Форт не казался такой уж экзотикой. Когда года через четыре появился первый домашний компьютер БК-0010, я вскорости отыскал Форт для него и был несказанно рад — язык действительно очень мощный, расширяемый, с компактным программным кодом (порой получался меньше, чём аналогичный на ассемблере). Куда лучше вшитого в БК Бейсика. И книжка такая про Фото до сих пор есть :) В универе обсчитывал лабы. Позднее, уже в начале 90-х на толкучке нашел и компилятор Си для БК. Потом были домашние ДВК-2,3,4 -собранные из плат, купленных на той же толкучке в начале 90-х. Но и на ДВК пользовал порой Форт (хотя там уже было полноценное родное ПО от DEC Corp. — ОС RT-11 со всеми вкусностями) :)
+
avatar
+5
Форт — это для мажоров. Фортран — вот выбор олд-программистов.
+
avatar
+2
Фортран — вычислительный язык. Мы его в студенческие годы тоже использовали. Он и сейчас в физических рассчетах применяется
+
avatar
  • Lev
  • 05 июня 2022, 18:09
+1
ФОРмульныйТРАНслятор :)
+
avatar
  • xvx
  • 05 июня 2022, 19:56
+1
На первом занятии по фортрану наш преподаватель сказал легендарную фразу:
— Сегодня мы начинаем изучать фортран. Его название — это сокращение от «Formula translator», что переводится на русский как «Транслятор формул»
+
avatar
+2
Я бы сказал, что самая продвинутая книжка про Форт была та, которая большого формата и в оранжевой обложке (да-да, даже не Лео Броуди, хотя в его книжке иллюстрации были афигенны). Увы, но реализации для Спектрума в самых интересных местах сильно отличались от стандарта, а документация к ним осталась где-то на исторической родине Клайва Синклера.
+
avatar
0
Вчера полез в книжный шкаф и на дальней полке, кроме уже помянутых тут Броуди и «зелёной книжки» нашёл ещё две таких:

+
avatar
  • uccode
  • 04 июня 2022, 16:10
+2
Да были времена. Начинал с М220 на Алголе, а потом пошло СМ1, БЭСМ6. ЕС1035, PDP11. В по большей части Фортран для математических пакетов обработки данных но был большой кусок жизни с PL1. А на персоналках(помнит ли кто нибудь этот термин?) в основном базы данных и Бэйсик. На микроконтроллерах конечно, его Величество Ассемблер в разных ипостасях. Который попадается до сих пор, хотя в основном С. Ну а на компе VB, C# и JS. Хотя основная работа микроконтроллеры. Люблю я их.ц
+
avatar
+5
Про обратную польску.ю запись узнал, когда знакомился с Б3-34. Вот это калькултор был…
+
avatar
+9
Йоды магистра тайна речи раскрыта:
Старым Форта программистом он просто был.
Ай-яй-яй, три ошибки.
Йоды магистра речи тайна раскрыта:
Форта программистом старым был он просто.
;-)
+
avatar
  • u3712
  • 04 июня 2022, 17:16
0
Зануда: on

он(был(старый(программист(Форт))*просто));
Т.е.
Форта программист старый просто был он

Remark
Форт-подобный язык сделал в интрпретаторе команд, на котором написана небольшая часть (защиты) программы, дабы ее нельзя было в-лоб взять 'идой'. Да и вырезать его нельзя, там не только защита, но и часть самой программы.
+
avatar
  • xvx
  • 05 июня 2022, 12:20
+6
Это что ещё за скобочки? Так ведь и до Лиспа договориться можно…
+
avatar
+2
Ждём ностальджи по Cobol и Fortran.
+
avatar
  • ber3
  • 04 июня 2022, 18:51
+3
Ждём ностальджи по Cobol и Fortran.
пиэль, алгол и конечно бейсик… 5 дюймовых жестких по 360КБт.и флопах а то и компакткасетах, перфолентах и перфокартах, наири… памяти на «колечках». в идеале — ру10, синклер, спектрум...Z80 форевер! снапдрагон в помойку! :)
а как мы сутками вручную набивали 4 страничные коды из «радио»…
+
avatar
+1
Давайте дальше. РАЯ — Русский Алгоритмический Язык или программирование БЕЗ компьютера (надо же что-то делать на уроках информатики, когда школа не оборудована компьютерным классом). Очень хороший способ отбить у ребёнка желание учиться программированию.
+
avatar
  • Zolg
  • 05 июня 2022, 23:48
+1
Мы подобное называли турбо-листочком. (Изучаемым языком был, естественно, паскаль)
+
avatar
+2
Да, статья про то, как с ограниченными ресурсами делали цацки тогда.
Думаю лет через 30 будут ностальжировать по современным языкам и ардуинам :)
+
avatar
+1
уже по Флешь ностальжируем…
+
avatar
0
учил когда-то ЯМБ — Язык Машин Бухгалтерских!
+
avatar
+8
В 1987-88 годах, когда учился в институте, повстречал настоящего фаната форта. Любая, даже случайная, встреча с ним начиналась с того, что он рассказывал про очередную фичу языка. Но я в то время как раз изучал ассемблер 8080, поэтому не проникся :)

И да, за фидо тоже отдельный плюсик.
— Меня видно?
— ет
еще про эту букву
+
avatar
  • Dimon_
  • 04 июня 2022, 22:31
+4
АКОЕЦ-ТО Я АСТРОИЛ ЭТУ ГРЕБАУЮ " "! ©
+
avatar
  • vismyk
  • 05 июня 2022, 08:14
+2
МЕЯ ВИДО? © ;)
+
avatar
+3
Обратная польская запись и мк61, ностальжи.
ФИДО софт использовал для файловой почты на одном предприятии, где филиалы были в сёлах и кроме проводных телефонных линий там ничего не было. Когда пришел hyper.net от UMC, т.е. гривна за факт выхода в GPRS за день — фидоподобная сеть была упразднена в пользу обычной электронной почты…
+
avatar
+3
Может перекличку фидошников устроим? Кто еще помнит свой адрес? Мой был 2:5020/383
+
avatar
+2
Хех, чому бы и ет :)
2:5030/260.4
+
avatar
+1
Да, мало нас осталось… :-})
+
avatar
  • Dimon_
  • 05 июня 2022, 00:30
+2
Денис, плохая идея.
У меня — так нодлисты до сих пор лежат нетронутые. И у многих других. В те времена имя и фамилия ещё не были перс.данным :)

PS: Так ведь там ещё и телефоны городские, которые у многих сохранились…
+
avatar
+2
И что, от того что эти и так открытые всем данные свяжут с аккаунтом на муське, что то изменится? :-)))
+
avatar
  • xvx
  • 05 июня 2022, 12:19
+2
Да нормально ещё осталось. Открыл только что список нод своей сетки. Блин, какие все имена знакомые! Сколько сисопок вместе проведено, сколько пива выпито, сколько полуосей настроено…
Но свой адрес, звыняйте, выкладывать не буду.
+
avatar
  • m1171
  • 07 июня 2022, 11:24
0
Я пробовал с год назад позвонить на ноду, означенную в свежем листе как СМ, и без инет-протоколов. Фиг там был…
+
avatar
  • fido15
  • 07 июня 2022, 12:39
+1
Адрес ноды в студию! Диалапные узлы часто прозванивают, информация по ним в нодлисте за редким исключением более-менее соответствует реальности.
+
avatar
  • m1171
  • 07 июня 2022, 12:49
0
Город 2:5030, а вот номер, разумеется, не помню спустя год.

Впрочем, сейчас у нас там всего два узла с опубликованными телефонами, из них один без веб-флагов. Да и кому в наши дни прозванивать диалап-то?
+
avatar
  • fido15
  • 07 июня 2022, 13:04
+1
Ну тогда, наверное, это 2:5030/1495. Во время последней прозвонки 31 января этого года узел отвечал, как и второй модемный узел в 5030: wfido.ru/m/RU.FIDONET.DIGEST/2:6035/3.1+61f786ae
+
avatar
  • m1171
  • 07 июня 2022, 16:02
0
Кул. 30 работающих диалапом узлов по России. Надежда наша и опора!

На /1957 когда-то был линк, 20 лет назад :/
+
avatar
  • xvx
  • 07 июня 2022, 18:32
+1
Сейчас увидеть работающий проводной телефон ненамного легче, чем встретить динозавра. Какие уж тут диалапы.
Я забросил ФИДО лет 15 назад — уже тогда внешний канал через интернет был. Только по городу диалапом раздавал.
+
avatar
  • fido15
  • 08 июня 2022, 08:43
+2
Ну конечно, сейчас подавляющее большинство узлов работает через IP, но энтузиасты диалапа никуда не делись. Недавно вот был побит рекорд продолжительности модемной сессии, который составил 40 часов 40 минут 44 секунды :) Кроме того, набирает популярность такая развлекуха как dial-up over VoIP. Так что ещё поживём.
+
avatar
  • Dimon_
  • 04 июня 2022, 22:22
+2
был в интранете свой сервер и удаленный доступ к контроллерам. Можно было модифицировать программное обеспечение и получать данные не бегая в цех.
У… Да вы мажор :)
А я, во времена, когда дискеты были большими, а интернет маленьким, между цехами завода, где работал, построил натурально FTN-сетку на модемах, через местный телефон.
По сути, маленькое ФИДО, только без Голого деда. Сконфигурил T-Mail и из отделов в цеха файлы с техпроцессами и кодами перфолент летали само по себе. :)
+
avatar
+2
Словарь Форта содержит слов 300 минимум. И исходный текст Форта, написанный на этом Форте — это лучшие примеры и лучшая документация.
Кстати, да. Форт очень интересный язык: только базовые слова реализованы на ассемблере, а дальше сам Форт написан на Форте — новые слова определяются через уже определённые. Поэтому все ваши «функции» и «подпрограммы» для Форта такие же родные, как и базовые слова.
+
avatar
  • r0c
  • 05 июня 2022, 08:36
0
Вам 100 плюсов! Старая гвардия… можете и умеете…
+
avatar
+1
Первый раз я столкнулся с обратной польской записью на Б3-21.
Как ни странно, можно было даже примитивную игрушку написать — честно содрал с какой то брошурки, но даже однажды считал курсач по антеннам — мне это калькулятор вполне успешно решил трансцендентное уравнение.
А на форте не писал, хотя книжки встречались по нему.
Ну, в моей коллекции по чему только книжек не встречалось.
В том числе по языку, который должен был заменить все существующие на тот момент языки программирования — Ada, вот ждем, пока заменит… :)
+
avatar
0
В том числе по языку, который должен был заменить все существующие на тот момент языки программирования — Ada, вот ждем, пока заменит… :)
Недолго осталось, ибо ГОСТЪ 27831-88, а не как всякие эти смузехлёбские ПоХаПе и жабоскрипы. Так шта ждите в ближайшем будущем Ада на Эльбрусе.
+
avatar
0
Насколько помню, Ада — вражеское детище, рождённое в недрах Пентагона.
+
avatar
  • xvx
  • 05 июня 2022, 19:53
+3
У меня даже книжка по нему есть. С шикарным названием «Язык Ада»
+
avatar
  • Nuts_
  • 05 июня 2022, 23:58
+1
есть анекдот на эту тему
+
avatar
  • vismyk
  • 05 июня 2022, 20:03
+1
В недрах тамошнего ВМФ, то бишь US Navy, кажись…
+
avatar
+1
Сразу после появления завода, который его сможет выпускать)
+
avatar
  • Nuts_
  • 05 июня 2022, 14:15
+5
муська теперь новый хабр.
с фидошниками и фортом.
+
avatar
  • Prays
  • 05 июня 2022, 17:05
+8
Да гораздо лучше. Здесь для народа, а не для рекламы.
donBaton жги дальше, очень интересно. Каждый пост как детектив с сюжетом, завязкой, развитием и развязкой.
+
avatar
  • Gidof
  • 05 июня 2022, 15:56
0
Я вот тоже недавно накатил forth на stm, правда всплыл косяк что он нормально перезагружаться не хочет. Начинает работать только после полного сброса питания.
+
avatar
0
хоспади… сколько же на муське мамонтов… точней даже не мамонтов а диназаверов )))
+
avatar
+5
Да, молодежЪ то вся в тиктоке интеллектом меряется… Куда нам до них, мы тут понастальгируем :)))
+
avatar
  • dimasg
  • 06 июня 2022, 12:52
0
Ностальгия :) Начинал на ДВК-1, с его коцаным Бейсиком. На ДВМ-2 у нас уже Паскаль был в конце 80-х…
+
avatar
+1
Форт — ну такое себе извращение… пока только постигаешь ИТ, любой маразм, даже Рефал и Брэйнфак кажутся интересными. Но вот для практики ничего лучше Си не придумали и неважно, сколько он занимает. Программы пишутся ДЛЯ ЛЮДЕЙ, а не компов. Отсюда и требования к языкам.
+
avatar
0
Но вот для практики ничего лучше Си не придумали и неважно, сколько он занимает.
А занимать он может не так уж много. У меня на БК-0010 был компилятор Си (без «плюсов», естественно. да и сам Си был чуть-чуть подрезан по библиотечным функциям) — вполне работоспособный. Си, безусловно, удобнее Форта в плане написания кода, особенно для сложных и больших проектов, ОС.

Что касается «Программы для людей», то тут готов поспорить. Программы пишутся программистами для компьютеров, а людям эти программы нафиг не нужны — людям нужен результат работы программ, функционал, который они обеспечивают. И если этот результат мы получаем Чёрной магией, а не программой на С++ или ином языке, потребителю пофиг. Сейчас же, когда аппаратные ресурсы и мощности не те, что лет 30 назад, программисты слегка подохренели и порой полагают, что действительно программы для них, а не для заказчика. В результате тоннами выдают удобный программистам, но мало на что пригодный гoвHoкoд. Нет, я ни в коем случае не говорю, что все такие. Но, к сожалению, порой встречаются.
+
avatar
0
Это двоякое понимание предлога «для» :) Понятно, что программа пишется ДЛЯ РАБОТЫ на компьютере, но именно программный исходник пишется ДЛЯ ЛЮДЕЙ, компьютеру всё равно непонятны ваши «main()»!
И моя мысль абсолютно верна, не понимаю, с чем вы спорите: чем понятнее исходник, тем более легко будет программу улучшать и сопровождать. Очевидно, что Фортовские приколы с инфиксом — далеки от сопровождаемости. Тут лучше Си.
+
avatar
  • vismyk
  • 09 июня 2022, 16:49
0
Исходник тем понятнее, чем лучше он комментирован. ;) Если в исходнике на Ц все функции (ладно, кроме main()) именовать по шаблону f_xxxxxx, где xxxxxx — порядковый номер, все переменные по шаблону v_xxxxxx, а константы — c_xxxxxx и комментариями полностью пренебречь, то понятность будет такая себе. :-D И это к любому языку относится…
+
avatar
  • dimasg
  • 09 июня 2022, 11:57
0
Есть еще проблема стоимости владения ПО, когда поддержка может стоить в несколько раз больше, чем написание. И там как раз легкость понимания и поддержки кода начинает играть немалую роль.

Ну и мода и подходы меняются… Когда-то ООП считали панацеей, потом в функциональщину ударились, потом еще что-нибудь появится…
+
avatar
0
Спасибо за историю! Люблю подобные истории. Сам конечно щупать Форт не полезу, у меня на Си и С++ иногда туго идет, но почитать было круто!