DRAKON.SU

Текущее время: Пятница, 29 Март, 2024 02:48

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
СообщениеДобавлено: Понедельник, 21 Июль, 2008 18:10 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
На форуме был задан вопрос: как привязать к Дракону декларативную часть?
Один из возможных ответов на этот вопрос дает Извлечение из документа "Язык ФЛОКС. Руководство алгоритмиста" [ pdf ]

https://drakon.su/_media/biblioteka/grafitfloks.pdf


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 22 Июль, 2008 13:18 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Пояснение

Технология Графит-Флокс применяется на практике в течение 12 лет (с 1996 года) и работает безукоризненно.

В этой технологии используется своеобразный метод соединения процедурных и декларативных знаний. Назову этот метод условным термином «метод ГР». В контексте ракетно-космической отрасли я считаю этот метод удачным решением.

Сам факт существования метода ГР показывает, что ПРОБЛЕМА СОЕДИНЕНИЯ ДРАКОНА С ДЕКЛАРАТИВНОЙ ЧАСТЬЮ может быть УСПЕШНО решена.

Но! Я совсем не уверен, что метод ГР является УНИВЕРСАЛЬНЫМ. У меня никогда не возникало необходимости в исследовании этой проблемы. Проблемы, связанной с поиском ответа на вопрос: является ли метод ГР универсальным?

Скажу откровенно. Я не знаю. Может быть ДА, а может быть НЕТ. Для меня это открытый вопрос. Мне не хватает знаний, чтобы ответить на него.

Могу только предположить, что метод ГР является НЕТРАДИЦИОННЫМ. Могу также предположить, что этот метод ВСТУПАЕТ В ОСТРОЕ ПРОТИВОРЕЧИЕ с традиционными решениями.

Но все это не более чем ПРЕДПОЛОЖЕНИЯ. Повторяю: я не исследовал этот вопрос. И, следовательно, считаю себя некомпетентным в этой области.

Сказанное ни в малейшей степени не бросает тень на вопрос о работоспособности и эффективности метода ГР. И технологии Графит-Флокс в целом. Здесь я вполне компетентен. Могу сказать с уверенностью: и метод ГР, и технология в целом теоретически хорошо обоснованы. И практически работоспособны и эффективны (в рамках ракетно-космических задач).

Но в рамках данного форума вопрос о ракетах и космосе никому не интересен. Интересно другое. Как сопоставить метод ГР с Оберон-методологией?

Могу дать ответ, отдавая себе отчет, что мой ответ покажется диким.

Чтобы оценить «размер бедствия», представим себе такую картину:

1. Надо отказаться от понятия Оберон и переименовать его в «Чижик-Пыжик».

2. Вместо одного языка Оберон появляются два почти независимых языка:

      • язык Чижик (для описания процедурной части Оберона);
      • язык Пыжик (для описания декларативной части Оберона).

3. Процедурная часть Оберон-программ вводится в компьютер через инструментальную программу Чижик-редактор.

4. Декларативная часть Оберон-программ вводится в компьютер через инструментальную программу Пыжик-редактор.

5. Каждый из двух языков (Чижик и Пыжик) имеет свое описание. (Отдельно описание языка Чижик. И отдельно описание языка Пыжик).

6. Описание языка Оберон упраздняется за ненадобностью.

7. Термин Оберон, конечно, сохраняется. Но используется только по воскресеньям: на детских утренниках, на торжественных молебнах и на чатах в Интернете.

8. При практической разработке программ никто не использует термин Оберон, так как в этом нет никакой необходимости. Все говорят: язык Чижик. И язык Пыжик.

9. Конечно, языки Чижик и Пыжик — это НЕ полностью самостоятельные языки. Это две половинки одного языка — языка Оберон.
Но этот забавный факт интересует только теоретиков. На практике об этом все давно забыли. Зачем умножать сущности без нужды? (Так говорил Оккам. А Оккам знал, что говорил).

10. Процедурная и декларативная части НИКОГДА не появляются перед глазами пользователя вместе (в одной зрительной сцене). Их можно увидеть ТОЛЬКО ПО ОЧЕРЕДИ. Когда вы смотрите на чижик-программу, вы не видите пыжик-описания (данных и объектов). И наоборот.

      Вопрос. Это еще зачем?
      Ответ. Постулат. При анализе чижик-программ пыжик описания рассматриваются как визуальные помехи, которые отвлекают внимание от главного. И т.д.

11. Разумеется, интерактивный режим позволяет при необходимости «нарушить» правила пункта 10.

Я мог бы продолжить. Но, полагаю, этого достаточно.

_________________________________

Поймите меня правильно. Я никоим образом не предлагаю действовать описанным выше способом. Как говорится, ни сном, ни духом…

Моя цель гораздо скромнее. Я всего лишь хотел дать пояснения по поводу особенностей технологии Графит-Флокс. И метода ГР. Не более того.

А что и как надо делать в случае Оберона, я не знаю. И не берусь судить. Не хочу высказываться по поводу вопросов, в которых я не компетентен.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 22 Июль, 2008 15:20 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 341
Владимир Паронджанов писал(а):
На форуме был задан вопрос: как привязать к Дракону декларативную часть?
Один из возможных ответов на этот вопрос дает Извлечение из документа "Язык ФЛОКС. Руководство алгоритмиста" [ pdf ]

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 22 Июль, 2008 15:29 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Уважаемый TAU!

Если Вы в Москве, мы можем встретиться хоть завтра.
Мой телефон 8 495 331 50 72


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Июль, 2008 09:17 

Зарегистрирован: Воскресенье, 04 Ноябрь, 2007 23:01
Сообщения: 511
Читаю и не могу избавиться от ощущения, что описание на Флокс'е - несколько больше, чем ассемблерный иклюд, но ещё не сишный хидер, причем все декларации глобальные, с ручным распределением памяти, при отсутствии оверлея. :(
Можно поподробнее с.42: "Шаг 3. Флокс-описание." -> "..полезные сведения об этом понятии.." - ? Это пп.2,3,4 со с.41?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Июль, 2008 17:25 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Уважаемый Рэйлвэй Каген!



1. Все декларации глобальные.
2. Распределение памяти автоматическое
3. В языке ГРАФИТ-ФЛОКС 35 типов деклараций
4. В пп. 2, 3, 4 на с. 41 для примера указана часть сведений, относящихся к типу КС (Команда Силовая)

5. Ваше выражение «описание на Флокс'е - несколько больше, чем ассемблерный инклюд, но ещё не сишный хидер» я понял (возможно, ошибочно), что Флокс выше ассемблера, но ниже Си. Если я понял правильно, то мой ответ таков:

6. В рамках когнитивно-эргономического подхода (как я его понимаю) старинная классификация «язык низкого уровня», «язык высокого уровня» полностью теряет смысл.
Взамен нее (применительно к языку Графит-Флокс) я ввожу КОЛИЧЕСТВЕННЫЙ критерий понятности алгоритмов и деклараций для пользователей языка.

7. Что это за критерий? Дам ответ не в общем виде, а проведу расчет на конкретном примере. См. «Реальный алгоритм на языке ГРАФИТ» на стр. 40 Извлечения.
Но сначала дам пояснение.

8. Вопрос. Какие символы в этом алгоритме НЕ ЗНАКОМЫ начинающим пользователям языка (то есть комплексникам и прибористам, которые впервые в своей жизни начинают знакомиться с технологией графит-флокс)?

Ответ. Не знакомыми символами являются АП (Алгоритм Процедура), ПЛ (Признак Логический) и знак присваивания :=

Вопрос. Почему?

Ответ. Потому что эти символы обозначают чуждые для них понятия из области программирования.
Все остальные символы для них знакомы (так как они обозначают родные им понятия).
Конец пояснения

9. Расчет производится так:

• подсчитать общее количество символов в алгоритме на стр. 40 Извлечения. (Знак присваивания считаем за один символ).
Результат 103 символа;

• разбить все символы на знакомые и не знакомые;

• отдельно подсчитать количество знакомых и незнакомых символов. Результат 95 знакомых символов и только 8 незнакомых символов.

• дать ответ в процентах.

Окончательный результат расчета. В данном алгоритме 92,3% символов обозначают знакомые понятия.
И лишь 7,7% символов обозначают незнакомые (для начинающих) понятия.


Для сравнения: в традиционных языках программирования почти все символы обозначают НЕ ЗНАКОМЫЕ прибористам и комплексникам понятия.
Согласно моему количественному критерию число "незнакомцев" в традиционных языках приближается к 100%.
В итоге традиционные программы превращаются в ребус. Никто, кроме программистов, не может их понять.

Еще один пример применения моего количественного критерия см. книгу "Как улучшить работу ума...", стр. 197-199.

10. Академик Андрей Ершов сказал:

Цитата:
Язык программирования кодирует объекты предметной области задачи, а наше знание об этих объектах остается за пределами программного текста.


11. Я считаю, что это ВАЖНЫЙ недостаток традиционных языков.
Система графит-флокс ориентирована на преодоление этого недостатка.
И в какой-то мере это удалось.

12. Дам еще одно пояснение.
Для этого приведу пример. На стр. 41 указан идентификатор силовой команды
КС1УФ.ОТКЛЮЧИТЬ.ФИДЕР.УМ1

13. На какой объект указывает этот идентификатор?
На этот вопрос следует дать два принципиально разных ответа.

14. С точки зрения прибористов и комплексников этот идентификатор указывает на объект, НАХОДЯЩИЙСЯ ВНЕ КОМПЬЮТЕРА. А именно на команду, которая выскакивает из бортового компьютера Бисер, бежит по проволоке через прибор «устройство обмена» и в конечном итоге попадает в прибор «силовой коммутатор».

Результатом выдачи этой команды является тот факт, что прибор «силовой коммутатор» образует нужный силовой фидер (то есть нужную шину электропитания).
Зачем комплексник выдает эту команду? Чтобы образовать нужный ему фидер питания.

15. С точки зрения программиста дело обстоит совершенно по другому. Программист отлично понимает, что идентификатор указывает на какие-то объекты, находящиеся в оперативной памяти Бисера.

Какие же это объекты?
Ответ не прост.

Чтобы образовать фидер, надо выдать из компьютера не одну команду, а серию посылок по определенной циклограмме.
Эта операция достигается путем сложного взаимодействия программ центрального процессора и программ процессора ввода-вывода (канала ввода-вывода).
Из рисунка на стр. 41 Извлечения следует, что Бисер имеет 8 процессоров ввода-вывода.

16. Вывод 1.
Языки Графит и Флокс должны обеспечить работу в той системе понятий, которая является «родной» для комплексников и прибористов». Я утверждаю: флокс-идентификаторы им понятны, они для них «родные». Пример такого идентификатора
КС1УФ.ОТКЛЮЧИТЬ.ФИДЕР.УМ1

17. Вывод 2.
Комплексник указывает Выдать команду КС1УФ.ОТКЛЮЧИТЬ.ФИДЕР.УМ1
Это простое указание автоматически порождает сложнейшее взаимодействие программ центрального процессора и канальных программ (программ процессора ввода вывода).

18. Вывод 3.
Традиционные языки НЕ ПРИГОДНЫ для работы в той системе понятий, которая является «родной» для комплексников и прибористов.
Этот момент следует обязательно учитывать при сравнении с языками ассемблер, си и т.д.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Июль, 2008 22:52 

Зарегистрирован: Воскресенье, 04 Ноябрь, 2007 23:01
Сообщения: 511
Сравнение сущностей(не языков!) сделано исключительно по степени информативности возможного содержания и перспектив борьбы с "мусором" в пределах "урны"(инклюда, хидера, базы данных ФЛОКС).

1. Итак, Флокс-идентификатор бывает 35 типов. Существует ли иерархия типов? Или это линейный список?

АП (Алгоритм Процедура),
ПЛ (Признак Логический),
КС (Команда Силовая)... Эта часть классификатора как-то связана с типами?

2. Можно ли "ОТКЛЮЧИТЬ.ФИДЕР.УМ1" понимать как "ДЕЙСТВИЕ.ПРИЗНАК(ЧАСТЬ)_ОБЪЕКТА.ОБЪЕКТ"?

3.
    КС1УФ.ОТКЛЮЧИТЬ.ФИДЕР.УМ1,
    КС1ПФ.ОТКЛЮЧИТЬ.ФИДЕР.УМ1
- может ли означать
    "Команда Силовая"(в обоих случаях),
    но алгоритмически разные действия(под одинаковым названием "ОТКЛЮЧИТЬ.ФИДЕР")
    для физически разных устройств(с одинаковыми названиями УМ1)
    в разных трактах("У" и "П")?

С "КС", возможно, не очень корректно будет, поэтому:
    АП1УФ.ОТКЛЮЧИТЬ.ФИДЕР.УМ1,
    АП1ПФ.ОТКЛЮЧИТЬ.ФИДЕР.УМ1
- может ли означать
    "Алгоритм Процедура"(в обоих случаях),
    но алгоритмически разные действия(под одинаковым названием "ОТКЛЮЧИТЬ.ФИДЕР")
    для физически разных устройств(с одинаковыми названиями УМ1)
    в разных трактах("У" и "П")?


p.s. Я всё-таки не понял, почему распределение памяти автоматическое, если
на с.41 для определения идентификатора "КС1УФ.ОТКЛЮЧИТЬ.ФИДЕР.УМ1"
требуется ответить на п.2, касающийся распределения памяти устройства обмена.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Июль, 2008 09:45 

Зарегистрирован: Воскресенье, 09 Март, 2008 22:38
Сообщения: 341
Владимир Паронджанов писал(а):
Уважаемый TAU!
Если Вы в Москве, мы можем встретиться хоть завтра.
Мой телефон 8 495 331 50 72

К сожалению, нет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Июль, 2008 15:10 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Рэйлвэй Каген писал(а):

1. Итак, Флокс-идентификатор бывает 35 типов. Существует ли иерархия типов? Или это линейный список?

АП (Алгоритм Процедура),
ПЛ (Признак Логический),
КС (Команда Силовая)... Эта часть классификатора как-то связана с типами?

2. Можно ли "ОТКЛЮЧИТЬ.ФИДЕР.УМ1" понимать как "ДЕЙСТВИЕ.ПРИЗНАК(ЧАСТЬ)_ОБЪЕКТА.ОБЪЕКТ"?


Для скорости буду отвечать по частям.

1. Существует ли иерархия типов?
Да. Иерархия двухступенчатая: ВИД и ТИП

2. Эта часть классификатора как-то связана с типами?
Да. Первые два символа идентификатора полностью определяют ТИП.

3. У нас принята такая терминология.
1-й символ идентификатора определяет ВИД объекта.
2-й символ идентификатора определяет ТИП объекта.

4. Пример. ВИД — алгоритм.
1-й символ идентификатора А.

Алгоритмы бывают двух типов: И и П.

Алгоритм Исполнитель — Первые два символа идентификатора АИ

Алгоритм Процедура — Первые два символа идентификатора АП

5. Всего существует 5 видов:

А - Алгоритм
П - Параметр
К - Команда
С - Сигнал
М - Массив

Алгоритм – алгоритм, находящийся в оперативной памяти ЦВК «Бисер».

Параметр – переменная величина, значение которой хранится в оперативной памяти ЦВК «Бисер».

Команда – информационная посылка, передаваемая по линии связи из ЦВК «Бисер» к абоненту.

Сигнал – информационная посылка, передаваемая по линии связи от абонента в ЦВК «Бисер».

Массив – упорядоченное множество объектов (параметров, команд, сигналов), имеющих один и тот же тип.


6. Можно ли "ОТКЛЮЧИТЬ.ФИДЕР.УМ1" понимать как "ДЕЙСТВИЕ.ПРИЗНАК(ЧАСТЬ)_ОБЪЕКТА.ОБЪЕКТ"?

Нет, нельзя. Это неформальная (почти) запись на естественном языке. Точки используются, чтобы не пугать народ программистским знаком _

7. Суть в том, что идентификаторы уникальны и ОДНОЗНАЧНО переводятся в машинные коды.

Два идентификатора, отличающиеся хотя бы в одном символе, обозначают РАЗНЫЕ объекты

8. Пояснение. Идентификатор (флокс-идентификатор) ОДНОЗНАЧНО указывает на свой объект.
Он приклеен к объекту эпоксидной смолой.

Если, скажем, в каком-нибудь документе указан идентификатор, то больше ничего не надо указывать, АБСОЛЮТНО НИЧЕГО. Потому что объект определен ОДНОЗНАЧНО.

9. При этом используется принцип ТОТАЛЬНОЙ ИДЕНТИФИКАЦИИ


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Июль, 2008 21:11 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Ниже дан ответ на сообщение
viewtopic.php?p=17395#p17395

Уважаемый dvuugl!

Большое спасибо за разъяснения. Теперь я очень хорошо понимаю Вашу мысль.
Ситуация прямо таки удивительная. Вы прозорливо угадали и с высокой точностью описали ТОТ САМЫЙ СПОСОБ, КОТОРЫЙ РЕАЛИЗОВАН У НАС НА РАБОТЕ.
И который является неотъемлемым элементом технологии Графит-Флокс.

Такое впечатление, что Вы обладаете волшебным даром видеть сквозь сотни километров и проходить сквозь стены.

А я, как на грех, ничего ОБ ЭТОМ не сказал на форуме. Хотя, разумеется, прекрасно об этом знал.

Совсем как у Гоголя в "Мертвых душах" (разговор Чичикова с кучером Селифаном):

-- Ведь знал?
-- Знал.
-- А почему не сказал?

Теперь по существу

Без лишних слов привожу выдержку из руководящего документа:


Цитата:
§4. В КАКОМ ВИДЕ КОМПЛЕСНИКИ ДОЛЖНЫ ПЕРЕДАВАТЬ РЕЗУЛЬТАТЫ СВОЕЙ РАБОТЫ В ОТДЕЛ ПРОГРАМИСТОВ?

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

4.2. При разработке флокс-таблиц необходимо выдать в отдел 035:
• электронный файл флокс-таблицы,
• твердую копию флокс-таблицы,
• сопроводительную записку с указанием имени файла и его назначения.

4.3. При разработке графит-алгоритмов необходимо выдать в отдел 035:
• электронный файл с расширением .ais (блок-схему графит-алгоритма),
• электронный файл с расширением .i (табличный текст графит-алгоритма),
• твердую копию блок-схемы графит-алгоритма,
• сопроводительную записку с указанием имен и назначения файлов.

Обратите внимание на слова:

электронный файл с расширением .i (табличный текст графит-алгоритма)

Это именно то, о чем говорит dvuugl.
Разница лишь в том, что dvuugl говорил о «структурированном тексте», а у нас формальный ТЕКСТОВЫЙ выход графит-редактора реализован в виде таблицы.
Но это, конечно, несущественная разница.

Посмотрим на структурную схему «Технология разработки алгоритмов и программ "ГРАФИТ-ФЛОКС"» на Вики.

На выходе Графит-редактора видим «Электронный графит-алгоритм», который на дискете передается в отдел программистов.
Это упрощенная схема.

http://wiki.oberoncore.ru/index.php/%D0 ... 0%BE%D0%BD

В действительности на дискете находятся ДВА файла:

• файл с расширением .ais (блок-схема графит-алгоритма),
• файл с расширением .i (табличный текст графит-алгоритма)

Последний файл называется «ишник», или «ишный файл».

Как он образуется? В точности так, как вдохновенно предсказал dvuugl:

Двуугл писал:

Цитата:
нажимаешь клавишу, получаешь структурированный текст.


Именно так и поступают комплексники. Закончив рисовать блок-схему графит-алгоритма, они

нажимают клавишу и получают ишный файл.
Ишник комплексникам совсем не нужен (как в голову дырка). Но так велели программисты.

И комплексники любезно соглашаются. Что им стоит нажать на клавишу?

Таким образом, имеет место ситуация: комплексникам все равно, а программистам приятно. Поэтому комплексники (в порядке альтруизма) создают совершенно им не нужные ишные файлы.

А программисты подают эти файлы на вход транслятора (и т.д.). См. структурную схему на вики.

Разумеется, программисты и сами могли бы нажать на несчастную клавишу. Но так уж повелось.

Как выглядит ишный файл?
Точнее, как выглядит содержащаяся в нем инфомация?


Передо мной распечатка. Выше говорилось (для краткости), что ишник — это табличный текст графит-алгоритма.
Это не совсем точно.

На распечатке я вижу 5 вертикальных линий (горизонтальные линии отсутствуют).
Информация расположена в 5 столбцах

Резюме. Я вижу хорошо структурированный понятный (программисту) текст.
Интендации нет, но используется разнесение информации в 5 столбцах.
(Однако используемая структура СУЩЕСТВЕННО отличается от традиционной).

Основную роль играют 3-й и 4-й столбцы. Про остальные столбцы для краткости говорить почти не буду.

В 3-м столбце пишут ключевые слова:

ВЫЧИСЛ — вычислить
ВЫЗВАТЬ
ЕСЛИ
ИНАЧЕ
ПАУЗА
ОЖИДАНИЕ
ЖДАТЬ
*— комментарий
КОНЕЦ
и так далее

В 4-м столбце пишут идентификаторы, операции, комментарии и еще кое-что

Если в 3-м столбце стоит ИНАЧЕ, то в 1-м столбце пишут 0, а в 5-м столбце пишут метку перехода, например, @E0002

Вопрос. Куда же осуществляется переход?
Ответ. Переход осуществляется на ту строку, где во 2-м столбце указана метка @E0002

Приведу 4 простейших примера.

Пример 1.

ВЫЗВАТЬ АП5ZФ.АНАЛ.ИЗМ

Пример 2.

ВЫДАТЬ КТ5ZФ.НЕНОРМ.02А

Пример 3

ПАУЗА 5С

Пример 4.

ВЫЧИСЛ ПЛ5ZФ.НЕНОРМ.02А:=1


Вывод 1. Под термином «язык Графит» спрятаны два разных (изоморфных) языка:

• графический язык блок-схем;
• текстовый язык, математически строго определяющий синтаксис и семантику ишных файлов, которые подаются на вход транслятора.

Вывод 2. В системе Графит-Флокс используются 3 языка:

• графический язык блок-схем;
• текстовый язык, математически строго определяющий синтаксис и семантику ишных файлов, которые подаются на вход транслятора.
• язык Флокс.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 25 Июль, 2008 12:10 

Зарегистрирован: Воскресенье, 04 Ноябрь, 2007 23:01
Сообщения: 511
Сейчас гадость скажу 8) .

Почему успешно применив
"драконовские" правила к записи и структурированию маршрутной информации,
применены
драконовские правила(в прямом смысле) к формированию декларативных сущностей,
причём возможности структурирования последних оказались минимальны?

