DRAKON.SU

Текущее время: Вторник, 19 Январь, 2021 13:54

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




Начать новую тему Ответить на тему  [ Сообщений: 170 ]  На страницу Пред.  1, 2, 3, 4, 5 ... 9  След.
Автор Сообщение
 Заголовок сообщения: Re: Для обсуждения и.с. DRAKOH 2009г.
СообщениеДобавлено: Суббота, 24 Январь, 2009 19:33 

Зарегистрирован: Суббота, 24 Январь, 2009 19:05
Сообщения: 1
Было бы неплохо, если бы запускаясь приложение принимало опциональный параметр командной строки - имя файла (>Drakon.exe rozmitka2.drt), и открывало его. Тогда можно было б открывать файлы просто перетаскивая мышью их на приложение, или, при первом двойном щелчке на *.drt файле - выбрать Редактор и поставить галочку "использовать для всех файлов такого типа", тогда будет возможно быстро открывать файлы для просмотра-редактирования двойным щелчком мыши.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Для обсуждения и.с. DRAKOH 2009г.
СообщениеДобавлено: Суббота, 24 Январь, 2009 19:39 

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

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


Уважаемый Рэйлвэй Каген!
Я понял Вас так. контроллер имеет особенности, в силу которых дракон-схема 1 становится сомнительной или даже неприемлемой.
Иными словами, контроллер ТРЕБУЕТ, чтобы была выбрана схема 2. Грамотный программист знает об особенностях контроллера. Он никогда не нарисует схему 1. И всегда выберет схему 2.
Это нормальный порядок.
Но! Вы рассматриваете, кроме того, еще один случай. Работу выполняет не очень грамотный программист. И -- в силу своего незнания -- выбирает схему 1, которая не учитывает особенностей контроллера.
Я понимаю это так, что произшло ЧП. И что неграмотный программист "натворил делов".

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

Правильно ли я вас понял?
Если правильно, то какое отношение эта проблема имеет к недостаткам языка Дракон? Какие недостатки языка выявляет Ваш пример?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Для обсуждения и.с. DRAKOH 2009г.
СообщениеДобавлено: Суббота, 24 Январь, 2009 20:08 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
1.
Рэйлвэй Каген писал(а):
Например простое ...
в коде MPASM для PIC12 выглядит так: ...
и переносится один-в-один так: ...
Это очевидно, т.к. двухмерная схема преобразуется в линейный код ассемблера.
Вложение:
Identichno.png

2. По поводу остановки таймера:
а) по обычной логике, зачем его останавливать, пускай себе считает.
б) для чего он у вас используется? У вас нет синхронизатора по таймеру. Может лучше применить икону "Пауза".
в) если надо остановить, используйте икону "Действие".
3. Ваши дракон-схемы больше дают расшифровку (перевод на русский) мнемоники команд процессора, чем описывает алгоритм предметной области функционирования.
4. Ваш опыт формирования большой реальной схемы интересен и позволяет видеть некоторые проблемы в применении и.с. Drakon.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Для обсуждения и.с. DRAKOH 2009г.
СообщениеДобавлено: Суббота, 24 Январь, 2009 22:17 

Зарегистрирован: Воскресенье, 04 Ноябрь, 2007 23:01
Сообщения: 511
1. Владимир Даниелович! Вы всё поняли правильно.
Владимир Паронджанов писал(а):
..какое отношение эта проблема имеет к недостаткам языка Дракон? Какие недостатки языка выявляет Ваш пример?
Геннадий Тышов писал(а):
3. Ваши дракон-схемы больше дают расшифровку (перевод на русский) мнемоники команд процессора, чем описывает алгоритм предметной области функционирования.
Думаю, что это не проблемы языка. Перевод ассемблера на русский - это одна крайность, второй крайностью будет алгоритм из одной процедуры "Делаю всё". Необходимо найти масштаб представления, который позволит соблюсти баланс между "мне так надо"(предметник==заказчик) и "я так вижу"(программист). Тогда уйдут явные проблемы нестыковки семантик и будет обеспечен необходимый уровень конкретизации алгоритмического представления. Выбор масштаба представления - за рамками языка Дракон. Но, в принципе, ничего не мешает изменять масштаб уже имеющейся дракон-схемы. Эту тему мы пробовали потоптать полгода назад.


2. По поводу таймера:
В этом проекте он просто отщёлкивает полусекундные интервалы. И по большому счёту, для качества алгоритма безразлично останавливается таймер в прерывании или бежит дальше. Но ведь могут быть алгоритмы, которые явно требуют остановки или в которых могут быть некие side-effect, если не останавливать таймер.


3. "Вариант В" - его прочтёт только программист!

p.s.: Я же обещал наступить на все грабли..


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Для обсуждения и.с. DRAKOH 2009г.
СообщениеДобавлено: Суббота, 24 Январь, 2009 23:02 

Зарегистрирован: Воскресенье, 04 Ноябрь, 2007 23:01
Сообщения: 511
По среде:
1. Цветная версия - это классно. Будет ли настраиваться цвет линии сборки текста, а то чёрный - как-то слеповато на фоне алгоритма?
3. FormPlacement? Может в тот же инишник сохранять и последние применённые параметры?
3. Немного напрягает, каждый раз открывая лист, ставить разрешение на редактирование и показывать графику с примечаниями. Хранение последних применённых установок для листа в самом *.drt и открытие его соответственно последнему установленному для этого листа режиму исключило бы излишнее топание по меню.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Для обсуждения и.с. DRAKOH 2009г.
СообщениеДобавлено: Воскресенье, 25 Январь, 2009 02:54 

Зарегистрирован: Вторник, 27 Май, 2008 13:24
Сообщения: 155
удалить


Последний раз редактировалось dvuugl Пятница, 13 Февраль, 2009 13:47, всего редактировалось 3 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Для обсуждения и.с. DRAKOH 2009г.
СообщениеДобавлено: Воскресенье, 25 Январь, 2009 14:31 

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

При сборке текста присоединённые параметры собираются с переводом строки. Получается так:
Код:
   invoke WinMain
, hInstance,NULL,NULL, SW_SHOWDEFAULT

Было бы лучше собирать параметры без перевода строки:
Код:
   invoke WinMain, hInstance,NULL,NULL, SW_SHOWDEFAULT


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Для обсуждения и.с. DRAKOH 2009г.
СообщениеДобавлено: Воскресенье, 25 Январь, 2009 16:48 

Зарегистрирован: Вторник, 27 Май, 2008 13:24
Сообщения: 155
Рэйлвэй Каген писал(а):
По среде:
При сборке текста присоединённые параметры собираются с переводом строки.

Поддерживаю, среда не должна вставлять ни одного своего байта, оставить форматирование полностью пользователю.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Для обсуждения и.с. DRAKOH 2009г.
СообщениеДобавлено: Воскресенье, 25 Январь, 2009 22:04 

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

Лист восстановил из последнего бэкапа. Удалил сборку текста и завёл её заново.

Видимо, при удалении любой иконы с листа, необходимо проверять ещё и её использование в сборках текста..


Последний раз редактировалось Рэйлвэй Каген Вторник, 27 Январь, 2009 08:36, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Для обсуждения и.с. DRAKOH 2009г.
СообщениеДобавлено: Воскресенье, 25 Январь, 2009 23:18 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Рэйлвэй Каген писал(а):
Была удалена икона, ранее включённая в маршрут сборки текста. Далее при сборке текста выпала ошибка. Скриншот с подробностями - в прицепе. Рабочий лист был сохранён, редактор закрыт. Последующее открытие листа в редакторе завершилось неудачей - "Не прочитан файл..", затем - Access violation.

Лист восстановил из последнего бэкапа. Удалил сборку текста и завёл её заново.

Видимо, при удалении любой иконы с листа, необходимо проверять ещё и её использование в сборках текста..

1. Далее при сборке текста выпала ошибка. - В командной строке находится "75", это мало похоже на исполняемый файл, выдается сообщение "Не найден файл".
2. Обработка удаления иконы, входящей в список, есть.

Буду разбираться, спасибо за материал.
Да, при удалении иконы из списка, хранение списка нарушается.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Для обсуждения и.с. DRAKOH 2009г.
СообщениеДобавлено: Понедельник, 26 Январь, 2009 00:05 

Зарегистрирован: Воскресенье, 04 Ноябрь, 2007 23:01
Сообщения: 511
Сбой воспроизводится, начиная с DRT0015B.TMP. Откройте его в дракон-редакторе. Смотрим параметры сборки текста = Start.asm. Удаляем действие "hInstance -> eax". Смотрим параметры сборки текста(топаем на 4-ый квадрат). Всё нормально. Снова смотрим параметры сборки текста(снова топаем на 4-ый квадрат). Сбой произошёл. В дополнение к имевшемуся Start.asm появилось имя "75". Его-то и пытался запустить редактор.

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


