DRAKON.SU

Текущее время: Пятница, 18 Сентябрь, 2020 11:58

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




Начать новую тему Ответить на тему  [ Сообщений: 107 ]  На страницу Пред.  1, 2, 3, 4, 5, 6  След.
Автор Сообщение
СообщениеДобавлено: Вторник, 11 Май, 2010 15:03 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 4830
Откуда: Москва
С. Тарасенко писал(а):
Владимир Паронджанов писал(а):
Если ты хочешь нарисовать действия, нарисуй их, чтобы я мог их увидеть. Сейчас я их не вижу.
Владимир Паронджанов: Чтобы исправить схему, надо хотя бы в одно плечо каждой иконы вопрос вставить икону действие или вставку.


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

4. Чтобы исправить схему, надо хотя бы в одно плечо каждой иконы вопрос
вставить икону действие или вставку. Только после этого схему Стаса
можно будет оценить на эргономическую правильность.

Пожалуйста:.......[Рисунок Стаса см. здесь viewtopic.php?p=47312#p47312]


Стас!

1. Спасибо, что ты придумал тест, который указывает на слабое место
визуального синтаксиса языка Дракон.

2. Твоя крестовина требует от меня ответить на вопрос: разрешить
такую крестовину?
Или запретить?

3. Пока я склоняюсь к ответу: запретить.

4. Я имею в виду, что в твоей схеме нижнюю икону действие
надо продублировать.
Ведь если продублировать, то крестовина исчезнет.

5. Есть и другой выход. Превратить крестовину
(узел соединения 4-х линий)
в два узла, в каждом из которых соединяются ТРИ линии.
Для этого левую горизонталь крестовины надо сделать выше
или ниже правой горизонтали.

Еще раз спасибо, за то что ты раскопал такой хитрый случай.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 14 Май, 2010 04:42 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
С. Тарасенко писал(а):
Драконограф писал(а):
С неудобством восприятия текстового присваивания соглашусь - но так вроде уже устоялось в информатике. А для визуализации было предложено записывать присваивание через икону Полка -
Она не визуальна. В полке указываются лишние СЛОВА, против которых и выступает Владимир Даниилович как против сора, захламляющего восприятие. Иногда и без неё не обойтись, но простое присваивание вида а=б или ряд(н)=ряд(н+1) лучше, думаю, всё-таки писать в Запоминатель. Хотя у него и другая функция, согласен.

А я и предлагаю в Полке как присваивании лишних слов не писать - для данных примеров на верхнем этаже будет "б" (или "ряд(н+1)"), на нижнем - "а" (или "ряд(н)") а всё остальное читатель понимает по графике иконы (в смысле присваивания, который определяется как раз тем, что другого текста в иконе нет).

P.S. Перепутал порядок - для естественности восприятия, которой мы хотим, надо поменять содержание верхнего и нижнего этажей, исправлено выше.
Также изменены и дополнены сообщения о 2-м, 3-м, 5-м, 6-м требованиях от Вас - есть некоторые соображения.


Последний раз редактировалось Владислав Жаринов Воскресенье, 16 Май, 2010 04:43, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 14 Май, 2010 04:51 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
С. Тарасенко писал(а):
Драконограф писал(а):
Разумею под "приёмником" фигуры "Вывод" порт вывода ...

Простите,из этого сообщения я не понял почти ничего. Во всяких портах да ассемблерах да внешних устройствах я полнейший дубарь. Я-то хотел приспособить эти фигуры для простого компилятора в ЕХЕ-файлы, не более! Чтобы подогнать этот компилятор под указанные правила. А как их использовать для проектирования сложных устройств, решать самому пользователю, в зависимости от задачи, я так понимаю.

Вообще-то порты необязательно фигурируют только в ассемблере - поэтому я и говорил в первую очередь об именах портов (напр. "дисплей", "принтер", "другая машина" или то, что реализовано для "Бурана" в DNS-подобном формате) - а уже потом вместо имён подставляются адреса, о чём пользователю знать и небязательно.
Конечно, объяснение таких вещей только текстом не очень наглядно, но теперь есть визуализация в конце этого подпункта - м.б. оттуда яснее будет? Там прописана общая идея - вводимая/выводимая величина, прежде чем занять место/уйти с места, обозначенного её именем (в ОП), вначале проходит через порт исполнителя визуала со своим именем/адресом (ну и у другого участника так же). Вы правы, что пока мы не программируем детально - это можно не раскрывать - достаточно имён величин.


Последний раз редактировалось Владислав Жаринов Пятница, 14 Май, 2010 05:08, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 14 Май, 2010 04:53 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
С. Тарасенко писал(а):
Драконограф писал(а):
Считаю реализацию Геннадия в этом случае (мышь+контекст-меню) как минимум не менее удобной

Но уж во всяком случае список фигур должен выскакивать СРАЗУ после нажатия мыши, а не залезая в лишнее меню "Добавить". Конечно, все фигуры не помастятся, но хорошо: самые редкие фигуры можно поместить в доп. меню, но не все!

Согласен.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: 7-е техтребование от меня
СообщениеДобавлено: Пятница, 14 Май, 2010 05:04 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
1. Приложение РДП-среды должно запускаться и устойчиво работать при среднепроизводительной конфигурации косавта (на текущий момент - примерно PIII-1ГГц/ОЗУ-256М/система MSW98|Linux), в т.ч. при наличии других запущенных приложений.
Возможно, следует допустить запуск более одного экземпляра приложения.
2. Все машинные операции должны выполняться в течение 0,5...2 с с момента подачи оператором сигнала на выполнение.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: 2-е техтребование от меня
СообщениеДобавлено: Вторник, 18 Май, 2010 04:35 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
С. Тарасенко писал(а):
Спасибо! Пока не было времени прочесть всё, но это ценнейшие советы! Когда прочту всё вдумчиво, не за полминуты, а за полчаса, вымеряя каждое слово циркулем и линейкой, - тогда отвечу, надеюсь, достойно.


Ну, при таком серьёзном отношении сведений из исходного сообщения, пожалуй, недостаточно... :)
Попробую показать свои идеи схематизации на примере РДП-документа, "смакетированного" средствами Draw. Для начала тут будет не всё предложенное для инфор-синт-языка; постепенно буду добавлять что-то. Также не все пояснения будут в документе как КогниСтиль; многое пойдёт текстом здесь - когда РДП-редактор будет создан (быть может, Вами?), в нём это будет удобно, а пока проще так.

