Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Ср ноя 30, 2022 01:42

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Статья (мини): кофе в сахар или наоборот?
Автор Сообщение
  Заголовок сообщения:  Re: Статья (мини): кофе в сахар или наоборот?  Ответить с цитатой
Ссылка по теме.
Сообщение Добавлено: Сб июл 09, 2022 00:04
  Заголовок сообщения:  Статья (мини): кофе в сахар или наоборот?  Ответить с цитатой
Это не совсем статья, а скорее мини-очерк.

В последнее время обнаруживается довольно много вариантов Форта. Пишется или "внезапно" находится поиском - неважно. Главное то, что у этих вариантов очень похожее последействие - близкое к нулю. Вроде бы можно подергать за ниточки проектов, документации, примеров и прочего "продвижения", но на практике это все приводит к стабильно никаким результатам. И что характерно - у автора-то работает! И что же со всем этим делать?

Процесс написание и представления таких Фортов напоминает опрокидывание чашечки кофе в сахарницу. Вроде бы получается кофе с сахаром, но что-то здесь не так. Пить такое можно только в рамках большого упрямства. Вопрос в том, что "сахар" (форт-машина с каким-то набором слов) существенно преобладает над "кофе" - собственно программным приложением. В итоге это все можно скачать, может быть даже повозиться с установкой, а потом.... набрать 2 2 + и порадоваться появившейся цифре 4. А дальше? И вот тут начинается интересная подмена реальности фантазиями. Прибегут последователи и напишут. Ну да, последователям-то вот именно этого консольного приложения для счастья и не хватало. Видимо, сидят в глухом лесу, не видят вообще никаких систем разработки и ждут, пока им дадут консоль с десятками слов, большинство из которых решает внутренние задачи Форта.

Более того, практика показывает, что многие программисты вполне интересуются основными концепциями языков программирования. Стековая машина - не такая уж незаметная вещь. Поэтому удивить кого-то лозунгом "смотрите, смотрите, у меня КОМПИЛЯТОР!" уже несколько наивно. Собственно, а чего еще можно было ожидать после десятилетий пропаганды Форта как простого в разработке языка? Ну вот, люди прочитали и поверили, даже пишут свои реализации. Или кто-то ожидал, что у него под дверью будут биться в истерике "мейнстримные программисты", плачущие о том, что не понимают стек, но очень-очень хотят? А он будет годами их "консультировать" (то есть уговаривать не бояться и объяснять, как работает DUP)?

Таким образом, стоит посмотреть на ситуацию с точки зрения уже состоявшейся эволюции представлений о Форте. Зачем-то ведь его пишут? Да и, если разобраться, концептуально отличающиеся языки программирования вряд ли совсем пропадут. Стек и словарь - это просто разновидности приемов программирования, а Форт как язык показал их практическую применимость. Положим рядом с ними FIFO и деревья и окинем взглядом получившуюся картину. Это приемы программирования.

И вот теперь начинаем "пить кофе культурно" - берем чашку и добавляем сахар по вкусу. Что у нас по сути есть? У нас есть конкретные задачи, решение которых нам хотелось бы упорядочить, улучшить, упростить и т.д. Где-то приемы Форта будут бесполезны. Где-то - вполне пригодятся. Посмотрим, где конкретно.

Можно привести примеры, когда Форт выглядит странновато. Например, что-то крутится, выдает цифры, принимает пачки данных с UART.... возникает вопрос "а Форт-то тут зачем?". Можно долго-долго переписывать имеющийся код на Форте, а результатом будет только заявление "уфф, я долго-долго работал и вот наконец оно на Форте". Ну да, добавлены ошибки, стало медленнее (шитый код же, или хотя бы отсутствие мощной оптимизации от готовых компиляторов). "Зато на Форте" - слабое утешение.

Чего же там не хватает? А в первую очередь - консоли. И интерактивности в широком смысле слова. Например, с платы на базе Arduino после отсылки туда кода 42 идут 1000 данных int16. Здорово! Нравится! Теперь 1024... нет, давайте 512. Что будет делать программист? Правильно, откроет код Ардуино и будет его переписывать и перезаливать. Там же 1000 где-то сидит, будем надеяться, что в define, а не рассыпано по коду в буквальном виде. А числа int16, или int32? Опять редактор, компиляция, заодно обновление программы на ПК... Повторить N раз.

Что даст Форт? Понятно, что консоль Форта позволит послать "1024 get-data" и ничего не переписывать. В итоге в распоряжении Форт-разработчика оказывается мощный аргумент "я буду разрабатывать и вносить изменения быстрее". А это действительно мощный, важный и понятный аргумент. Это не уровень "а тут быстрее на 2 миллисекунды, но это конечно если брать v5.02, и там еще патч, и не все МК поддерживаются..." - это и слушать не будут.

Соответственно, в качестве чего можно рассматривать Форт? В качестве "сахара". Он должен оттенять вкус основного продукта, а не являться базой для раскрутки всего с нуля. Если Форт написан в виде консольного приложения - это просто консольное приложение. То, что у него там какие-то слова и 2 2 + дает 4 - это уже неинтересно. Это все равно черный экран с белыми символами, и за эти пределы он не выйдет. Искать нужно готовые архитектуры, которые благоприятно отнесутся к встраиванию простой интерактивной машины. В этом случае получится именно улучшение характеристик и так неплохой системы, а не попытка подпрыгнуть с места на огромную высоту.
Сообщение Добавлено: Пт июл 08, 2022 01:10

Часовой пояс: UTC + 3 часа [ Летнее время ]


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB