DRAKON.SU

Текущее время: Понедельник, 29 Апрель, 2024 20:19

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




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
СообщениеДобавлено: Понедельник, 09 Август, 2010 22:38 

Зарегистрирован: Понедельник, 09 Август, 2010 22:28
Сообщения: 128
Я нарисовал схему функции на комбинированном языке ДРАКОН-Lisp. В emacs-lisp есть оператор condition-case. Выражение:

(condition-case nil
(read prop)
(error prop))

получает строку prop. функция read пытается преобразовать ее из строкового формата в Lisp-выражение. Если произошла ошибка (prop невозможно преобразовать), то condition-case вернет непреобразованную prop.
Например:

prop

"(1 2 3)" -> (1 2 3) - здесь строка преобразована в список
"((1 2 3)" -> "((1 2 3)" - здесь преобразовать нельзя, т.к. скобки не сбалансированы.

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


Вложения:
Комментарий к файлу: Полная схема функции
org-collector.pdf [6.8 КБ]
Скачиваний: 435
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 17 Август, 2010 04:54 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
usr345 в viewtopic.php?p=50456#p50456 писал(а):
"(1 2 3)" -> (1 2 3) - здесь строка преобразована в список
"((1 2 3)" -> "((1 2 3)" - здесь преобразовать нельзя, т.к. скобки не сбалансированы.

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 24 Август, 2010 09:20 

Зарегистрирован: Понедельник, 09 Август, 2010 22:28
Сообщения: 128
cond - это не переменная, а ключевое слово в Lisp типа switch из С++.

Цитата:
формат объявлений хорошо бы уточнить, раз язык "нетиповой"


Сделаю.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 24 Август, 2010 10:35 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
[quote="usr345"]cond - это не переменная, а ключевое слово в Lisp типа switch из С++.

А-а, так это маршрутный оператор... получается, он должен кодироваться графикой иконы (в данном случае - Выбор)... правда, это в предположении, что у нас есть полноценный стандарт дракон-ЛИСП и редактор-транслятор :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 24 Август, 2010 17:20 

Зарегистрирован: Понедельник, 09 Август, 2010 22:28
Сообщения: 128
Новая версия схемы


Вложения:
org-collector.pdf [6.94 КБ]
Скачиваний: 389
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Ещё о визуальном синтаксисе
СообщениеДобавлено: Пятница, 03 Сентябрь, 2010 04:55 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
usr345 писал(а):
Новая версия схемы

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


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

Зарегистрирован: Понедельник, 09 Август, 2010 22:28
Сообщения: 128
Драконограф, покажите, пожалуйста, как использовать икону Заголовок с параметрами - у Паронджанова в книге не нашел. На вашем сайте долго искать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 03 Сентябрь, 2010 20:01 

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

Конкретно можно посмотреть в графчасти этого примера - там между визуалами дракон-инструкции параметры передаются. Наверное, поиск по сайту облегчил бы предметный указатель - может быть, когда-нибудь что-то такое и появится :wink:
Что касается заголовка с типом - этого и там нет, только сейчас придумал, когда с визуализацией Оберон-программ стал разбираться :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 14 Май, 2012 20:27 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5852
Откуда: Москва
Даю ссылку на работу usr345 по Латех.

Полное название
Цитата:
Создание дракон-схем на базе LaTeX пакета pgf/tikz

http://dxdy.ru/topic43519.html

Возможно, кому-нибудь пригодится


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

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 1443
Кстати, по работе в ЛаТеКс есть такой ресурс: http://eskdx.org.ua/. Там об оформлении документов по ЕСКД - но также разбираются некоторые особенности языка.


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

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


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

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


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

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