Пока что макетирован только условный РДП-документ (возможный шаблон после небольшого редактирования).
Вложение:

Конечно, раскрыть суть схематизации на синт-языке удобнее на конкретном документе. Возможно, позднее это будет сделано; в основу содержания скорее всего будет положена дракон-модель Задачи 1.1.1 из Приложения 4.

Уровни РДП-листа смоделированы слоями листа Draw (пользовательскими; три левых слоя автоматические и используются по назначению, указанному их именами).
    Отмечу, что в Draw планы глубины сами по себе, а слои сами по себе (просто как "порты приписки" графоэлементов вне зависимости от положения по глубине); поэтому командами изменения глубины можно, скажем, поставить элемент со слоя, лежащего "выше", глубже элемента со слоя, лежащего "ниже". Т.о. этот аспект "физики" РДП-документа здесь не представим - нужно просто вообразить себе, что всё, что на слое "Подсхемный", в любом случае дальше от глаза, чем всё, что на слое "Схемный", а всё, что на слое "Надсхемный" - в любом случае ближе.
Для начала искусственно создано нужное распределение содержания слоёв по глубине.
Исходно все слои, кроме схемного, заблокированы; их можно разблокировать и посмотреть, что где лежит.
Слой выбирается щелчком левой на его названии (заголовке вкладки). Блокировка ставится/снимается как свойство текущего слоя в контекст-меню (открывается щелчком правой на названии слоя).

Значит, так. Начнём с логики структурирования уровня схем, заданной листовыми синт-силуэтами (далее - лист-силуэтами).
Лист-силуэт - это тематический раздел РДП-документа. Один лист-силуэт в общем случае должен занимать более одного листа (обычно следующих подряд, но, наверное, необязательно) и тогда делится на секции. Логически у нас линии связи строк - "питания" (в "шапке" слева) и "земли" (в "подвале" справа) - переходят с листа на лист; думаю, удобно это показывать через дублирование вершины-заголовка лист-силуэта на каждом листе в качестве "поперечины" (в поле её основного текста можно хранить и показывать набор индексов-ссылок на остальные секции раздела для удобства навигации).

Строки лист-силуэта (соответствуют веткам обычного силуэта) индексированы по порядку следования в нём (нумерованы сверху вниз). Также индексированы иконы в пределах строки (для разветвлённой - возможно, по каждому маршруту отдельно).

Сочинитель произвольно редактирует содержание синт-икон Жёсткое поле и внесхемных графоэлементов; оно может включать текст, таблицы, графику, в т.ч. граф-схемы на граф-языках, поддерживаемых РДП-средой; то же касается дракон-икон (и вершин других граф-схем) с неформальным языком текста. В остальных вершинах заполняются определённые поля в структуре текста, как показано в их алфавитных определениях.
Поддерживается объявление любого фрагмента схемы (привязанной, т.е. это не касается лист-силуэтов) областью с возможностью работы над её содержанием в различных вариантах.
Поддерживается иерархия формальности языка текста граф-схем (в частности, дракон-схем), как предложено в 5-м техтребовании от меня.
Неформальный текст должен форматироваться, как в обычном офисном редакторе (с колонками, обтеканием рисунков, пользовательскими стилями абзаца/знака и т.д.).

Лист-силуэты и иные граф-схемы организованы по шампур-методу, т.е. имеют точки ввода в звеньях. Направление по шампуру для лист-силуэтов слева направо; соответственно вертикали становятся горизонталями. Побочные маршруты строки упорядочиваются вниз от её шампура; правда, петля Р-БП тоже находится внизу, но думаю, это несущественно. Вход икон справа, а выход слева.

М.б. непривычно, что невозможен никакой текст/таблица вне графоэлементов - но если вдуматься в логику организации страниц обычного инфордокумента (напр. во Writer), то там тоже есть структуризация и на уровни (фон/содержание) и уровня содержания - на области (верхний колонтитул/основное/нижний колонтитул) - фактически те же синт-иконы, причём колонтитулы также образуют свою структуру (м.б. свои для раздела документа, первой/чётной/нечётной страниц).
В РДП-документе в частном случае жёсткое поле может занимать весь лист (за вычетом места на остальные элементы лист-силуэта), тогда внешний вид РДП-листа практически неотличим от обычной страницы. Однако есть одна особенность - текст и др. содержимое из одного жёсткого поля не "перетекает" в другое, как между областями основного содержания страниц обычного инфордока.
    Возможно, следует ввести режим "перетекания" (в пределах одного раздела) - тогда придётся автоматически добавлять/удалять в конце раздела жёсткие поля (некоего заранее заданного размера) и строки под меняющийся физический объём содержимого.

Думаю, полный индекс объекта РДП-документа должен состоять из уровней:
    * номера лист-силуэта (раздела);
    * номера строки; для объекта внесхемной графики этот и предшествующий уровни заменяются на один уровень номера листа;
    * номера синт-иконы (даётся, напр. по ГОСТ, как в Ты-среде); для объекта внесхемной графики - его номер на листе (напр. по порядку помещения);
    * номера схемы, привязанной к объекту (к синт-иконе схемной графики или к любой внесхемной фигуре);
    * номера элемента схемы, привязанной к объекту (даётся по тем же правилам, что для синт-икон);
    * индекса закладки (из числа поставленных сочинителем в тексте объекта).
В качестве разделителей используются точки, а для более крупного подразделения - дефисы, напр. возможна такая структура индекса:

инд-объекта ::= <<<ИмяЛС>.<№стр>>|<№листа>>.<<№СинтИконы>|<№ВнеСхОб>>-<№ПривСх>.<№ЭлСх>[-<#Закл>]

Некоторые уровни индекса имеют также символическую интерпретацию, а именно:
    * Номеру лист-силуэта соответствует название раздела.
    * Номеру строки соответствует имя-термин (если поле термина непустое).
    * Номеру схемы соответствует её имя (данное в вершине-заголовке). Возможно, следует добавить перед именем индекс языка схемы (аббревиатуру, напр. ДРАКОН, СТ и т.п.) для удобства понимания.
    * Номеру элемента (любой другой вершины) сопоставлено её название по алфавиту используемого языка.
Каждый объект имеет ряд полей, в частности поле его индекса. В полях, заполняемых вручную, вместо пустого значения показываются шаблоны-заполнители, служащие подсказкой сочинителю (примерно как в Ты-среде).

Особенности индексирования некоторых объектов (сокращённого):
    * Индекс иконы Имя строки состоит только из номеров раздела и строки (заполняется только автоматически).
    * Значением иконы Адрес строки служит индекс следующей строки (редактируется сочинителем).
    * Имя-термин строки (вводимый сочинителем текст иконы) служит синонимом номера строки и указанием на то, что эта строка является словарной статьёй (определением термина); хранится в отдельном поле иконы Имя строки, Адрес строки.
Т.о. к этим иконам мы не привязываем никаких объектов и не вводим какого-то иного содержания, кроме текстовых имён строк, а также не ставим закладки на это содержание.
По иконе Адрес строки происходит переход на строку, указанную её значением. Указывая эти значения, сочинитель формирует метаструктуру маршрутов; более детально маршруты формируются в телах строк вводом синт-развилок и циклов (в т.ч. строчных СтрЦ как аналога веточных), пересадкой и заземлением лиан; в общем, всё как в техноязыке.

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

Индексный раздел содержит указатели следующего назначения:
    * оглавление - перечень содержательных разделов (других лист-силуэтов) и иных рисунков документа с указанием расположения по листам; собирается автоматически по заголовкам рисунков (отдельно для схем разделов и для остальных);
    * тезаурус - предметный указатель вхождения в тексты графоэлементов слов (выбранных сочинителем) и формальных имён (заданных "шаблонами" текста элементов) - терминов строк, имён величин, имён действий и пр.; собирается автоматически или вручную по содержанию всех графоэлементов документа;
    * источники - набор бибзаписей об источниках, указанных в текстах любых элементов документа в специальном формате (особой командой); собирается автоматически или вручную.
Для каждого элемента указателя даётся список его вхождений в документ - индексов объектов, где этот элемент встречается. Каждый индекс служит ссылкой, по которой можно перейти на указанное место вхождения (притом для источника перекрёстной, т.е. можно перейти обратно на бибзапись).
Для удобства оформления указателей можно принять, что все элементы индекса для вхождения пишутся числовыми, а при наведении курсора на конкретный индекс всплывает подсказка, где символьные элементы расшифрованы для удобства понимания человеком.
Каждый указатель занимает одну (изначально) или более (по мере пополнения) строк; естественно, строки именованы термином своего указателя (плюс некий порядковый индекс, напр. для строки тезауруса - буква/диапазон букв, на которые начинаются слова, собранные в этой строке).

Содержательный раздел формируется сочинителем как информатизованная синт-диаграмма (с использованием дракон-синт-икон для организации побочных маршрутов и связыванием строк по их индексам в иконах Имя строки, Адрес строки, получения отдельных данных для выбора маршрутов). При этом на любой объект РДП-документа (а по закладке - и на её место внутри объекта) можно также перейти по ссылке, вставленной сочинителем в текст другого объекта.

Теперь кое-что о физике. При наличии нескольких ячеек между ними придётся иногда делить иконы из тела строки синт-силуэта. Думаю, нужно граф-схемы разбивать по линиям, как показывал в документе, рисунки не разбивать (требуя вписать внутрь ячейки), текст делить на колонки в разных ячейках - в документе это пока не показал.
При показе лист-силуэтов принял упрощения:
    * линии "питания" (левая вертикаль) и "земли" (правая вертикаль) проводятся прямо через иконы Имя строки и Адрес строки, без показа "гребёнок" - так экономится место;
    * порядок следования строк обратный веткам обычного силуэта (если повернуть обратно, то получится, что первая после заголовка ветка справа).
Топология силуэта тем самым у нас получается немного иная - не нужна отдельная древесная точка для сращивания корней шапочного и подвального деревьев перед заголовком в отличие от петли дракон-силуэта, как она показана в записи через БП на этой странице - в то же время конечная строка (если она есть) оказывается внутри петли лист-силуэта. Т.к. он полагается "зацикленным", то это не очевидно сразу.

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

Рамка и штамп, очевидно, должны рисоваться как графоэлемент (групповой объект) "всегда впереди остальных".

P.S. Обновлено содержание; всё связанное с операциями переносится в 6-е техтребование.


Последний раз редактировалось Владислав Жаринов Суббота, 22 Май, 2010 12:15, всего редактировалось 3 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 18 Май, 2010 14:41 

Зарегистрирован: Четверг, 04 Июнь, 2009 15:08
Сообщения: 100
Владимир Паронджанов писал(а):
Я имею в виду, что в твоей схеме нижнюю икону действие
надо продублировать.
Ведь если продублировать, то крестовина исчезнет.

А если это не дейстиве, а огромный шампур-блок? Его тоже продублировать?

Владимир Паронджанов писал(а):
Есть и другой выход. Превратить крестовину
(узел соединения 4-х линий)
в два узла, в каждом из которых соединяются ТРИ линии.
Для этого левую горизонталь крестовины надо сделать выше
или ниже правой горизонтали.

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

Владимир Даниилович! Спасибо, что помогли решить эту головоломку!


Последний раз редактировалось С. Тарасенко Вторник, 18 Май, 2010 15:08, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 18 Май, 2010 14:55 

Зарегистрирован: Четверг, 04 Июнь, 2009 15:08
Сообщения: 100
А вот ещё несколько приятных добавлений в Дракон:

______________________________
1. Можно изменять масштаб! Колесом мыши, удерживая правую кнопку. Очень удобно! А родное предназначение колеса (двигать экран или текст по вертикали) осталось.
______________________________
2. Чтобы перемещаться по схеме, не надо искать и удерживать этот Shift. Есть два варианта:
. а) Кликнуть среднюю кнопку, затем найти нужное место и кликнуть её снова.
. б) Перемещаться по схеме, удерживая левую кнопку. Оно и всегда было, просто у меня при отпуске левой кнопки скрывается сообщение "Выбранный блок...". Ведь выделять несколько фигур левой кнопкой не нужно никогда, т.к. при попытке что-нибудть с ними сделать выделение сбрасывается. Значит, сообщение о выбранном блоке тем более не нужно.
______________________________
3. Клик средней кнопки включает и выключает режим перемещения. В режиме перемещения:
. а) вслед за мышью идёт экран;
. б) можно перемещать фигуры, узлы и схемы (левой кнопкой, не нажимая никакого Shifta);
. в) ВРАЩЕНИЕ КОЛЕСА МЫШИ изменяет ширину фигуры под курсором (при этом выделять её левой кнопкой не нужно). Если под курсором не фигура, а:
____ТОЧКА ВВОДА - при вращениии в_в_е_р_х происходит перенос лианы, в_н_и_з - заземление;
____УЗЕЛ ПАРАЛЛЕЛЬНОГО ДЕЙСТВИЯ - создаётся шампур соединения с нижним узлом;
____если под курсором вообще нет фигуры, а есть схема, то обновляется схема;
____если нет схемы (т.е. курсор на листе) - обновляется лист;
. г) вдавленное вращение колеса мыши (т.е. с нажатой средней кнопкой) отклоняет фигуру в стороны. При этом режим перемещения не выключается, несмотря на то, что нажимается средняя кнопка;
. д) при случайном нажатии на фигуру не появляется окно текста и не закрывает собой полэкрана;
. е) Правая кнопка мыши действует, как в обычном режиме. Можно добавлять фигуры и писать текст, правда он пишется большими буквами... Так что лучше перед этим нажать одиночный Shift или среднюю мышь, чтобы выключить режим перемещения.

Всё в этом пункте - для режима перемещения. Включить или выключить этот режим - одиночное нажание средней кнопки мыши.


Дальше для всех режимов:
______________________________
4. Очень удобно использовать смыканье. Смыкнуть вперёд - это значит, нажать левую кнопку мыши и, не отпуская её, нажать правую. Смык назад - правая, затем левая. Правда, не нужно смыкать очень быстро, особенно в больших схемах: он не успеет распознать смык и ничего не сделает. Впрочем, на хорошем компьютере, может, и успеет, если уж на моём 300-герцовом кое-как скрипит.
ОСНОВА:
. СМЫК ВПЕРЁД - переход или добавление справа,
. НАЗАД - изменение.

Более детально:

С_М_Ы_К___В_П_Е_Р_Ё_Д__ на фигуре:
. ЗАГОЛОВОК - добавляются параметры;
. ВЕТКА - добавляется ветка;
. ВАРИАНТ - добавляется вариант;
. АДРЕС - Переход на эту ветку;
. ВСТАВКА - Переход на эту схему (если такой схемы нет, сообщение исчезает при отпуске правой кнопки, так что есть время осмыслить это сообщение, а нажимать ОК не нужно);
. ВОПРОС - Поменять ветви местами (рокировка)
. УЗЕЛ ПАРАЛЛ. ДЕЙСТВИЯ - Доб. Параллель справа
. СБОРКА ТЕКСТА и ПРОЕКТ - Запомнить ссылку;
. ТОЧКА ВВОДА - Заземлить лиану на новый адрес;
. Вне фигуры - переход вперёд по вставке (кнопкa "=>" в строке меню).


С_М_Ы_К___Н_А_З_А_Д_ на фигуре:
. ВЕТКА - добавить ещё один вход;
. АДРЕС - Выбрать ветку;
. ВСТАВКА - с возвратом или без;
. ВОПРОС - Да <I> Нет;
. УЗЕЛ ПАРАЛЛ. ДЕЙСТВИЯ - Доб. Параллель слева
. ДЕЙСТВИЕ, КОММЕНТАРИЙ, ТЕКСТ, ТЕКСТ В РАМКЕ - заменить "Действие -> Комментарий -> Всатвка" или "Текст - Текст в рамке - Комментарий - Вставка";
. СБОРКА ТЕКСТА - Править линию
. ТОЧКА ВВОДА - Перенести путь
. Вне фигуры - переход назад по вставке.

______________________________
5. Смыкнуть средней-правой (и наоборот) - добавление левого или правого пояснения к фигуре. Режим перемещения при этом не изменяется.
______________________________
6. Скрываются ненужные сообщения "Выбранный блок не допускает использование", "В блоке различные шампуры" и т.д. Экран мигнул, пользователь увидел ошибку. Что ещё надо? Зачем отвлекать внимание на словеса, да ещё заставлять прицелиться и нажать ОК?
______________________________
7. В Драконе текстовое поле старого образца, т.е. Ctrl+Del удаляет до конца строки, а Ctrl+Bs вставляет квадрат. Я переназначил это в удаление слова, как все привыкли. (Это уже мелочь, но мало приятного, когда хотел убрать слово, а убрал строку.)
______________________________
8. Автозамена ключевых слов Visual Basic (это может быть любой другой язык, измените в исходнике). При наборе на клавиатуре первых двух букв и пробела они превращаются в ключевое слово. Причём не важно, какая стоит раскладка: можно напечатать "ms ", "mb ", "ьы ", "ьи " и даже "ьыпищч " - слово превратится в "MsgBox ". Заменяются все знаки, которые пишутся только в англ. раскладке, так что можно все переменные и задачи называть по-русски и не прикасаться к переключению раскладки. Продуманы все взаимоисключения слов. Подробнее в комментариях к исходнику.

==========================
КАК СДЕЛАТЬ ТАК, ЧТОБЫ ЭТИ ИЗМЕНЕНИЯ ВСТУПИЛИ В СИЛУ?

Вот программа:
http://files.mail.ru/IUZ8LF

Если запустить эту программу, в системном лотке появится её значок. Она изменяет сообщения клавиатуры и мыши, поступающие на окна "DRAKON". Можно поместить её ярлык в папку "Автозагрузка". Это "хук", написанный на языке AutoHotKey.

Драконограф ухитрялся работать на Драконе в Win 98 (у меня не получается); сразу предупреждаю: если Дракон и запустится, то мой скрипт на Win98 почти не действует (обрабатывает только клавиатуру). Нормальная работа - на 2000 и новее.

Вот исходный текст скрипта:
http://files.mail.ru/KT9TPC

Изменяйте, дополняйте, публикуйте! Саму программу AutoHotKey можно запросто найти в Интернете себе по вкусу (есть много разных версий, в том числе под Win 2000). Она совершенно бесплатна и очень лёгкая. Советую скачать с любом случае, т.к. с её помощью, подключив ещё и Ресторатор, можно творить волшебство.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: 8-е техтребование от меня
СообщениеДобавлено: Среда, 19 Май, 2010 04:43 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Должно поддерживаться ведение коллективного редактирования РДП-документа с возможностями, аналогичными офисным пакетам (фиксация/показ, рецензирование, принятие/отклонение исправлений по авторам).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: 9-е техтребование от меня
СообщениеДобавлено: Среда, 19 Май, 2010 11:14 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
1. РДП-среда является базой для разработки законченных РДП-систем. Назначение РДП-системы расширяется функцией программирования процессов, документированных в среде, или частей этих процессов.
РДП-система должна поддерживать в качестве формального языка текста граф-схем процессов (исходных чертежей программ) по крайней мере один промышленный прогязык реального времени, обладающий максимально высоким научно-техническим уровнем и имеющий реализацию в виде компилятора исходных текстов с этого языка.
    В соответствии с мнением отечественных ИТ-специалистов, представленных на веб-конференции OberonCore.Ru, исходным м.б. выбран прогязык Активный Оберон.
Между языком исходного текста и семейством языков исходных чертежей д.б. определено взаимно-однозначное соответствие.
Построение РДП-среды должно обеспечивать превращение её в РДП-систему простым добавлением модулей, реализующих расширение функций; равно и спецификация РДП-документа должна либо сразу учитывать функцию программирования, либо допускать расширение без изменения базовой части.

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

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


Последний раз редактировалось Владислав Жаринов Суббота, 22 Май, 2010 13:03, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: 10-е техтребование от меня
СообщениеДобавлено: Среда, 19 Май, 2010 11:15 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Проектная и эксплуатационная документация на РДП-среду (систему) д.б. оформлена с максимально возможным когнитивным качеством и по возможности без обращения к каким-либо иным средствам документирования.
    Самодокументирование изделия в данном случае (когда документ является также средством разработки изделий данного рода) обеспечивает возможность его наиболее эффективного развития - описание процессов РДП служит прототипом РДП-системы вместе с документацией на неё. Однако для этого нужно удовлетворить ранее сформулированные требования (из моих - в первую очередь 2-е и 9-е).
Частично это начал осуществлять Станислав Тарасенко (в проекте средства расширения набора формальных языков Рабочий ДРАКОН-Бейсик); но т.к. среда разработки в данном случае не удовлетворяет техтребованиям, то более-менее эффективно получается только документация, а само проектирование требует дополнительных средств и техпроцессов.

P.S. Также из требований от меня принципиально 4-е и 5-е реализовать. Естественно, у Стаса принципиально изложенное в 12-м требовании.
Кстати, 2-е от меня уже редактировано и скорее всего будет ещё изменяться.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 20 Май, 2010 10:54 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Вспомнил, что "силуэтизируемые" граф-схемы ещё подходят под разновидность устремлённых - отсюда вариант нового названия силуэта Стремянка :)) Хотя и юмористическое, но под него можно подвести смысл - и внешне структура (особенно повёрнутая на 90°) похожа, и мастеру визуализации схема, как обычному мастеру лестница-стремянка, помогает достичь нужного уровня структуризации сложного содержания...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: О приятных добавлениях в и.с. DRAKON
СообщениеДобавлено: Четверг, 20 Май, 2010 10:58 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
На сообщение: viewtopic.php?p=47566#p47566
С. Тарасенко писал(а):
если Дракон и запустится, то мой скрипт на Win98 почти не действует (обрабатывает только клавиатуру)

У меня он в MSW98 только и запускался :) А документ прочитать/создать не мог...
С. Тарасенко писал(а):
Советую скачать с любом случае, т.к. с её помощью, подключив ещё и Ресторатор, можно творить волшебство.

Чтобы творить волшебство, нужен в первую очередь волшебник :) Ура Станиславу! Но вот вопрос: а каковы пределы "рефакторинга" этого кода?
В частности, можно ли так "придумать, как перевести схему в кодовый язык", как Вы говорили в 12-м техтребовании (по сути - заложить автоматическую генерацию исходного прогтекста, в частности на Обероне - см. в 9-м техтребовании от меня)? А для этого ещё и добавить возможности описания типов прогязыка на графовой основе, о чём в 4-м техтребовании от меня? Можно ли естественным образом спускаться "от русского текста до программной ахинеи", как Вы говорили в 7-м требовании - по сути, иерархически детализируя схему "областным методом" на всё более формальном языке, как в 5-м техтребовании от меня? Наконец, можно ли сделать нормальную схематизацию содержания документа вместо существующей - как во 2-м техтребовании от меня? И чтобы всё это "летало" на среднепроизводительной машине и не только под MSW, как Вы хотели в 10-м требовании? Не потребуется ли для этого заново писать РДП-систему вместо "ресторирования" существующей среды?
У меня нет окончательных ответов на эти вопросы. Возможно, Вы как программист сможете ответить?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 22 Май, 2010 22:58 

Зарегистрирован: Четверг, 04 Июнь, 2009 15:08
Сообщения: 100
Драконограф писал(а):
В частности, можно ли так "придумать, как перевести схему в кодовый язык", как Вы говорили в 12-м техтребовании (по сути - заложить автоматическую генерацию исходного прогтекста

Ещё как! Я изменил первое сообщение, в самом начале выложен архив, в котором есть генератор кода (правда, пока только на Visual Basic, но я сделаю шаблон, по которому можно будет использовать любой язык). Программа сложная, очень многое пришлось продумать. Слова Goto я старался использовать только в крайнем случае, где действительно была пересадка лианы, а не в каждом условии. То же с "выбором".
Цитата:
Наконец, можно ли сделать нормальную схематизацию содержания документа вместо существующей - как во 2-м техтребовании от меня? И чтобы всё это "летало" на среднепроизводительной машине и не только под MSW, как Вы хотели в 10-м требовании? Не потребуется ли для этого заново писать РДП-систему вместо "ресторирования" существующей среды?

Можно, всё можно и нужно. Только не всё сразу. Ваши посты неоценимы. Я отпечатаю их на бумагу и буду изучать всё лето! Однако это теория. А попробуйте-ка всё это объяснить компьютеру? Одно дело хотеть, а я всё же кое-что и на практике сделал. Посмотрите для интереса архив в начале этой темы - там всё, что я мог отресторатить, вплоть до графического меню, как многие просили,.
Цитата:
У меня нет окончательных ответов на эти вопросы. Возможно, Вы как программист сможете ответить?

Неужели Вы-то - НЕ программист? Как жаль... Тогда придётся стараться мне самому, в меру сил. В общем-то я такой программист, что цифры складываю на пальцах, да потом ещё считаю эти пальцы отдельно. Я так и не смог освоить даже простые побитовые операции с числами (And, Or и т.п.), сколько ни изучал. Ни разу не получилось у меня рекурсии. Мозг у меня тупой-претупой, только желание есть, оно-то всё и вытягивает. Так что "ответить" я вам не смогу.


Последний раз редактировалось С. Тарасенко Суббота, 22 Май, 2010 23:19, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 22 Май, 2010 23:17 

Зарегистрирован: Четверг, 04 Июнь, 2009 15:08
Сообщения: 100
Геннадий Тышов писал(а):
Хотелось бы сделать картинки к пунктам меню... - часто спрашивали.

Геннадий Николаевич! Наверное, не стоит. Взгляните на начало этой темы. Всё уже сделано.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 24 Май, 2010 05:10 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
С. Тарасенко писал(а):
Неужели Вы-то - НЕ программист? Как жаль... Тогда придётся стараться мне самому, в меру сил.
Драконограф писал(а):
Наконец, можно ли сделать нормальную схематизацию содержания документа вместо существующей - как во 2-м техтребовании от меня?

Можно, всё можно и нужно. Только не всё сразу. Ваши посты неоценимы. Я отпечатаю их на бумагу и буду изучать всё лето! Однако это теория. А попробуйте-ка всё это объяснить компьютеру?


Скорее постановщик задач ("аналитик") :) - и просто практик формализации знаний в силу того, о чём говорил в этом сообщении - в частности, до уровня техзадания на программирование (доводилось делать для автоматизации техопераций в среде 1С). Поэтому на конкретных житейских ситуациях оценил необходимость эргономичного представления знаний, и не только алгоритмических - отсюда определение не языка, но комплекса их, начиная со схематизации знаний. М.б. поэтому мои требования уточняются постепенно - и потому отпечатывать их пока рано - следите за датировкой редакций в конце каждого сообщения ;)
Вот Илья Ермаков программист - и он ставит вопросы из того же ряда иначе, в т.ч. и что нужно для перехода от теории к практике программирования - см. доклад из этого сообщения. Конечно, когда придётся "объяснять компьютеру" - выяснится, что не всё так просто представить через сортировку, поиск и иные базовые алгоритмы над структурами данных из Д. Кнута или Н. Вирта - да ещё и дизайн интерфейса и общее качество обеспечить, напр. как показано в источниках из этого сообщения... Почему я и заговорил о другом прогязыке и среде первоначальной разработки - м.б. на Обероне в Блэкбоксе лучше пойдёт (хотя там надо по-своему решать вопросы с графикой)?