ФЛОКС'а на самом деле нет. Как язык он не существует. Есть правила учёта сущностей, без возможностей описания на ФЛОКС'е отношений между этими сущностями. Именно отношений, а не взаимодействий, которые описываются на ГРАФИТ'е. А уж визуального представления отношений и методов их стуктуризации нет и подавно.

Разрезать Оберон можно, как и любой другой язык высокого уровня. На две отдельные ограниченно функционирующие части.. Получится этакий макроассемблер с командами высокого уровня и контрактами для команд и данных(команда<->команда, команда<->данные, данные<->данные). Без визуального представления контрактов и методов их стуктуризации. Но известны случаи, когда контракты успешно существуют и внутри языка программирования (Singularity). Естественно :), нет визуальных средств для структурирования этих самых контрактов.

Думаю, что разрезАть не стОит. Попробовать можно, но хромать будет сильно. Может быть дополнить чем-то, что можно визуализировать, структурировать и затем "вылить" в текстовое описание? Которое совместно с описанием из ГРАФИТ'а можно транслировать в целевой язык программирования.


Последний раз редактировалось Рэйлвэй Каген Пятница, 25 Июль, 2008 12:52, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 25 Июль, 2008 12:17 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Рэйлвэй Каген писал(а):
3.
    КС1УФ.ОТКЛЮЧИТЬ.ФИДЕР.УМ1,
    КС1ПФ.ОТКЛЮЧИТЬ.ФИДЕР.УМ1
- может ли означать
    "Команда Силовая"(в обоих случаях),
    но алгоритмически разные действия(под одинаковым названием "ОТКЛЮЧИТЬ.ФИДЕР")
    для физически разных устройств(с одинаковыми названиями УМ1)
    в разных трактах("У" и "П")?

С "КС", возможно, не очень корректно будет, поэтому:
    АП1УФ.ОТКЛЮЧИТЬ.ФИДЕР.УМ1,
    АП1ПФ.ОТКЛЮЧИТЬ.ФИДЕР.УМ1
- может ли означать
    "Алгоритм Процедура"(в обоих случаях),
    но алгоритмически разные действия(под одинаковым названием "ОТКЛЮЧИТЬ.ФИДЕР")
    для физически разных устройств(с одинаковыми названиями УМ1)
    в разных трактах("У" и "П")?



Ответ. Да.

Два идентификатора, отличающиеся хотя бы одним символом, указывают на разные объекты.

Вопрос. Почему они указывают на разные объекты?
Ответ. Потому что их флокс-описания обязательно будут отличаться.

Дополнительное пояснение

Идентификатор КС1ПФ.ОТКЛЮЧИТЬ.ФИДЕР.УМ1 носит учебный характер. Ошибка в том, что он имеет 25 символов. А можно только 16.

Я боролся, как лев, чтобы увеличить длину идентификатора до 24 символов. Но у меня ничего не вышло.

Так что сейчас мы живем в мире 16-символьных идентификаторов. Из которых первые шесть символов отводятся на префикс. Префикс состоит из 5-символьного классификатора и эргономичного разделителя (точки). Точка-разделитель находится в 6-й позиции.

Вопрос. Что отсюда следует?
Ответ. На смысловую часть (то есть на описание ФИЗИКИ ОБЪЕКТА) остается всего 10 символов (16 — 6 = 10).

10 символов — это очень мало. Если бы идентификатор был 24-символьным, то смысловую часть пришлось бы 18 символов. 18 символов — почти вдвое больше чем 10. Но сегодня это только мечты.

Сегодня мы живем в трудных условиях. Приходится вводить режим жестокой экономии символов. Приходится ногами утаптывать СМЫСЛОВУЮ ЧАСТЬ (символы 7—16), чтобы поместить ее в узкое горлышко из 10 символов. Это очень трудно.

Чтобы помочь делу, я (для некоторых типов) ввожу дополнительную формализацию (то есть обязательные для исполнения формальные сокращения слов).

Для команды КС правила таковы:
В 7-й позиции писать букву В (включить) или О (отключить).
В 8-й позиции писать точку (.)
В 9-й позиции писать букву Ф (фидер)
В 10 позиции писать точку (.)
В 11—16 позициях комплексники пишут что хотят (а хотят они написать название фидера).

Поэтому реальные команды типа КС выглядят, например, так:

КС1ЕФ.В.Ф.БРМ4
КС1ЕФ.О.Ф.БРМ4

Приведу пример заполнения флокс-таблицы для команд типа КС.

Поскольку реальную флокс-таблицу, Блэк-бокс не позволяет показать (или я не знаю, как это сделать), я опишу таблицу так:

1. Название (шапка) 1-го столбца (знак %) Информация (знак %) Мои пояснения красным цветом

2. Название (шапка) 2-го столбца (знак %) Информация (знак %) Мои пояснения красным цветом

