Forth http://fforum.winglion.ru/ |
|
Рекомендательный стандарт Форта http://fforum.winglion.ru/viewtopic.php?f=36&t=2731 |
Страница 1 из 2 |
Автор: | Hishnik [ Вс май 22, 2011 20:54 ] |
Заголовок сообщения: | Рекомендательный стандарт Форта |
"Не стоит прогибаться под изменчивый мир, пусть лучше мир прогнется под нас". Однако зачем тратить энергию на прогибание мира, если эту энергию можно потратить с большей пользой? Стоит посмотреть, как оно вокруг, и понять, что можно сделать с объективно сложившейся ситуацией. А в области стандартов Форта она такова, что любой стандарт мгновенно становится объектом для атаки. В стандарте написано 8, 16 и 32 бита? Непорядок! А где 64? А где 4? А где произвольная разрядность, наконец? Написано 8 ячеек стека? Даешь 8192! В целом, попытки выдать стандарт на грамматику языка ("как у других") вдребезги разбивается о тот факт, что Форт изначально ориентирован на конструирование необходимой грамматики. Отсюда и конфликты. Теперь давайте посмотрим на общеупотребительные стандарты в области программирования и разработок. Например, ГОСТ на описание программ вовсе не утверждает, что, к примеру, в разделе 2.1 должна существовать таблица из трех колонок с описанием режимов контекстного меню. Напротив, ГОСТ в этом плане весьма и весьма толерантен и очерчивает только общие контуры описания программ. Попытаемся применить такой подход и к стандарту на Форт - пусть он не перечисляет слова, пытаясь угодить и нашим и вашим, а перечисляет, что надо описать. Итак: Рекомендуемые разделы, содержащиеся в описании транслятора языка Форт 1 В разделе общих сведений: 1.1 Назначение транслятора, область применения, типичные примеры решаемых задач. 2. В разделе системных требований: 2.1 Требования к процессору. Если транслятор может быть запущен на различных процессорах, необходимо указать отличия в функциональных возможностях и порядке работы транслятора. 2.2 Требования к операционной системе. Если транслятор может быть запущен под управлением различных операционных систем, необходимо указать отличия в функциональных возможностях и порядке работы транслятора. 2.3 Требования к объему памяти. Если транслятор может быть запущен в различных режимах, указать объемы памяти, требуемые для каждого из них. 3 В разделе организации стековой машины 3.1 Виды стеков и способы их реализации. Для каждого стека указывается: - типы данных, помещаемых на стек; - способы контроля типов данных, размещенных на стеке; - поведение транслятора при попытке размещения на стеке данных неподдерживаемого типа; - минимально гарантируемый размер стека; - поведение транслятора при выходе за границы стека; - возможность изменения размеров стека; - способы определения размера стека, его глубины и содержимого; - иная значимая информация. 3.2 Синтаксис и семантика основных стековых операций 4 В разделе работы с памятью 4.1 Порядок выделения и освобождения памяти транслятором. 4.2 Объем памяти, доступный транслятору после старта, способы его изменения. 4.3 Синтаксис и семантика основных операций с памятью. 5 В разделе работы с программным и аппаратным окружением 5.1 Виды оборудования и программных интерфейсов, поддерживаемых транслятором в базовой конфигурации (непосредственно после старта) 5.2 Порядок работы с оборудованием и программными интерфейсами 5.2 Синтаксис и семантика основных операций с оборудованием и программными интерфейсами |
Автор: | dynamic-wind [ Вс май 22, 2011 21:09 ] |
Заголовок сообщения: | Re: Рекомендательный стандарт Форта |
Вот наконец-то методология стандартизации, вместо очередного стандарта. Ура! В разделе "операций с памятью" (или после него) надо бы развернуть отдельную тему операций со словарём. Синтаксис и семантика определения, ограничения на длину, семантика поиска слов. |
Автор: | Hishnik [ Вс май 22, 2011 21:24 ] |
Заголовок сообщения: | Re: Рекомендательный стандарт Форта |
dynamic-wind писал(а): В разделе "операций с памятью" (или после него) надо бы развернуть отдельную тему операций со словарём. Синтаксис и семантика определения, ограничения на длину, семантика поиска слов. Разумеется! Сначала эту темку надо обмусолить в целом, а уже потом можно обсудить конкретное наполнение рекомендаций. Конечно, словарь в Форте - очень важная вещь, я бы сказал даже, "визитная карточка", как и стек. Поэтому как он устроен, как компилируются и ищутся слова, надо описывать. |
Автор: | WingLion [ Пн май 23, 2011 07:50 ] |
Заголовок сообщения: | Re: Рекомендательный стандарт Форта |
Надо описывать даже не то, как что-то устроено, а то, как компилятор об этом сообщает юзеру. При старте, например, он сообщает свою версию, разрядность, объем доступной памяти, размеры стеков и т.п. А заодно и способы получения более подробной информации, например: "Введите слово СПАСИТЕ! для получения дополнительной информации". |
Автор: | dynamic-wind [ Пн май 23, 2011 08:43 ] |
Заголовок сообщения: | Re: Рекомендательный стандарт Форта |
Тогда программист должен достать транслятор, запустить, переписать на бумажку параметры и приступать к переделке программы. Нафиг такое надо. (Вот не печатать версию при запуске--это моветон). ENVIRONMENT? в АНСФ тоже недостаточно информативен. Хотя удобно иметь готовые константы для глубины стека и ширины слова. |
Автор: | Hishnik [ Пн май 23, 2011 08:54 ] |
Заголовок сообщения: | Re: Рекомендательный стандарт Форта |
WingLion писал(а): Надо описывать даже не то, как что-то устроено, а то, как компилятор об этом сообщает юзеру. А если компилятор не сообщает, потому что он предназначен для систем, которым некуда сообщать (управление мотором, к примеру)? С другой стороны, описание-то обязательно. dynamic-wind писал(а): Хотя удобно иметь готовые константы для глубины стека и ширины слова. Именно что удобно. Кстати, один назовет STACK-MAX-DEPTH, другой STACK_MAXDEPTH, и вот при попытке стандартизации-то они и поругаются. Опять же, есть огромная разница между стандартом вида "константы должны быть вот такие (см. список из 12345 штук, включая какое-нибудь "максимальное число виртуальных потоков хэширования древовидного описания процессорных кластеров") и рекомендацией "завел константу - опиши". |
Автор: | WingLion [ Пн май 23, 2011 17:27 ] |
Заголовок сообщения: | Re: Рекомендательный стандарт Форта |
Хищник писал(а): А если компилятор не сообщает, потому что он предназначен для систем, которым некуда сообщать (управление мотором, к примеру)? С другой стороны, описание-то обязательно. Если компилятору некуда сообщать, у него и интерактивного режима нет, чтобы юзер мог что-то запросить. А сообщать надо программисту. Как бы там ни было, компилятор же должен куда-то сообщить то самое OK ? Вот туда пусть и шлет остальную инфу. Или хотя бы ссылку, что инфа находится в файле "дэ-о-ка-точка-тэ-экс-тэ" рядом с екзешником. |
Автор: | Hishnik [ Пн май 23, 2011 17:36 ] |
Заголовок сообщения: | Re: Рекомендательный стандарт Форта |
WingLion писал(а): Если компилятору некуда сообщать, у него и интерактивного режима нет, чтобы юзер мог что-то запросить. Если есть кросс-компилятор, то целевая форт-система может и не иметь интерактивного режима. WingLion писал(а): Как бы там ни было, компилятор же должен куда-то сообщить то самое OK ? Если даже может, то он ведь не должен? Просто в документации надо про это все рассказать. А файл тоже не обязан лежать рядом с exe, это уже навязывание вещей, без которых можно обойтись. Пусть все решает автор транслятора, но рассказывает о своих решениях. |
Автор: | WingLion [ Пн май 23, 2011 18:23 ] |
Заголовок сообщения: | Re: Рекомендательный стандарт Форта |
Хищник писал(а): Если есть кросс-компилятор, то целевая форт-система может и не иметь интерактивного режима. А сам кросс-компилятор будет молчать в тряпочку как партизан в гестапо? Или он не знает, что и для чего компилит? Хищник писал(а): Если даже может, то он ведь не должен? Просто в документации надо про это все рассказать. А файл тоже не обязан лежать рядом с exe, это уже навязывание вещей, без которых можно обойтись. Пусть все решает автор транслятора, но рассказывает о своих решениях. Ладно, пусть рассказывает как умеет, но только пусть он не навязывает свой рассказ каждому встречному. |
Автор: | WingLion [ Вт май 24, 2011 19:37 ] |
Заголовок сообщения: | Re: Рекомендательный стандарт Форта |
Хищник писал(а): Именно что удобно. Кстати, один назовет STACK-MAX-DEPTH, другой STACK_MAXDEPTH, и вот при попытке стандартизации-то они и поругаются. Опять же, есть огромная разница между стандартом вида "константы должны быть вот такие (см. список из 12345 штук, включая какое-нибудь "максимальное число виртуальных потоков хэширования древовидного описания процессорных кластеров") и рекомендацией "завел константу - опиши". По-русски он должен все рассказывать, по-русски, а не через "аббревиатур"-слова, которые каждый по своему назовет. |
Автор: | Hishnik [ Вт май 24, 2011 20:44 ] |
Заголовок сообщения: | Re: Рекомендательный стандарт Форта |
WingLion писал(а): По-русски он должен все рассказывать, по-русски, а не через "аббревиатур"-слова, которые каждый по своему назовет. А кто-то решит, что по-английски, потому что так принято. А кто-то - что должны быть два варианта, по-русски и по-английски. И так далее. И все это не должно запрещаться стандартом. Однако, если есть MAXINT и МАКСЦЕЛОЕ, то про них должно быть написано в документации. |
Автор: | WingLion [ Вт май 24, 2011 21:17 ] |
Заголовок сообщения: | Re: Рекомендательный стандарт Форта |
Хищник писал(а): А кто-то решит, что по-английски, потому что так принято. А кто-то - что должны быть два варианта, по-русски и по-английски. И так далее. Ну, в крайности кидаться, конечно, нельзя... пусть хоть по-китайски... Но по-русски... В общем, да, описание должно быть. Надо только чтобы Фортран Фортом не назвали из-за того что к нему описание напишут. |
Автор: | Hishnik [ Ср май 25, 2011 20:17 ] |
Заголовок сообщения: | Re: Рекомендательный стандарт Форта |
WingLion писал(а): В общем, да, описание должно быть. Надо только чтобы Фортран Фортом не назвали из-за того что к нему описание напишут. Если в описании будет про организацию стековой машины и словаря, то это явно не Фортран. |
Автор: | WingLion [ Вт май 31, 2011 19:38 ] |
Заголовок сообщения: | Re: Рекомендательный стандарт Форта |
А, вообще говоря, как мне тут икнулось, Форт должен настраиваться. То есть, не сообщать юзеру, сколько разрядов, сколько стеков, сколько в стеке бит, а получать эти параметры от юзера. Типа. Запускается Forth.exe, а в командной строке (или в ini файле) прописано - 16 разрядов, 65 килобайт памяти, стеки по 32 слова, система команд такая-то... И вперед! Без всяких гаданий! Если данный форт не поддерживает какие-то опции (например, он только 32 разряда, а как 16 не запускается из принципа, и 64 ему еще не прописали), то об этом и надо сообщать юзеру. |
Автор: | вопрос [ Вт май 31, 2011 21:38 ] |
Заголовок сообщения: | Re: Рекомендательный стандарт Форта |
Цитата: А, вообще говоря, как мне тут икнулось, Форт должен настраиваться. То есть, не сообщать юзеру, сколько разрядов, сколько стеков, сколько в стеке бит, а получать эти параметры от юзера. Кросс-компилятор, который подобное бы творил, видимо, не сильно сложнее обычного кросс-компилятора. По здравому говоря - требуется алгоритм оценки применимости неких конструктивыных частей будущего форта в ограниченном числе случаев, т.е. число усилий, необходимых для построения такого кросс-компилятора - в худшем случае - чуть более чем квадрат усилий по построению форта, на который кросс-компилятор рассчитан (каждый из конструктивных элементов должен быть проверен на непротиворечивость с остальными) это при статическом наборе правил
|
Страница 1 из 2 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |