Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 16:41

...
Google Search
Forth-FAQ Spy Grafic

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




Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Мифы Форта. Часть 2: стандартизация
СообщениеДобавлено: Чт янв 08, 2009 21:21 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
Автор: Хищник
Дата публикации: 08.01.2009

Мифы Форта. Часть 2: стандартизация

Итак, для затравки, картина маслом. Швейная фабрика, пошив беретов. В одно прекрасное утро секретарша выходит на работу в форме «зеленого берета» вооруженных сил США. Немая сцена. Почему? Собственно, еще и дресс-код на фирме, кроме общих соображений. Ответ: потому что береты. (????) Ну как же — мы шьем береты, а тут вот нашелся стандарт на форму «зеленого берета». Тут береты, и там береты. Так что это — стандарт! И нечего на меня смотреть, у такой одежды свои плюсы. Допустим, застряли вы в болоте под артогнем, да еще и комары кусают. А тут и маскировка, и комары ткань не прокусят. Заодно унификация и экономия. И еще всех сотрудников можно отправлять закупаться в один магазин, а то они непроизводительно тратят время на выбор одежды. Да, я блондинка, а при чем тут это?
Вобщем, уже смешно. А, собственно, почему смешно? Да потому что нашей секретаршей был проигнорирован один немаловажный вопрос — применимость стандарта. То есть для военнослужащего определенного рода войск и подразделения, да еще и в условиях боевых действий это действительно стандарт. А вот для гражданского лица в коммерческой организации, да еще и другого государства...
Посмотрим теперь на «ANS-Форт», а точнее, на документ, обозначенный как X3J14. Прежде всего, что такое ANSI? Это нетрудно найти - «American National Standard Institute — частная организация...». Интересный сюрприз. Оказывается, организация частная, то есть, по сути своей, никакого официального статуса ее документы не имеют. То есть нечто вроде родословной на собаку, выданную клубом любителей собаководства. Все зависит от престижа данного клуба — другие собаководы, может, и примут.
Кстати, в этом плане существенно больший интерес представляет ISO. Смотрим, что это такое: «Международная организация по стандартизации (International Organization for Standardization - ISO (ИСО)) - организация, ответственная за разработку международных стандартов, координирует деятельность национальных органов стандартизации из 90 стран мира.»
Вот еще небольшой списочек «межгосударственных и отраслевых объединений и групп по развитию и применению международных стандартов», найденный навскидку
Группа содействия разработке и применению стандартов (Standards Promotion and Application Group - SPAG);
Европейская рабочая секция по открытым системам (European Workshop on Open Systems - EWOS);
Группа пользователей протокола автоматизации производства (Manufacturing Automation Protocol - MAP);
Корпорация открытых систем США (Corporation for Open Systems - COS);
Группа ИТ международного общественного сектора (International Group Public Sector Information Technology - IPS IT).
В конечном итоге оказывается, что «стандарт ANSI» является слабым подобием «стандарта ФИПС». А ФИПС — это Федеральный Институт Промышленной Собственности (российский). Почему слабым подобием? Давайте разберемся, что такое промышленная собственность. Если зайти на сайт данной организации, оттуда нетрудно скачать бланки заявлений о регистрации программы или базы данных. Скачиваем, регистрируем (заполняя бланки, оплачивая, переписываясь). Получаем номер государственной регистрации (!). Теперь наш программный продукт зарегистрирован на территории РФ. Это дает право в любой момент представить официальную бумагу, из которой будет следовать, что данный программный продукт действительно существует, и авторскими/имущественными правами на него обладает такое-то лицо или организация. Это некий плюс по сравнению с простым exe, выложенным на сайт, потому что авторство такого файла доказать довольно сложно. Незарегистрированной программы как бы и нет, с юридической точки зрения. Зарегистрированная обладает тем преимуществом, что при нарушении авторских прав обладатель документа о регистрации может обратиться в суд. Суд возьмет документы из ФИПС, сравнит изложенный в них программный код с тем, который будет получен в результате оперативных мер (например, изъяли у хакера взломанную или переделанную программу), и на основании этих данных вынесет официальное решение. Все. Никаким доказательством эффективности, правильности, коммерческой пригодности наличие государственной регистрации не является. Смысл один — государство приняло на хранение документы по программе и готово официально подтвердить, что такие документы им сдавал такой-то человек.
Кстати, совершенно аналогичная ситуация оказывается с патентами, авторскими свидетельствами и (отчасти) сертификатами. Патент и авторское свидетельство не являются доказательством исключительной эффективности, они только подтверждают, что такого раньше не было, а автор сделал первым, и государство готово это подтвердить (за деньги, выплачиваемые патентообладателем). С сертификатом вообще есть показательный пример. Есть телефон (эпохи «АОН на Z80, переделанный из Спектрума»). В документации написано: «телефон комплектуется телефонным кабелем.... бубубу... имеется сертификат». Что может подумать покупатель? Что телефон сертифицирован — то есть чуть ли не все Министерство Связи поставило на него разрешающий штамп и готово обеспечить высочайшее качество связи по данному аппарату. А сертификат действително есть... на кабель! Что он при горении не выделяет ядовитых веществ. Сертификат? Да. Смысл в том, что получить такой сертификат существенно дешевле, чем документ на весь телефон, который подтверждал бы возможность его использования в российских телефонных сетях. В данном случае производители эффективно воспользовались малым уровнем информированности основной массы населения в области документов, регламентирующих эксплуатацию оборудования.
Хорошо, а тогда что же относится к официально действующим нормативным документам на территории РФ? Смотрим http://www.ostgost.ru/
«ГОСТ, ГОСТ Р, ГОСТ Р ЕН, ГОСТ ИСО, ГОСТ ИСО/МЭК, ГОСТ МЭК, ГОСТ ЭД ОСТ, ТУ, СниП, СанПиН, ВСН, РД, РДС, СП, ГЭСН, ФЕР, ТЕР, ГН сертификаты.»
Среди стандартов имеется определенная иерархия. Например, предприятие-изготовитель может выпустить на свое изделие ТУ (Технические Условия). Однако если эти ТУ вступят в противоречие с ГОСТ (ГОСТ Р), пользоваться изделием в соответствующей сфере применения будет нельзя. Зато в других, где сведения ТУ удовлетворят требованиям других ГОСТ — пожалуйста. Например, прибор может быть применен в быту, но не может — в медицине. Вопросы применимости соответствующих стандартов регламентируются опять-таки официальными документами. Обращаем внимание, что в списке есть ГОСТ ИСО, но нету ANSI ни в каком виде. Действительно, зачем бы на территории Российской Федерации действовал документ Американского Национального Института Стандартов?
Итак, переходим собственно к мифу.

«ANS-94 — важный документ, являющийся существенным подспорьем в обеспечении развития Форта вообще и среди российских фортеров в частности».

Данный миф базируется на нескольких «китах»
1) «Стандарт» - это нечто официальное, утвержденное после всесторонней проверки уполномоченными лицами, которые приняли на себя часть ответственности за получение всеми пользователями стандарта правильных и эффективных результатов.
В действительности: существует множество частных организаций, выпускающих документы, в названии которых есть «стандарт».
2) ANSI — это официальная организация, за которой стоит вся компьютерная индустрия.
В действительности: в настоящий момент ни один компилятор Си не соответствует требованиям ANSI C полностью.
3) Стандарты проходят всестороннюю экспертную оценку, гарантирующую их корректность.
В действительности: регистрация программы в ФИПС никоим образом не означает официального подтверждения ее эффективности или коммерческой ценности.Собственно, даже элементарной правильности. ФИПС просто принимает в архив передаваемые документы, регистрируя фамилию и дату передачи, присваивая им номер. Производится формальная проверка правильности заполнения бланков.
В конечном итоге оказывается, что ANSI X3J14 является «раком на безрыбье», поскольку хоть как-то перечисляет слова Форта. Использовать его, конечно, можно. Но не требуется — нет ни одного документа, предписывающего пользоваться транслятором Форта, соответствующим ANSI X3J14. А без этого аргумент «ANS-совместимость» является не аргументом, а скорее показателем некомпетентности в области организации разработки программного обеспечения. Поскольку юридически оно имеет тот же вес, что и одобрение кружком кройки и шитья деревни Малые Трансляторы.
Вопрос следующий, проистекающий из изложенного: а тогда стоит ли вообще что-то писать и фиксировать? Ответ тут такой: для себя — да. Для «официальности» - нет, потому что юридический вес будет ровно такой же, нулевой. А для понимающего человека аргумент «у нас RuFIG-совместимо!» будет выглядеть опять-таки показателем некомпетентности собеседника в вопросах разработки программных продуктов. Мало того, отраслевой РД, или даже СтП (Стандарт Предприятия) мгновенно перекроет по значимости любые подобные построения на бумаге. Потому что СтП предусмотрен в качестве документа, а ANSI — нет. Опять же, RuFIG — общественная группа, даже не имеющая регистрации как некоммерческая организация. На деле такая регистрация просто предоставляет право иметь свою печать и собирать оргвзносы с членов организации на некоммерческие нужды — оно кому-нибудь надо? Иными словами, даже формирование оргкомитета, принятие устава, заполнение массы бумажек, подача заявления и длительные действия по госрегистрации никоим образом не способствуют появлению какого-либо «веса». Стандарт ANSI Forth имеет вес строго для людей, для которых группа разработчиков видится авторитетной. Стандарт RuFIG Forth — строго аналогично, имеет смысл делать только для себя, ориентируясь на его содержание, а не на возможные регалии, которые он мог бы предоставить.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 09, 2009 00:40 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
все вроде бы и правильно, но с другой стороны всем понятно, что для консолидации усилий в определенной технологии нужны некоторые соглашения. Соглашения (даже не обязательно стандарт) абсолютно необходимы, причем такие, чтобы трактовались разными людьми одинаково, были удобны в использовании. Называть ли такие соглашения стандартами, либо же просто документацией к системе дело второе.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт янв 09, 2009 00:49 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
mOleg писал(а):
все вроде бы и правильно, но с другой стороны всем понятно, что для консолидации усилий в определенной технологии нужны некоторые соглашения. Соглашения (даже не обязательно стандарт) абсолютно необходимы, причем такие, чтобы трактовались разными людьми одинаково, были удобны в использовании. Называть ли такие соглашения стандартами, либо же просто документацией к системе дело второе.

Разумеется! Я просто к тому, что красивые аббревиатуры - это еще не залог успеха. А планировать и документировать обязательно надо.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 04, 2010 12:15 
Не в сети

Зарегистрирован: Пн ноя 23, 2009 16:12
Сообщения: 64
Откуда: Київ, Івано-Франківськ
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Сравним С и Форт. Си по природе стал очень сложным по внутренним правилам языком, поэтому нужна была недвусмысленная документация по языку, чтобы никакие малейшие нюансы не ломали программы пренеприятнейшими способами. Форт по природе чрезвычайно просто, особенно в реализации. Поэтому и появляются множественные интерпретаторы, которые называются "Фортами", но иногда отличаются в корне (например, Форт на регистрах, а не стеке).

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

Основная доля Форта приходится на программирование мк. Причем для каждого МК пишется "свой Форт". Соответственно, вопрос - нужен ли Форту стандарт (в том виде, как его понимают, например, для Си)?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 04, 2010 13:15 
Не в сети
Аватара пользователя

Зарегистрирован: Пт дек 26, 2008 21:16
Сообщения: 412
Откуда: Великий Новгород
Благодарил (а): 9 раз.
Поблагодарили: 4 раз.
danbst писал(а):
А возможно ли тогда создать стандарт Форта?

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 04, 2010 14:19 
Не в сети

Зарегистрирован: Ср фев 17, 2010 18:10
Сообщения: 323
Откуда: Тверь
Благодарил (а): 13 раз.
Поблагодарили: 11 раз.
Говоря о стандартизации форта, наверное, есть смысл выделить несколько уровней. Ядро, ассемблер, вызов внешних библиотек, RTL (в каком то виде) и т.д. Ядро как я понял стандартизировано, а всё остальное нет, от сюда написание одного кода несколько раз и в разных вариантах. Пример строки, или вызовы API. И это в Windows, а уж об совместимости кода библиотек для кросплатформенной работы приходиться только мечтать. На мой взгляд нужно оглядываться не на стандарты, а на полноту, развитость и совместимость разных частей системы. Например ввести понятие рекомендованных расширений. Дистрибутив + рекомендованные библиотеки (тестированные на совместимость и кросплатформенность). Тогда разрабатывая свою программу будет на что опираться.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 04, 2010 16:31 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
mgw писал(а):
Например ввести понятие рекомендованных расширений. Дистрибутив + рекомендованные библиотеки (тестированные на совместимость и кросплатформенность). Тогда разрабатывая свою программу будет на что опираться.

Вот это уже существенно реальнее! Фраза "рекомендуется реализовывать следующие расширения" выглядит существенно мягче, и вместо попыток подмять под себя разработчика (на что он немедленно посылает всех лесом) указывает ему на возможные перспективы.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 04, 2010 19:33 
Не в сети
Moderator
Moderator
Аватара пользователя

Зарегистрирован: Чт май 04, 2006 00:53
Сообщения: 5062
Откуда: был Крым, теперь Новосибирск
Благодарил (а): 23 раз.
Поблагодарили: 63 раз.
mgw писал(а):
Говоря о стандартизации форта, наверное, есть смысл выделить несколько уровней. Ядро, ассемблер, вызов внешних библиотек, RTL (в каком то виде) и т.д.

1. несколько уровней уже предложено :)
2. ассемблер мимо кассы (нет ни смысла ни возможности такой стандартизации)
3. вызов внешних либ так же смысла стандартизировать нет смысла

mgw писал(а):
Ядро как я понял стандартизировано

я бы так не сказал.

mgw писал(а):
от сюда написание одного кода несколько раз и в разных вариантах.

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

