DRAKON.SU

Текущее время: Вторник, 19 Март, 2024 12:46

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




Начать новую тему Ответить на тему  [ Сообщений: 61 ]  На страницу 1, 2, 3, 4  След.
Автор Сообщение
 Заголовок сообщения: мысли вслух
СообщениеДобавлено: Пятница, 22 Март, 2013 22:58 

Зарегистрирован: Пятница, 22 Март, 2013 14:42
Сообщения: 9
Откуда: СПб
Что-то почитал про ДРАКОН, что-то поделал, хочется высказать общее впечатление, а не знаю куда. Поэтому решил тему создать.

Во-первых (не по порядку, а как в голову приходит), Дональд Кнут в своё время выдвинул концепцию literate programming. Заключается она в том, что программы в первую очередь для людей, а не для компьютеров, потому о том, чтобы людям их читать можно было нужно специально заботиться. Его вариант называется WEB, из одного исходника генерируется TeX документ, который в конечном итоге для человека и программа для компилятора.

Вот есть в этом какая-то сермяжная правда по-моему. Когда исходно работа происходит с текстом, это даёт ощущение надёжности. Текст можно хоть на бумаге напечатать и потом снова в машину вбить. Текст можно менять и сравнивать изменение версий, о чём несколько человек говорило. А конечный результат при этом можно генерировать из текста в двух вариантах. В графике для людей, чтобы и самому смотреть на него и показывать можно было. И второй конечный вариант из того же исходника --- программа.

Если делать графику на основе TeX или metapost (который как раз для генерации векторной графики из текста создавался аспирантом Кнута из разработанного Кнутом metafonta), то можно было бы пользоваться всеми наработками, доступными под ТеХом, формулами, картинками и т.д.

Теперь про существующие реализации. Работаю я в линуксе и с языком python. Скачал как Drakon Editor, так и ИС. Опыт работы, правда, небольшой пока что. И тем не менее.

По поводу Drakon Editor. Основное, что вызывает у меня внутреннее напряжение, так это отсутствие исходного текста, поскольку работа сохраняется в бинарный файл. И второе, это скрытость алгоритма генерации программы. Если по-мелочи, у меня не получилось создать силуэт без ветки "выход" (или как она там называется) и я не нашёл как передвигать схему как целое вправо-влево.

Если говорить про ИС, то я с ней практически не работал, запускал только под wine. Она запускается и пункты меню по-русски пишет, это хорошо. На что обратил внимание: справку почему-то у меня посмотреть не получилось. И второе, когда захожу в "Справка/установить/ваша установка" среди прочего читаю "Ознакомительный период закончился." Где-то тоже какая-то нестыковка. Хотя вроде бы это ни на что не влияет.

В целом идея мне очень нравится и реализации обе нравятся. Каждая из них находит свою аудиторию, я думаю. Свою реализацию мне конечно не потянуть.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мысли вслух
СообщениеДобавлено: Суббота, 23 Март, 2013 09:14 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 234
Откуда: Украина, Киев
Давно предлагал формат XML для хранения ДРАКОН документов, но разработчикам этот формат по непонятным причинам не интересен. А его уже более-менее можно читать человеку и сравнивать внесённые изменения.
Видимо придётся таки делать свою реализацию редактора :)
viewtopic.php?f=79&t=3627


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мысли вслух
СообщениеДобавлено: Суббота, 23 Март, 2013 21:47 

Зарегистрирован: Пятница, 22 Март, 2013 14:42
Сообщения: 9
Откуда: СПб
Ярослав Романченко писал(а):
Давно предлагал формат XML для хранения ДРАКОН документов, но разработчикам этот формат по непонятным причинам не интересен.


Мне тоже, честно говоря, не очень интересен. По-моему XML здесь лишняя сущность.

Текстовое и графическое выражение алгоритма должно однозначно соответствовать друг другу. Односторонних трансляторов из графики в текст уже целых два, а обратного нет пока что.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мысли вслух
СообщениеДобавлено: Суббота, 23 Март, 2013 22:24 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Сергей Метелёв писал(а):
Текстовое и графическое выражение алгоритма должно однозначно соответствовать друг другу.
Предложите свой вариант.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мысли вслух
СообщениеДобавлено: Суббота, 23 Март, 2013 22:48 

Зарегистрирован: Пятница, 22 Март, 2013 14:42
Сообщения: 9
Откуда: СПб
Ильченко Эдуард писал(а):
Сергей Метелёв писал(а):
Текстовое и графическое выражение алгоритма должно однозначно соответствовать друг другу.
Предложите свой вариант.


Вариант соответствия? Так есть же он, если я правильно понимаю. Например в книге "Учись писать, читать и понимать алгоритмы" коротенько о нём говорится, на странице 73, в главе 6, параграф 6 "Как описать силуэт с помощью текстового языка (псевдокода)", правда не очень подробно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мысли вслух
СообщениеДобавлено: Воскресенье, 24 Март, 2013 09:31 

Зарегистрирован: Воскресенье, 06 Апрель, 2008 14:43
Сообщения: 1657
Сергей Метелёв писал(а):
Если говорить про ИС, ...

На что обратил внимание: справку почему-то у меня посмотреть не получилось.

И второе, когда захожу в "Справка/установить/ваша установка" среди прочего читаю "Ознакомительный период закончился." Где-то тоже какая-то нестыковка. Хотя вроде бы это ни на что не влияет.
1. Файл справки имеет имя "Dragon.chm", должен находится в папке программы.
.CHM - исполняемая справка в формате HTML MicroSofr.

Для получения доступа к справке из меню и при непосредственном выборе файла справки, на компьютере должно быть настроено сопоставление типов файлов и программ. Для типа ".chm" можно использовать ИЕ или другой интернет обозреватель.

2. Причина ясна из сообщения "Ознакомительный период закончился.".
Необходимо оформить установку программы на данный компьютер или перенести программу на другой.


Последний раз редактировалось ==== Воскресенье, 24 Март, 2013 10:11, всего редактировалось 4 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мысли вслух
СообщениеДобавлено: Воскресенье, 24 Март, 2013 09:45 

Зарегистрирован: Понедельник, 09 Ноябрь, 2009 17:29
Сообщения: 904
Откуда: Россия, Питер
Сергей Метелёв писал(а):
Вариант соответствия? Так есть же он, если я правильно понимаю. Например в книге "Учись писать, читать и понимать алгоритмы" коротенько о нём говорится, на странице 73, в главе 6, параграф 6 "Как описать силуэт с помощью текстового языка (псевдокода)", правда не очень подробно.
Как бы ещё из псевдокода машкод получить ... А из теста ЯП текст псевдокода ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мысли вслух
СообщениеДобавлено: Воскресенье, 24 Март, 2013 10:36 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 234
Откуда: Украина, Киев
Сергей Метелёв писал(а):
Вариант соответствия? Так есть же он, если я правильно понимаю. Например в книге "Учись писать, читать и понимать алгоритмы" коротенько о нём говорится, на странице 73, в главе 6, параграф 6 "Как описать силуэт с помощью текстового языка (псевдокода)", правда не очень подробно.
В том-то и дело, что не очень подробно. А для того что-бы реализовать то о чём вы пишете нужно очень подробно и желательно в (Е)БНФ форме. Потом нужно строить сканер, парсер по этой (Е)БНФ форме, синтаксический анализатор...
Парсер XML писать не надо, полно готовых реализаций.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мысли вслух
СообщениеДобавлено: Воскресенье, 24 Март, 2013 22:25 

Зарегистрирован: Пятница, 22 Март, 2013 14:42
Сообщения: 9
Откуда: СПб
Геннадий Тышов писал(а):
1. Файл справки имеет имя "Dragon.chm", должен находится в папке программы. .CHM - исполняемая справка в формате HTML MicroSofr.


Мой линукс отчего-то не переваривает его. Есть в линуксе программа xchm, она его вообще грузить отказалась. А если запускать Dragon.exe с помощью wine, то справку можно открыть но нельзя прочесть. ie, который входит в комплект wine тоже открывать справку не захотел. firefox тоже не знает, что c этим файлом делать. Думаю, что потратив какое-то количество времени можно эту проблему решить, пока что нет сил и времени ковыряться.

Геннадий Тышов писал(а):
2. Причина ясна из сообщения "Ознакомительный период закончился.". Необходимо оформить установку программы на данный компьютер или перенести программу на другой.


Тут опять по-видимому дело в том, что среда для программы не родная и у меня она работает с помощью wine

Но это наверное не так важно. Главное, что программа с помощью wine запускается и вроде как работает. Пункты меню на русском читаются, силуэт создать получилось, дальше не пробовал. Приёмы работы можно уяснить, почитав местный форум, например.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мысли вслух
СообщениеДобавлено: Воскресенье, 24 Март, 2013 22:38 

Зарегистрирован: Пятница, 22 Март, 2013 14:42
Сообщения: 9
Откуда: СПб
Ярослав Романченко писал(а):
В том-то и дело, что не очень подробно. А для того что-бы реализовать то о чём вы пишете нужно очень подробно ...


Ильченко Эдуард писал(а):
Как бы ещё из псевдокода машкод получить ... А из теста ЯП текст псевдокода ...


Насколько я понимаю, возможность однозначно переводить графику в текст и обратно и есть главное достижение, которое позволяет использовать ДРАКОН в реальной жизни. То есть можно просто придумать для каждой пиктограммы соответствующее слово, и все дела. Подробно, правда, я не вдумывался.

Последующий перевод из псевдоязыка в язык, который уже будет исполняться, это да, интересно и нетривиально. Мне представляется, что можно было бы каждой ветке сопоставить функцию, например. Начинка вроде не вызывает проблем. Циклы, условные переходы, можно однозначно переводить из псевдоязыка в язык.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мысли вслух
СообщениеДобавлено: Воскресенье, 24 Март, 2013 23:19 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 234
Откуда: Украина, Киев
Сергей Метелёв писал(а):
Думаю, что потратив какое-то количество времени можно эту проблему решить, пока что нет сил и времени ковыряться.
.CHM файлы можно декомпилировать программой HTML Help Workshop и после этого просматривать в любом браузере как HTML. Для этого нужно скачать htmlhelp.exe по ссылке http://www.microsoft.com/en-us/download ... x?id=21138 , установить, запустить, выбрать пункт меню File -> Decompile...
Сергей Метелёв писал(а):
Насколько я понимаю, возможность однозначно переводить графику в текст и обратно и есть главное достижение, которое позволяет использовать ДРАКОН в реальной жизни.
Вы об этом где прочитали???


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мысли вслух
СообщениеДобавлено: Понедельник, 25 Март, 2013 05:33 

Зарегистрирован: Пятница, 22 Март, 2013 14:42
Сообщения: 9
Откуда: СПб
Ярослав Романченко писал(а):
Вы об этом где прочитали???


Можно было предположить во-первых. Если бы программы получались двусмысленные, то какая от них польза была бы?

Отчасти это прямо сказано в вышеупомянутой книге на странице 75. "Сравнивая две формы языка ДРАКОН (графическую и текстовую), можно заметить что соответствующие алгоритмы (рис. 34 и 36) эквивалентны. Однако графический язык, несомненно, более нагляден и доходчив." Обобщения правда не сделано прямо здесь, но я не вижу оснований сомневаться.

Интересно, чем по-Вашему занимался Институт прикладной математики им. М. В. Келдыша, если не обоснованием, в частности, однозначности соответствия и возможности запрограммировать любой алгоритм, то есть достаточности средств языка?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мысли вслух
СообщениеДобавлено: Понедельник, 25 Март, 2013 09:09 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5844
Откуда: Москва
1. Сергей, графика дракон-схемы математически строго и автоматически переводится в текст.

2. Обратное преобразование (из текста в графику) более сложная задача. Я об этом нигде и никогда не писал (как мне кажется).

3. Но. Многие специалисты на форумах подчеркивают важность и актуальность этой проблемы (пункт 2). Я не готов обсуждать эту проблему (из-за недостатка знаний).

4. Предположим, задана программа на языке программирования. Требуется преобразовать ее в дракон-схему (то есть выполнить преобразование "из текста в графику"). Это очень интересная задача. И очень не простая.
В качестве комментария могу сказать лишь одно:
Цитата:
В тексте (на любом языке программирования, например, на Си, АSM и т.д.) отсутствует деление алгоритма на ветки. Следовательно, (чтобы преобразовать текст программы в дракон-схему "силуэт") деление алгоритма на ветки программист должен задавать вручную.


