DRAKON.SU

Текущее время: Воскресенье, 21 Апрель, 2024 02:19

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




Начать новую тему Ответить на тему  [ Сообщений: 74 ]  На страницу Пред.  1, 2, 3, 4
Автор Сообщение
СообщениеДобавлено: Пятница, 02 Июнь, 2023 10:15 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5848
Откуда: Москва
Comdiv писал(а):
составим список целей
Спасибо, это очень важно.

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

Цель 2. Для каждой одиночной и составной графической фигуры языка ДРАКОН должен существовать текстовый формат.

Цель 3. "Сделать формат как потенциальную часть профессионального инструмента настолько хорошо, насколько получится".

Цель 4. Текстовый формат должен позволять использовать систему контроля версий и diff (для просмотра изменений между ревизиями). При этом нужно устранить указанную в цели 1 множественность текстовых представлений одной и той же составной графической фигуры.

Цель 5. "4. Для описания неформальных алгоритмов".

Цель 6. "Для описания исполняемого кода".

Цель 7. "6. Для генерации в исполняемый код".

Цель 8. "7. С возможностью писать и понимать код напрямую из формата хранения. Это один из популярных способов создания схем, предпочтительный для многих разработчиков".

Цель 9. "8.1. Наилучший для понятности синтаксис".

Цель 10. "8.2. Максимальное соответствие одному из выбранных для генерации языков(не отменяет связь с другими языками). В идеале сохраняемая схема могла бы напрямую быть частью исходного кода без дополнительной генерации или даже извлекаться для отображения из независимо написанного исходного кода".

================

Примечание

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

Comdiv писал(а):
нельзя разобрать, какой схеме соответствует текст

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


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

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5848
Откуда: Москва
Comdiv писал(а):
Но это же не исправленный вариант - } после операторы1 преждевременна, она должна быть перед последним else. m1 не нужна на схеме, так как она имеет чисто техническое значение в текстовом формате.
Спасибо за указание на ошибки.

Comdiv писал(а):
Вы ничего не ответили про 12-15, которые составлены по другим правилам, что усложняет разбор.

Считаю, что разбор в данном случае не следует учитывать. Специалисты по компиляции сделают все, что нужно.
Задача пунктов 12-15 показать, что в графике можно удалить знаки конъюнкции, а в тексте они могут сохраняться.