Последний раз редактировалось Рэйлвэй Каген Вторник, 27 Январь, 2009 08:38, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Для обсуждения и.с. DRAKOH 2009г.
СообщениеДобавлено: Понедельник, 26 Январь, 2009 13:07 

Зарегистрирован: Воскресенье, 04 Ноябрь, 2007 23:01
Сообщения: 511
Немного об использовании иконы "вставка":

1. используется сейчас для обозначения вызова внешней процедуры/функции(визуально выделяет).
    программный код указывается на положенном ему месте - третий квадрат.

2. могла бы использоваться как простая врезка текста без намёка на вызовы.
    третий квадрат будет пустой,
    маршрут сборки проводить через икону и собирать результат одноимённой "сборки текста"?
    Как быть, если эта "сборка текста" на другом листе? Или отсутствует вообще?
    Есть предложение расширить функциональность такого варианта до механизма макроопределений, чтобы можно было использовать "параметры", присоединённые к вставке.
    Всё это к вопросу повторного использования кода, вместо выделения его в процедуры.
    Как отличить такую вставку, без визуализации маршрута сборки текста? Да хотя бы
    старым досовским способом - заключить её имя в проценты - %ИМЯ_ВСТАВКИ%. И с параметрами в теле макроса поступить также... Наверное можно и не так криво реализовать.

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


Последний раз редактировалось Рэйлвэй Каген Вторник, 27 Январь, 2009 08:48, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Для обсуждения и.с. DRAKOH 2009г.
СообщениеДобавлено: Понедельник, 26 Январь, 2009 14:05 

Зарегистрирован: Воскресенье, 04 Ноябрь, 2007 23:01
Сообщения: 511
Размещение даже 5-ти схем на одном листе превращается в увлекательную головоломку, поскольку при последующем обновлении среда всё равно поставит их по-своему. Вот если бы была возможность(булавка) фиксировать положение отдельных схем и с учётом этого при обновлении размещались остальные, было бы как-то повеселее.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Для обсуждения и.с. DRAKOH 2009г.
СообщениеДобавлено: Понедельник, 26 Январь, 2009 19:37 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Рэйлвэй Каген писал(а):
...
Сейчас будем заниматься, что бы решить возникшие проблемы, довести программу до стабильного состояния. Хочется сделать программу общего применения. сохранить оригинальный язык ДРАКОН, созданный и локально используемый более 20 лет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Для обсуждения и.с. DRAKOH 2009г.
СообщениеДобавлено: Понедельник, 26 Январь, 2009 19:58 

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Для обсуждения и.с. DRAKOH 2009г.
СообщениеДобавлено: Вторник, 27 Январь, 2009 11:55 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5018
Откуда: Москва
Цитата:
Попутно хотелось бы проконсультироваться у Владимира Даниеловича касательно "вставки".
Какой смысл изначально вкладывался в икону "вставка" для оригинального Дракона? В какие конструкции целевой платформы она отображалась?


Рэйлвэй Каген писал(а):
Немного об использовании иконы "вставка":

1. используется сейчас для обозначения вызова внешней процедуры/функции(визуально выделяет)...

2. могла бы использоваться как простая врезка текста без намёка на вызовы...
Как отличить такую вставку, без визуализации маршрута сборки текста? Да хотя бы
старым досовским способом - заключить её имя в проценты - %ИМЯ_ВСТАВКИ%.


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

Мне кажется, Вы поступаете СОВЕРШЕННО ПРАВИЛЬНО.
Вы рассматриваете различные варианты решения проблем и в итоге ПРОЕКТИРУЕТЕ ЯЗЫК.
Обращение к реальному опыту Дракона в нашем НПЦ вряд ли даст что-то полезное.
Это предисловие. Теперь ответ (ценность которого близка к нулю)

1. Вставка - это графическое обозначение процедуры, в точности соответствующее ГОСТу 19.701--90.

2. Согласно этому ГОСТу символ назывется (пункт 3.2.2.1) предопределенный процесс

3. В ГОСТе сказано:
Цитата:
Символ отображает предопределенный процесс, состоящий из одной или нескольких операций или шагов программы, которые определены в другом месте (подпрограмме, модуле).


4.Все процедуры у нас одинаковые, есть вызов процедуры (для любой процедуры).

5. Для нас важно деление алгоритмов на процедуры и исполнители (АП и АИ).