А общая идея такова - когда будет нормальный РДП-редактор-транслятор, дальнейшая разработка пойдёт в его среде (включая, очевидно, и РДП-документирование уже разработанного :)) - и тут начнёт работать на программиста и на других участников процесса 10-е техтребование от меня по принципу "раскрутки", только на когнитивно-эргономичной основе. Но, естественно, на том прогязыке, который в РДП-системе уже реализован - и это ещё одна причина, чтобы вспомнить об Обероне...

С. Тарасенко писал(а):
В общем-то я такой программист, что цифры складываю на пальцах, да потом ещё считаю эти пальцы отдельно. Я так и не смог освоить даже простые побитовые операции с числами (And, Or и т.п.), сколько ни изучал. Ни разу не получилось у меня рекурсии. Мозг у меня тупой-претупой, только желание есть, оно-то всё и вытягивает. Так что "ответить" я вам не смогу.


Желание - это уже много, а как улучшить работу ума - нас же учит Паронджанов :) (и не только он, кстати - тот же Орлов со своим ModernTRIZ/CROST - см. Гл. 20 в выдержке из книги в этом сообщении). А в отношении того, что должно получаться у программиста - наверное, не всё сразу. Кстати, Вы читали Вирта (те самые "Алгоритмы..." для Оберона)? IMHO, интересно, хотя и мало - всё-таки вводный курс... но м.б. чем-то поможет (особенно если пытаться визуализировать примеры :))?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 28 Май, 2010 04:51 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
С. Тарасенко писал(а):
Посмотрите для интереса архив в начале этой темы - там всё, что я мог отресторатить, вплоть до графического меню, как многие просили,.

Посмотрю, но и правда лишь для интереса :) Дело в том, что мне нужна визуализация, где есть по крайней мере:
    * внесхемная графика (хотя бы КогниСтиль);
    * схемы на разных граф-языках, включая язык схематизации лучший, чем ГНОМ;
    * возможность разнообразно форматировать текст/таблицы/графику внутри фигур.
Всё это потому, что делаю практические описания, предназначенные не только мне - и для передачи разного смысла в комплексе. Посему нужно максимально использовать возможности, которые дают идеи Владимира Даниеловича (развиваемые и дополняемые по мере необходимости) с минимумом трудозатрат - и пока для этого подходит только офисный пакет :) Что не умаляет ценности Вашей работы - опробовав результат, можно будет понять, допустим, что стало хорошо в интерфейсе оператора, а что можно изменить - на словах такие вещи не установишь :)


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

Зарегистрирован: Четверг, 04 Июнь, 2009 15:08
Сообщения: 100
Адаптировал улучшение к последней версии Дракона (1 июня 2010):
http://files.mail.ru/Q865QP

Дополнительные изменения:
___1) Вдвое уменьшил область схемы - в шесть раз быстрее грузится и совершенно не жрёт памяти. Сделал несколько вариантов программы - от самого маленького (грузится мгновенно, но большие схемы нужно перемещать для обзора) до огромных тяжёлых схем - тоже были просьбы.
___Варианты легко переключаются. Измените в самом начале файла "Изменения..." и запустите "Создать программу..." - тогда все схемы будут открываться с указанной областью. Тут нужно найти компромисс между мощью компьютера и размером обрабатываемых схем.
Если нужен другой размер, которого в моих вариантах нет, просто измените в Рестораторе эту строку:
object Image: TImage
Left = 20
Top = 20
Width = (ШИРИНА)
Height = (ВЫСОТА)