Исправленный вариант:
Вложение:
03 if else goto      .png
03 if else goto .png [ 301.37 КБ | Просмотров: 1220 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 04 Июнь, 2023 14:43 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 133
Откуда: Киев
Владимир Паронджанов писал(а):
Считаю, что разбор в данном случае не следует учитывать. Специалисты по компиляции сделают все, что нужно.
Задача пунктов 12-15 показать, что в графике можно удалить знаки конъюнкции, а в тексте они могут сохраняться.
Если задача упрощать разбор не стоит, а есть такой расчёт на специалистов компиляции, то где граница этого расчёта? Ведь в пределе можно постановить, что исходным форматом для редактора может быть сам целевой язык, а ДРАКОН-редактор - это такой специфический редактор кода.


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

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5848
Откуда: Москва
Comdiv писал(а):
Если задача упрощать разбор не стоит, а есть такой расчёт на специалистов компиляции, то где граница этого расчёта?
На меня произвели сильное впечатление слова tonyk, что для описания языка ДРАКОН необходимо иметь текстовый формат.

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 05 Июнь, 2023 00:24 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 133
Откуда: Киев
Владимир Паронджанов писал(а):
Отсюда я сделал вывод, что нужно создать наилучшее из возможных самодостаточное описание языка. Самодостаточное в том смысле, что независимое от пожеланий разработчиков компилятора.
Вот целевой язык относительно редактора ДРАКОН самодостаточен по самое не могу.

Цитата:
Не язык должен подлаживаться под пожелания разработчиков компилятора, а наоборот, компилятор следует строить, учитывая особенности языка.
Это всегда было выдачей желаемого за действительное. Любой успешный язык строился от пожеланий разработчиков исполнителей языка. Почему? Потому что можно бесконечно легко создавать требования, которые бесконечно сложно выполнить, хотя для неуспешности достаточно и просто недостаточного соотношения полезности к сложности. С другой стороны, нельзя подгонять формат под язык С, который сам был разработан под компилятор(изначально языка B, который тоже был разработан похожим образом), и утверждать, что формат не подстраивается под компилятор. Просто это подстройка под другой компилятор, созданного под совершенно иные задачи. А утверждение, что эта подстройка ещё и нацелена на создание наилучшего из возможных, - это уже совсем надругательство над здравым смыслом.


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

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5848
Откуда: Москва
Comdiv, спасибо за критические замечания.
Comdiv писал(а):
можно бесконечно легко создавать требования, которые бесконечно сложно выполнить
Не совсем так. Во всех моих книгах, особенно в книгах:

1. Алгоритмические языки и программирование: ДРАКОН учебное пособие.
2. Учись писать, читать и понимать алгоритмы.

подробно изложены основные требования к языку и способы их реализации в дракон-конструкторе:

1. разработан специальный математический аппарат — визуальное логическое исчисление (исчисление икон).
2. графический синтаксис языка ДРАКОН представляет собой исчисление икон.
3. Исчисление икон реализовано во внутренних алгоритмах ДРАКОН-конструктора.
4. Визуальная алгебра логики (без использования логических связок).

Нельзя говорить, что это "бесконечно сложно выполнить". Это уже выполнено в существующих дракон-редакторах и успешно работает.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 05 Июнь, 2023 13:29 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5848
Откуда: Москва
Comdiv прошу проверить позиции 17-21
Вложение:
04 if else Схема ИЛИ      .png
04 if else Схема ИЛИ .png [ 287.48 КБ | Просмотров: 1150 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 05 Июнь, 2023 14:19 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5848
Откуда: Москва
Comdiv прошу проверить п. 22-27
Вложение:
05 Циклы и switch    .png
05 Циклы и switch .png [ 257.83 КБ | Просмотров: 1143 ]


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 05 Июнь, 2023 21:37 

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

Цитата:
Нельзя говорить, что это "бесконечно сложно выполнить"
Вы придрались к формулировке, хотя она относилась не к этому и суть была донесена вполне ясно, особенно словами, которые следовали сразу после - "для неуспешности достаточно и просто недостаточного соотношения полезности к сложности".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 05 Июнь, 2023 21:57 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 133
Откуда: Киев
Владимир Паронджанов писал(а):
Comdiv прошу проверить позиции 17-21, 22-27
Не вижу ошибок. Но проблема этих, а также более ранних примеров, что вместо того, чтобы один раз указать, что сравнение с Нет около вертикального направления эквивалентно отрицанию условия, Вы комбинаторно перебираете одинаковые по сути конструкции, что приводит к вредному раздутию примеров. Желательно устранить все дубликаты, тем самым избавиться и от ошибок в условиях, которые есть в некоторых из них (до 17-го).


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

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5848
Откуда: Москва
Comdiv писал(а):
[Необходимо] избавиться и от ошибок в условиях, которые есть в некоторых из них (до 17-го).

Исправил ошибки в пунктах 1-16. Выкладываю исправленные материалы.
Вложение:
01 if 6 штук     .png
01 if 6 штук .png [ 227.07 КБ | Просмотров: 1119 ]

Вложение:
02 if else if else     .png
02 if else if else .png [ 317.72 КБ | Просмотров: 1119 ]

Вложение:
03 if else goto Схема И     .png
03 if else goto Схема И .png [ 301.37 КБ | Просмотров: 1119 ]


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

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 133
Откуда: Киев
Владимир, после того, как Вы прокомментировали отдельные элементы, можно вернуться к обсуждению целей.

3 - это цель целей, поэтому она странно смотрится посреди более частных 1 и 2.

9 и 10 противоречат друг другу. Либо наилучший для чтения и записи, либо выкидыш синтаксиса C.

Странно смотрится 4 с противоречием 1-му. Также отмечу, что устранение неоднозначности записи противоречит и разнообразию частных форм, которые прыгают от одной к другой. В данном случае усложнение разбора хранимого формата приводит и к усложнению разбора изменений посредством сравнения текстовых форм. Сравните
Код:
cat > 16.c << END
if (условие1) {
    операторы1
    if (условие2) {
        операторы2
    } else
       goto m1;
} else m1: {
    операторы3
}
END

cat > 12.c << END
if (условие1) {
    if (условие2) {
        операторы2
    } else
       goto m1;
} else m1: {
    операторы3
}
END

cat > 12_and.c << END
if (условие1 && условие2) {
    операторы2
} else {
    операторы3
}
END

diff 12.c 16.c
diff 12_and.c 16.c


diff 12.c 16.c
Код:
1a2
>     операторы1


diff 12_and.c 16.c
Код:
1,3c1,7
< if (условие1 && условие2) {
<     операторы2
< } else {
---
> if (условие1) {
>     операторы1
>     if (условие2) {
>         операторы2
>     } else
>        goto m1;
> } else m1: {


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Суббота, 17 Февраль, 2024 21:20 

Зарегистрирован: Среда, 05 Декабрь, 2018 08:22
Сообщения: 5
[quote="Владимир Паронджанов"][quote="Comdiv"] составим список целей[/quote]
Цель 1. Текстовый формат одиночной и составной фигуры языка ДРАКОН должен однозначно определять графическое представление этой фигуры. При этом возможно несколько текстовых представлений одной и той же составной графической фигуры.
[/quote]

Если в DRAKON Editor Степана Митькина выделить иконки диаграммы, скопировать и вставить в текстовый редактор, например в Notepad++, то вставится текст вида:

DRAKON 1.31 items {{104 beginend file_Extension {} {} 1 320 250 80 20 60 0} {105 beginend End {} {} 1 320 870 50 20 60 0} {106 vertical {} {} {} 1 320 270 0 580 0 0} {107 horizontal {} {} {} 1 320 250 200 0 0 0} {108 action {array $files
string $sku
string $property} {} {} 1 520 250 90 40 0 0} {123 action {/*
составить имя файла,
найти его,
вернуть расширение
*/} {} {} 1 320 370 180 60 0 0} {152 loopstart {foreach $file; $files} {} {} 1 320 530 180 20 60 0} {153 loopend {} {} {} 1 320 720 180 20 60 0} {155 if {mb_strpos($file, $sku) !== false} {} {} 1 320 590 180 20 40 0} {156 vertical {} {} {} 1 540 590 0 90 0 0} {157 horizontal {} {} {} 1 320 680 220 0 0 0} {158 action {$parts = explode('.', $file);

$extension = end($parts);} {} {fg #000000 bg #aaffaa} 1 780 710 160 40 0 0} {159 if {mb_strpos($file, $property) !== false} {} {} 1 540 640 210 20 30 0} {160 vertical {} {} {} 1 780 640 0 130 0 0} {161 horizontal {} {} {} 1 320 770 460 0 0 0} {163 action {return $extension;} {} {} 1 320 810 180 20 0 0} {164 action {$extension = '';} {} {} 1 320 470 180 20 0 0}}

если этот текст вставить в DRAKON Editor, то вставится диаграмма.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 18 Февраль, 2024 12:35 

Зарегистрирован: Воскресенье, 24 Февраль, 2008 15:32
Сообщения: 5848
Откуда: Москва
pme писал(а):
Если в DRAKON Editor Степана Митькина выделить иконки диаграммы, скопировать и вставить в текстовый редактор, например в Notepad++, то вставится текст вида....................

Спасибо за замечание.
Какие выводы вы делаете из вашего сообщения? Просьба ответить подробно.


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

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


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

Сейчас этот форум просматривают: Google [Bot] и гости: 2


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

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