3. Название (шапка) 3-го столбца (знак %) Информация (знак %) Мои пояснения красным цветом

Начало описания таблицы

1. Позиция % 0001 % Это порядковый номер строки в данной флокс-таблице

2. ИДЕНТИФИКАТОР % КС1ЕФ.В.Ф.ББРК

3. ПРИБОР % ПФ194.2 % Комплексник пишет ИЗВЕСТНОЕ ЕМУ название прибора (устройства обмена), через которое команда поступает к абоненту. Это название АВТОМАТИЧЕСКИ преобразуется в код одной из восьми линий связи (имеются в виду выходные линии связи компьютера Бисер — см. рисунок на стр. 41 Извлечения в Вики)

4. АБОНЕНТ % СК2 % Комплексник указывает ИЗВЕСТНОЕ ЕМУ сокращение СК2 (что означает Силовой Коммутатор 2). Это название АВТОМАТИЧЕСКИ преобразуется в адрес одной из 16 ячеек памяти устройства обмена.

5. КОД % 8,9,10,11,12 % Комплексник указывает ИЗВЕСТНЫЕ ЕМУ номера битов, которые занимает код силового коммутатора в 32-й ячейке памяти устройства обмена.

6. ПРИЗНАК % В % В означает Включить. Эта информация дублирует позицию 7 идентификатора. Необходимость дублирования связана с тем, что используемая реляционная база данных ФЛОКС не имеет доступа к 7 позиции идентификатора.

7. ПОЛНОЕ НАЗВАНИЕ % ВКЛЮЧЕНИЕ ФИДЕРА БРМ4 ПФ366 % Это развернутый комментарий. Он заполняется всегда (никто не сачкует), потому что пустая графа таблицы действует на людей магнетически и как бы настоятельно приглашает себя заполнить

конец описания таблицы


Последний раз редактировалось Владимир Паронджанов Пятница, 25 Июль, 2008 16:53, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 25 Июль, 2008 15:56 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Рэйлвэй Каген писал(а):

[у ФЛОКСа] возможности структурирования декларативных сущностей... минимальны.

ФЛОКС'а на самом деле нет. Как язык он не существует. Есть правила учёта сущностей, без возможностей описания на ФЛОКС'е отношений между этими сущностями... А уж визуального представления отношений и методов их стуктуризации нет и подавно.

Уважаемый Рэйлвэй Каген!

Благодарю Вас за критику. Потому что критика — это бесценное сокровище, которое обогащает нас новым знанием.

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

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

Вместе с тем мне кажется уместным кратко изложить логическую структуру дискуссии.

Что я предложил?

Я предложил язык Дракон, как язык слепышей. Ничего другого я не предлагал и не предлагаю.

Что показал анализ моего предложения?

Анализ показал, что мое предложение нуждается в дополнениях. В частности, надо сделать два дополнения:

      • создать правила заполнения слепышей процедурным текстом;
      • дополнить процедурную часть декларативной.

Какой возник вопрос?

В процессе анализа возник вопрос: КАК ПРИВЯЗАТЬ ДЕКЛАРАТИВНУЮ ЧАСТЬ К ПРОЦЕДУРНОЙ?
Поиск ответа на этот вопрос вызвал определенные затруднения.

Какой возник уточняющий вопрос?

При попытке преодолеть затруднения, естественным образом возник еще один вопрос: а как эта проблема (проблема привязки) решена в единственной на сегодня промышленной реализации Дракона — в системе Графит-Флокс?

Что было дальше?
Дальше началось ознакомление с принципами реализации системы Графит-Флокс. На мой взгляд, это ознакомление было полезным. Потому что был получен четкий ответ на поставленный вопрос: КАК ПРИВЯЗАН ПРОЦЕДУРНЫЙ ЯЗЫК ГРАФИТ К ДЕКЛАРАТИВНОМУ ЯЗЫКУ ФЛОКС.

В заключение повторю еще раз. Я никогда не предлагал и не предлагаю использовать язык Флокс для других сфер применения, кроме той, где он вполне успешно выполняет свои задачи сейчас.


Последний раз редактировалось Владимир Паронджанов Пятница, 25 Июль, 2008 20:28, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 25 Июль, 2008 17:15 