6. Если из исполнителя вызвать исполнитель, то это будет незаконный запуск паралельного процесса.

7. Я попытался выяснить "в какие конструкции целевой платформы отображается процедура", но это сильно связано с особенностями нашей операционной системы и слишком сложно и громоздко.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Для обсуждения и.с. DRAKOH 2009г.
СообщениеДобавлено: Среда, 28 Январь, 2009 00:02 

Зарегистрирован: Воскресенье, 04 Ноябрь, 2007 23:01
Сообщения: 511
Владимир Даниелович, спасибо.
Ваш ответ весьма полезен, особенно в части п.1.
ГОСТовское определение никоим образом не обязывает применять прямой/косвенный вызов процедуры или функции на месте предопределённого процесса. Изображение повторного использования блока кода с помощью предопределённого процесса также не противоречит ГОСТу.
Остаётся вопрос, как оставить управление сборкой текста максимально простым и в тоже время реализовать подстановки(врезки) для линейной сборки? Применённое в дракон-редакторе решение само по себе весьма универсальное. Но именно в силу его универсальности приходится вводить некоторые "соглашения о стилях". Подробнее опишу когда выложу листы проекта. Пока не очень быстро двигается.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Для обсуждения и.с. DRAKOH 2009г.
СообщениеДобавлено: Среда, 04 Февраль, 2009 10:47 

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

1. не предупреждает при выходе о несохранённом листе (допускаю возможность восстановления из TMP, но если пользователь действительно забыл сохраниться, то он не вспомнит и про откат)
2. при сборке текста выходной файл формирутся в каталоге программы, а не в каталоге листа. Это неудобно при вызове программы по расширению(двойной клик на файле *.drt) - всё валится в одну папку с дракон-редактором. Желательно, если для файла сборки не указан полный путь, то использовать путь к листу, т.е. помещать результат сборки в каталог текущего листа. Аналогично - с командным файлом - если не указан полный путь, то использовать путь к листу. Иначе - использовать указанный путь.
3. те же, что и в п.2, соображения для каталога TMP. Каталог для копий листа лучше держать в каталоге этого листа. Иначе, после работы с несколькими листами возникает излишняя путаница при откате.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Для обсуждения и.с. DRAKOH 2009г.
СообщениеДобавлено: Вторник, 10 Февраль, 2009 14:20 

Зарегистрирован: Вторник, 27 Май, 2008 13:24
Сообщения: 155
1) Требуется телепортация.
В случае больших силуэтов дракон-схема становится необозримой в одном экране монитора и теряет свою "главную полезную функцию" - сверхпонимаемость. Монитор в обозримом будущем вряд ли станет размеров со стену.
Сдвиг схемы клавишами работает, но медленно. Гораздо медленее движения глаза по большой схеме. Это решение задачи рисования, но тормозит задачу понимания. Понимаемости.
Нужен мгновенный переход, скачёк из "этой" иконы на "удалённую за горизонт" (с мгновенным же возвратом, желательно с запоминанием целого пути возвратов (стек?) для цепи скачков). Не плохо бы "прыгать" не только на другой участок листа, но и на другой лист. На другой файл. Например если икона "вставка" означает процедуру, то, скажем, парой щелчков открывается другой лист (файл) в котором эта процедура реализована. Посмотрели, может что-то исправили- и обратно. То есть заодно и многомерность. Если "вставка" участвует в сборке текста, то сборщик вставляет текст из "вставки" (inline- процедура в данном случае) и далее продолжает работу в начальном листе.
Прежде всего такая возможность нужна для икон "адрес" и "вставка". Может быть даже с не одним адресом прыжка, а с выпадающим списком адресов, формируемых пользователем.
Таким образом невозможность цельного обзора компенсируется быстрыми переходами, эти быстрые "скачки-телепортации" заменяют быстрые движения глаза по большой картине.

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


Последний раз редактировалось dvuugl Среда, 11 Февраль, 2009 11:10, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Для обсуждения и.с. DRAKOH 2009г.
СообщениеДобавлено: Вторник, 10 Февраль, 2009 14:44 

Зарегистрирован: Воскресенье, 28 Май, 2006 22:12
Сообщения: 33
dvuugl писал(а):
1) Требуется телепортация.".

Из всего, что я прочитал, сюда лучше всего подходит ZUI в духе А2!


Последний раз редактировалось Wlad Вторник, 10 Февраль, 2009 14:48, всего редактировалось 1 раз.

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

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


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

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


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

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