Последний раз редактировалось Владимир Паронджанов Понедельник, 25 Март, 2013 10:32, всего редактировалось 5 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мысли вслух
СообщениеДобавлено: Понедельник, 25 Март, 2013 09:13 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 234
Откуда: Украина, Киев
Вот, вот. Сергей, перечитайте это место несколько раз, распечатайте, повесьте на стену, и время от времени перечитывайте :)
Владимир Паронджанов писал(а):
2. Обратное преобразование (из текста в графику) более сложная задача. Я об этом нигде и никогда не писал (как мне кажется).
Хотя, задача хоть и сложная, но наверное выполнимая.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мысли вслух
СообщениеДобавлено: Понедельник, 25 Март, 2013 11:07 

Зарегистрирован: Пятница, 22 Март, 2013 14:42
Сообщения: 9
Откуда: СПб
Так я ж не говорю о том, чтобы преобразовывать произвольный текст на произвольном языке в ДРАКОН-схему.

Я говорю о том, чтобы эквивалентный ДРАКОН-схеме текст, использующий текстовые ДРАКОН-операторы, сделать первичным документом и на его основе строить схему. Исходником сделать текст, конечный результат "неживая" картинка. При необходимости тот же текст можно преобразовывать в программу на конкретном языке программирования. Один и тот же текст, двумя разными преобразованиями.

Если говорить о связке текстового и визуального представления ДРАКОН, преимущества и недостатки такого подхода полностью аналогичны тем, что возникают при работе с ТеХ по сравнению с визуальными редакторами.

Если нужно преобразование в программу на каком-то конкретном языке программирования, то потребуется явно определять преобразование операторов из текстовых ДРАКОН-операторов в операторы конкретного языка, это понятно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мысли вслух
СообщениеДобавлено: Понедельник, 25 Март, 2013 11:21 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 234
Откуда: Украина, Киев
Вы наверное далеки от программирования... Вы считаете, что Владимир Паронджанов имел здесь в виду произвольный язык?
Владимир Паронджанов писал(а):
2. Обратное преобразование (из текста в графику) более сложная задача. Я об этом нигде и никогда не писал (как мне кажется).
Вы конечно отчасти правы, в данном случае преобразование в графику и из специального языка и из произвольного будет задачей практически одинаковой, но и одинаково довольно сложной.
Хранить графику чрезвычайно просто, видится нерациональной сложная процедура чтения графики из текстового представления в псевдокоде.
Кроме того в ДРАКОН-технологии исходником, который подвергается редактированию, является именно графика. В текстовое представление лезть вообще запрещено :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мысли вслух
СообщениеДобавлено: Понедельник, 25 Март, 2013 12:21 

Зарегистрирован: Пятница, 22 Март, 2013 14:42
Сообщения: 9
Откуда: СПб
Ярослав Романченко писал(а):
Вы конечно отчасти правы, в данном случае преобразование в графику и из специального языка и из произвольного будет задачей практически одинаковой, но и одинаково довольно сложной.


Наверное. В конце концов Кнут где-то говорил, что ТеХ был проектом, в котором он больше всего недооценил необходимые трудозатраты. Он по-моему лет 10 на него потратил. А казалось бы что там сложного, буквы в слова, слова в строки, строки в страницу и всё. Хотя так, на вскидку, не просматривается где будет затык. Вроде всё прозрачно и более-менее понятно.

Ярослав Романченко писал(а):
Хранить графику чрезвычайно просто, видится нерациональной сложная процедура чтения графики из текстового представления в псевдокоде.


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

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

Ярослав Романченко писал(а):
Кроме того в ДРАКОН-технологии исходником, который подвергается редактированию, является именно графика. В текстовое представление лезть вообще запрещено :)


У Дональда Кнута в его literate programming есть то же самое ограничение. Означает оно, что текст программы, сгенерированный из WEB исходника, не подлежит правке, можно править только исходник. В нашем случае пока представления программы эквивалентны (существует текстовое ДРАКОН-представление эквивалентное графическому), в силу эквивалентности нет разницы что считать исходником, текст или картинку. Но когда из ДРАКОН-представления получен программный текст, он уже не подлежит правке, только компиляции или исполнению.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мысли вслух
СообщениеДобавлено: Понедельник, 25 Март, 2013 13:38 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 234
Откуда: Украина, Киев
Сергей Метелёв писал(а):
Например, имя переменной человек решил поменять во всей программе. Как он это будет делать на схеме, возьмём хоть эдитор, хоть ИС? Специальные средства должны быть предусмотрены. Если их нет, то придётся каждый блок открывать, редактировать, закрывать.
Это задача тривиальная! Сам подобный функционал реализовывал в одном из своих проектов. Если этого нет в ИС или в Эдиторе, это вопрос к авторам соответствующих продуктов. Коды ИС закрыты, коды Эдитора открыты но представлены на каком-то недо-говно-языке tcl с которым разбираться у меня нет ни времени ни желания ни сил.
Проблема в том, что по-прежнему нет открытой реализации ДРАКОН среды которую было-бы интересно развивать и поддерживать большому сообществу разроботчиков. Поэтому остаётся довольствоваться теми "наработками" которые есть.
Сергей Метелёв писал(а):
В нашем случае пока представления программы эквивалентны (существует текстовое ДРАКОН-представление эквивалентное графическому), в силу эквивалентности нет разницы что считать исходником
Но такая постановка вопроса по-моему ставит под сомнение необходимость существования и текстового представления ДРАКОНа и самого ДРАКОНа, поскольку редактировать текстовое представление ДРАКОНа это всё-равно, что редактировать программу на любом другом языке программирования - теряется всякая эргономичность и первоначальный замысел ДРАКОНа!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мысли вслух
СообщениеДобавлено: Понедельник, 25 Март, 2013 13:57 
Аватара пользователя

Зарегистрирован: Пятница, 11 Май, 2007 21:57
Сообщения: 234
Откуда: Украина, Киев
Эдитор Степана Митькина мало того-что на tcl, так ещё и кардинально отходит от технического задания на редактор, данного Паронджановым в его книге "Как улучшить работу ума", и формат данных хоть и в базе данных SQLite но весьма странный! Поддерживать и развивать такое никто пожалуй не захочет!
Единственное преимущество ИС Дракон, что она хоть как-то соответствует тех. заданию Паронджанова. На сколько соответствует, не знаю, это наверное вопрос к Паронджанову и Тышову :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: мысли вслух
СообщениеДобавлено: Понедельник, 25 Март, 2013 16:38 
Аватара пользователя

Зарегистрирован: Вторник, 04 Октябрь, 2011 17:45
Сообщения: 585
Сергей Метелёв писал(а):
По поводу Drakon Editor.
Основное, что вызывает у меня внутреннее напряжение, так это отсутствие исходного текста, поскольку работа сохраняется в бинарный файл.

Задача ДРАКОНа - облегчить внутреннее напряжения. :)
Причина, по которой DRAKON Editor хранит файлы в формате SQLite, - возможность сверхбыстрого
сохранения даже больших файлов.
Это позволяет избавиться от необходимости нажимать кнопку "Сохранить".
Каждое действие сразу записывается на диск. Это надёжно и удобно.
Но, видимо, придётся ввести и сохранение в текстовый формат.

Цитата:
Если по-мелочи, у меня не получилось создать силуэт без ветки "выход" (или как она там называется) и

DRAKON Editor пока не позволяет создавать силуэт без иконы "Конец". Это отклонение от стандарта. Будем исправлять.

Цитата:
я не нашёл как передвигать схему как целое вправо-влево.

1. Драг мышкой с нажатым колёсиком. На макбуке - драг двумя пальцами.
2. Колёсико мышки с шифтом или без.

Цитата:
Например, имя переменной человек решил поменять во всей программе. Как он это будет делать на схеме

Ctrl+F или кнопка "Search".
Можно заменять текст сразу во всех диаграммах внутри файла.
Вложение:
search.png
search.png [ 8.65 КБ | Просмотров: 20739 ]


Сергей, спасибо за замечания!


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

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


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

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


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

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