___2) Уменьшил полосы прокрутки, чтоб больше схемы видеть. В основном-то мы двигаемся в режиме перемещения, прокрутка вроде не нужна.
___________________________

3. Много лексических изменений, добавлены псевдографические значки к пунктам контекстного меню. Например, фраза:
-- Точка ввода: лиану пересадить в точку ввода.
С чем бы сравнить? Это всё равно что сказать:
-- Чайная чашка: чаю выпей из чайной чашки.
Не лучше ли сказать просто, по-человечески:
-- Выпей чаю?
Мы знаем, что это точка ввода. Знаем, что лиана пересаживается ТОЛЬКо в точку ввода. Зачем лишние слова? И потом: где здесь КЛЮЧЕВОЕ СЛОВО? На четвёртом месте: "1)Точка 2)Ввода: 3)Лиану 4)ПЕРЕСАДИТЬ" - вот только где. А мы ожидаем ключевое слово в НАЧАЛЕ фразы. Пока прочитаешь весь этот мусор да дойдёшь до слова Пересадить, забудешь, что хотел сделать.
___Эти предъёмы с двоеточиями я рассматриваю как попытку структуризации команд. Но вместо структуризации выпячивается полный разлад. Нажмите правой кнопкой на фигуру "Вопрос". Вылезает пять блоков команд с такими предъёмами:
| Вопрос:
| Икона:
| Присоединить
| Вопрос:
| Икона:
Где же структура? И по-русски ли звучит такая фраза:
| "Вопрос": удалить и нижний выход?
Неужели хуже звучит первое, что приходит в голову:
| Убрать вопрос и нижний выход?
И по-русски ли звучит команда:
| Икона: копировать в гр. буфер?
Что есть два разных буфера - графический и текстовый - запоминается один раз (по справке). Зачем мозолить этим глаз в каждой команде? Не лучше ли сказать:
| Запомнить фигуру.
И где же структуризация, если команды одного рода имеют разные предъёмы:
| Икона: вырезать в гр. буфер;
| Точка ввода: вставить из гр. буфера?

А вместо предъём-структуризации лучше ввести значки. Пусть даже псевдографические, как это сделал я. Нарпимер:
Х Убрать фигуру
Х Вырезать фигуру
@ Запомнить фигуру (значок имитирует мозг:)
\/ Вспомнить фигуру
\х/ Вспомнить и заменить фигуру

Для точки ввода:
+ Перенести путь (т.к. многостор. направление)
v Заземлить путь

Для Адреса:
^^^ Перейти на эту ветку (ведь ветка всегда сверху)
+ Выбрать ветку

И так далее. Любую критику выслушаю с большим удовольствием.



4. Граф меню вызывается из любой точки экрана. Если оно не влезает - приклеивается к краю экрана, а мышь сама становится в центр, на "Действие".


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

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Станислав, большое спасибо за внимание к и.с. DRAKON.
Интересен Ваш опыт ее модификации. Модификации могут быть полезны опытному пользователю.
Буду разбираться с предоставленным материалом.

Меня беспокоит, что ссылка http://files.mail.ru/Q865QP будет действительна только несколько дней, архивированный файл лучше передавать во вложении к сообщению для постоянного хранения.

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

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

Представляя их перед собой и пишется интегрированная среда применения языка ДРАКОН, обратите внимание не интегрированная среда разработки на языке ДРАКОН.


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

Зарегистрирован: Четверг, 04 Июнь, 2009 15:08
Сообщения: 100
Геннадий Тышов писал(а):
Я исходил из того, что у и.с. DRAKON будет широкая аудитория... человек без опыта работы с программой и компьютером, человек загруженный другими делами.


Понятно. Тогда я в своих лексических изменениях несколько не прав. Тогда нужно оставить деление на графический буфер и текстовый, а также оставить определения элементов ("точка ввода", фигура" итп). НО!!! Не в самой команде, а - в подсказке! Причём писать пояснение в строке состояния не разумно, т.к. никто её не читает. Лучше всего, я думаю, реализовать ВСПЛЫВАЮЩИЕ ПОДСКАЗКИ к пунктам контекстного меню. Мне уже это не по силам, со своим Ресторатором. Придётся делать Вам.

Суть всплывающих подсказок:
* ОПЫТНЫЙ ПОЛЬЗОВАТЕЛЬ мгновенно навёл и нажал. Подсказка не успела появиться и отвлечь его драгоценное внимание.
* НАЧИНАЮЩИЙ навёл на пункт (допустим, "Перенести путь") - и не знает что делать. Задумался. Что ещё за чёрт, какой такой путь?.. Вот тут ему и всплывает подсказка:
"Отделить линию от нижнего узла и перенести в другую точку ввода."
Или ещё как-нибудь... Подсказки нужно тщательно продумать, чтобы они были:
- понятны,
- лаконичны,
- по-русски. Без "лиан" и "шампуров". Ведь вы рассчитываете на начинающего, который не читал книги "Как улучшить работу ума" и слыхом не слыхивал о всяких шампурах с иконами.

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

В этом я вам помогу, чем смогу. Вроде литературный вкус у меня какой-никакой есть. Нужно только ваше согласие.
Если оно будет - айда за дело!


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

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


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

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


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

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