danbst писал(а):
Поэтому и появляются множественные интерпретаторы, которые называются "Фортами", но иногда отличаются в корне (например, Форт на регистрах, а не стеке).

не верно.

danbst писал(а):
Вопрос такого характера. А возможно ли тогда создать стандарт Форта?

стоит попытаться ;)

danbst писал(а):
Получается, любой созданный стандарт будет освещать только одну ветку всевозможных Фортов, мягко обзывая остальных Не-фортами.

не обязательно, хотя добиться хорошего результата не просто.

собственно, стандарт Форта не может быть более чем набором рекомендаций.

_________________
Мне бы только мой крошечный вклад внести,
За короткую жизнь сплести
Хотя бы ниточку шёлка.
fleur


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 04, 2010 20:55 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Хищник писал(а):
mgw писал(а):
Например ввести понятие рекомендованных расширений. Дистрибутив + рекомендованные библиотеки (тестированные на совместимость и кросплатформенность). Тогда разрабатывая свою программу будет на что опираться.

Вот это уже существенно реальнее! Фраза "рекомендуется реализовывать следующие расширения" выглядит существенно мягче, и вместо попыток подмять под себя разработчика (на что он немедленно посылает всех лесом) указывает ему на возможные перспективы.

Разве не так построен нынешний стандарт?


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 04, 2010 21:04 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
вопрос писал(а):
Разве не так построен нынешний стандарт?

Который из? Есть огромная разница между утверждениями "BASE не нужен" ("ать-два!!!"), и "возможна альтернативная реализация обработки чисел, заключающаяся в...".


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 04, 2010 21:21 
Не в сети

Зарегистрирован: Вт май 09, 2006 12:31
Сообщения: 3438
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.
Хищник писал(а):
вопрос писал(а):
Разве не так построен нынешний стандарт?

Который из? Есть огромная разница между утверждениями "BASE не нужен" ("ать-два!!!"), и "возможна альтернативная реализация обработки чисел, заключающаяся в...".

94 года - он так и строится - ядро и расширения - работы с файлами ... работы с плав. точкой и т.д.

Не нужно пугаться более сложной логики стандартизации - она может быть более простой при пользовании стандартом (Суворов)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Чт мар 04, 2010 22:04 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
вопрос писал(а):
94 года - он так и строится - ядро и расширения - работы с файлами ... работы с плав. точкой и т.д.

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


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт мар 05, 2010 07:48 
Не в сети

Зарегистрирован: Пн окт 15, 2007 17:24
Сообщения: 164
Откуда: Бийск
Благодарил (а): 0 раз.
Поблагодарили: 2 раз.
danbst писал(а):
Основная доля Форта приходится на программирование мк. Причем для каждого МК пишется "свой Форт". Соответственно, вопрос - нужен ли Форту стандарт (в том виде, как его понимают, например, для Си)?

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

_________________
And so forth ...


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 10, 2010 20:32 
Не в сети
Аватара пользователя

Зарегистрирован: Вт фев 17, 2009 19:58
Сообщения: 112
Откуда: Барнаул
Благодарил (а): 21 раз.
Поблагодарили: 16 раз.
Здесь упоминается ANSI-стандарт на форт и говорится что ISO-стандарт по солиднее. А про ISO-стандарт на форт нет упоминания. Между тем, "роясь" в интернете я нашел интересную статью по истории языка Паскаль: http://pascal.sources.ru/articles/058.htm. В конце статьи приводится таблица с хронологией появления языков программирования. В последнем столбике таблицы указан стандарт. В строке с языком Forth указан стандарт, но почему-то не ANSI, а "ISO 15145:1997" . Ищем в "поисковике" строку "ISO 15145:1997": первая ссылка на http://www.iso.org/iso/catalogue_detail.htm?csnumber=26479 . Правда получить этот "ISO 15145:1997" (PDF или бумага), на сколько я понял, можно только за деньги.

То есть существует ISO-стандарт. Прошу отметить этот факт в том числе и например в разделе FAQ.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 10, 2010 20:53 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 22:48
Сообщения: 7960
Благодарил (а): 25 раз.
Поблагодарили: 144 раз.
kzagradskiy писал(а):
То есть существует ISO-стандарт. Прошу отметить этот факт в том числе и например в разделе FAQ.

Отметить-то, конечно, можно. Только см. первый пост этой темы - кроме наличия стандарта (пусть даже ISO), необходимо наличие документов, регламентирующих применение Форта, соответствующего этому стандарту. А такие документы лично мне неизвестны. Уточню: я хотел бы посмотреть на официальную бумагу, в которой бы утверждалось, что организация купит только такие программы на Форте, которые будут соответствовать стандарту ANSI/ISO.


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 20 ]  На страницу 1, 2  След.

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


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 10


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

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