Зарегистрирован: Воскресенье, 04 Ноябрь, 2007 23:01
Сообщения: 511
Уважаемый Владимир Даниелович! Пожалуйста воспринимайте мои высказывания не как критику, а как гонку за лидером.
Местами не очень честную - я пытаюсь ставить "вешки" там, где можно "свернуть" или "добавить газа", может быть срезать сложности или воспользоваться "помощью зала". Но не более того.
Думаю, что рано подводить черту под обсуждением, тем более что Вы задали направление, предложив язык слепышей. Может быть в процессе обсуждения выяснится, что такой язык применим и для декларативных описаний. Вероятно, базовые иконы и методы структурирования будут несколько иные, чем для процедурной части, но всё-таки в базисе Ваших рассуждений.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 26 Июль, 2008 11:44 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5846
Откуда: Москва
Рэйлвэй Каген писал(а):
Я всё-таки не понял, почему распределение памяти автоматическое, если
на с.41 для определения идентификатора "КС1УФ.ОТКЛЮЧИТЬ.ФИДЕР.УМ1"
требуется ответить на п.2, касающийся распределения памяти устройства обмена.


Уважаемый Рэйлвэй Каген!

Распределение памяти устройств обмена - это отдельная специфическая задача (о ней скажу в конце).
Я имел в виду распределеие памяти в оперативной памяти Бисера. Вот некоторые подробности:

Цитата:
1.6. Передача электронных графит-алгоритмов и флокс-таблиц в отдел программистов на дискетах

1.7. Формирование реляционной базы данных ФЛОКС

1.8. Выбор в базе данных ФЛОКС нужных полей (кроме массивов) с помощью программы языка запросов «Пуск ДМ»

1.9. Обработка выбранных полей программой «транслятор объектов» TRANS и формирование набора записей, в которых каждому объекту базы данных ФЛОКС (кроме массивов) ставится в соответствие ассемблерная константа.
(Эти константы представляют собой параметры, а также посылки — команды и сигналы, передаваемые из ЦВМ «Бисер» к абонентам и обратно)

1.10. Формирование Базы объектов из ассемблерных констант с помощью программы BTRIEVE

1.11. Формирование массивов объектов из массивов, описанных в базе ФЛОКС (в виде массивов ассемблерных констант) с помощью программы MASS и Базы объектов

1.12. Трансляция массивов объектов с системе УГРА в загрузочные модули массивов

1.13. Присвоение загрузочным модулям массивов машинных адресов (адресов ОЗУ ЦВМ «Бисер»)

1.14. Загрузка присвоенных адресов (адресов массивов) в базу данных ФЛОКС

1.15. Выбор в базе данных ФЛОКС полей, описывающих адреса массивов, с помощью программы языка запросов «Пуск ДМ»

1.16. Обработка выбранных адресов программой «транслятор объектов» TRANS и формирование набора записей, в которых каждому адресу массива в базе данных ФЛОКС ставится в соответствие ассемблерный адрес массива в виде константы

1.17. Запись ассемблерных адресов массивов в Базу объектов с помощью программы BTRIEVE

1.18. Передача полностью сформированной Базы объектов прикладным программистам для автоматической обработки графит-алгоритмов

1.19.Трансляция графит-алгоритмов в сжатую форму

1.20. Преобразование сжатой формы графит-алгоритмов с помощью программы «Анализатор» и Базы объектов.

1.21. Обработка графит алгоритмов с помощью программы «Кодогенератор» (генератор ассемблерных кодов ЦВМ «Бисер»)

1.22. Редактирование ассемблерных кодов и получение загрузочных модулей ЦВМ «Бисер» с помощью системы УГРА

1.23. Отладка загрузочных модулей с помощью отладчика-интерпретатора


Теперь об устройствах обмена.
Распределение памяти устройств обмена у нас не имеет почти ничего общего с тем, что обычно понимают программисты под "распределением памяти".

Часть памяти распределяется на этапе разработки устройств обмена.
Эту функцию выполняет разработчик устройств обмена.

Другую часть памяти распределяет Главный Комплексник. Точнее, он не распределяет, а ПРОЕКТИРУЕТ. У него есть Информационные объекты, которые он обязан разместить. И есть несколько 32-разрядных слов, в которые эти Информационные объекты надо упаковать. Надо сделать так, чтобы они влезли в предоставленные ячейки.

Если они не влезают, Главный комплексник требует от разработчика устрйств обмена, чтобы тот доработал аппаратуру (такое бывает редко, так как все имеют очень большой опыт и давно научились ладить друг с другом).

Вы пишете: "Я всё-таки не понял, почему распределение памяти автоматическое, если на с.41 для определения идентификатора "КС1УФ.ОТКЛЮЧИТЬ.ФИДЕР.УМ1"
требуется ответить на п.2, касающийся распределения памяти устройства обмена.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 29 Июль, 2008 08:37 

Зарегистрирован: Воскресенье, 04 Ноябрь, 2007 23:01
Сообщения: 511
Спасибо. Понятно.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ] 

Часовой пояс: UTC + 3 часа


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

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


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

Найти:
cron
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2008-2024, участники конференции «DRAKON.SU», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB