OberonCore
https://forum.oberoncore.ru/

Семантический редактор
https://forum.oberoncore.ru/viewtopic.php?f=93&t=1542
Страница 15 из 34

Автор:  Владислав Жаринов [ Воскресенье, 28 Август, 2011 21:49 ]
Заголовок сообщения:  Re: Семантический редактор

Валерий Лаптев писал(а):
...
2. Не заменить - дополнить.

4. Дерево уже было - пока убрали. Но вообще справа - место для проекта

6. Об этом думаем.
Вот кстати объявления (как и структуру проекта) тоже можно визуализировать. Была такая среда для Паскаля (см. в этом посте) - там это хоть и выносилось на отдельный экран (Symbols), но шло текстом. А можно и графово.

А вообще уже интересно посмотреть...

Автор:  Валерий Лаптев [ Понедельник, 29 Август, 2011 10:48 ]
Заголовок сообщения:  Re: Семантический редактор

Драконограф писал(а):
Валерий Лаптев писал(а):
...
2. Не заменить - дополнить.

4. Дерево уже было - пока убрали. Но вообще справа - место для проекта

6. Об этом думаем.
Вот кстати объявления (как и структуру проекта) тоже можно визуализировать. Была такая среда для Паскаля (см. в этом посте) - там это хоть и выносилось на отдельный экран (Symbols), но шло текстом. А можно и графово.

А вообще уже интересно посмотреть...

Насчет подсистем - Пока принципиальное решение - как в ББ. То есть проект = подстсема = новая папка, где собираются все модули проекта.
На мой взгляд - это идеальное решение.
Создавать ли отдельный файл проекта - даже пока не думали об этом. Понятно, что представление его в виде xml - легко реализуется, поэтому дальше пока и не думали.

Автор:  Сергей Прохоренко [ Понедельник, 29 Август, 2011 19:19 ]
Заголовок сообщения:  Re: Семантический редактор

Валерий Лаптев писал(а):
Насчет подсистем - Пока принципиальное решение - как в ББ. То есть проект = подстсема = новая папка, где собираются все модули проекта.


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

Интерфейс я бы сделал менее контрастным, например, как в CPIde.

Автор:  Валерий Лаптев [ Понедельник, 29 Август, 2011 19:53 ]
Заголовок сообщения:  Re: Семантический редактор

Сергей Прохоренко писал(а):
Валерий Лаптев писал(а):
Насчет подсистем - Пока принципиальное решение - как в ББ. То есть проект = подстсема = новая папка, где собираются все модули проекта.


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

Интерфейс я бы сделал менее контрастным, например, как в CPIde.

Насчет интерфейса - понятно. Про подсистемы детально будем думать ближе к зиме.
Спасибо за комментарии

Автор:  Владислав Жаринов [ Вторник, 30 Август, 2011 08:54 ]
Заголовок сообщения:  Re: Семантический редактор

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

Автор:  Владислав Жаринов [ Четверг, 01 Сентябрь, 2011 04:14 ]
Заголовок сообщения:  Re: Семантический редактор

Валерий Лаптев в viewtopic.php?p=65165#p65165 писал(а):
...
У нас компилятор - не нужен.
Максимум - конвертер. Я в теме о редакторе уже приводил сохраняемый вид программ.
...
Да, там сказано. И конвертировать в КП, например, можно... как я понимаю, язык всё равно останется компонентным и в основе Обероновским (в типизации, скажем)... а усовершенствования большей частью, видимо, можно рассматривать как введение "макроикон" над "иконами"-операторами Оберон-07?
Кстати, а графовое представление зависимостей в смысле сказанного в этом сообщении поддерживается? Вообще-то Сергей предполагал это для редактора...

Автор:  Валерий Лаптев [ Четверг, 01 Сентябрь, 2011 20:31 ]
Заголовок сообщения:  Re: Семантический редактор

Драконограф писал(а):
Валерий Лаптев в viewtopic.php?p=65165#p65165 писал(а):
...
У нас компилятор - не нужен.
Максимум - конвертер. Я в теме о редакторе уже приводил сохраняемый вид программ.
...
Да, там сказано. И конвертировать в КП, например, можно... как я понимаю, язык всё равно останется компонентным и в основе Обероновским (в типизации, скажем)... а усовершенствования большей частью, видимо, можно рассматривать как введение "макроикон" над "иконами"-операторами Оберон-07?
Кстати, а графовое представление зависимостей в смысле сказанного в этом сообщении поддерживается? Вообще-то Сергей предполагал это для редактора...

Уже было графовое представление семантического дерева программы. Сейчас просто убрали, так как сейчас пацаны плотно работают над 3 вещами:
- семантикой конструкций языка;
- развитием набора операций рефакторинга и их семантики;
- доработки окна семантического редактора до редактора, чтобы уже начать заполнять информацией.
Далее будет много модульность и графика начнется с графа взаимодействия модулей. А там - посмотрим.

Автор:  Владислав Жаринов [ Суббота, 03 Сентябрь, 2011 09:42 ]
Заголовок сообщения:  Re: Семантический редактор

Валерий Лаптев писал(а):
...
сейчас пацаны плотно работают над 3 вещами:
- семантикой конструкций языка;
- развитием набора операций рефакторинга и их семантики;
- доработки окна семантического редактора до редактора, чтобы уже начать заполнять информацией.
М.б. это подбросит пищу для размышлений: viewtopic.php?f=26&t=1758&start=20#p33552 (и ряд дальнейших постов в теме м.б. интересен). ;) Отмечу, что хотя только что прочитал этот пост и тему, развитие техноязыка до графит-семейства определялось во многом такими же соображениями (что язык этот - для частного описания импер-стороны конкретного процесса деятельности). Только не единый "суперязык" визуализации виделся, а комплекс функционально специализированных языков. Отчасти для меня были определяющими такие же представления, как выраженные в этом посте: viewtopic.php?f=26&t=1758&start=40#p33555 и в этом: viewtopic.php?f=26&t=1758&start=40#p33556. Не знаю, насколько Вам в проекте это будет полезным...
    Кстати, вопрос программирования совместного (в т.ч. параллельного) протекания процессов и визуализации соответствующих зависимостей как у Вас решается? Ведь то, что сказано у Галкова в кнце п. 4.3 - о том, "какова жизнь" - представляется скорее неинформатизованным представлением о взаимодействии процессов...
Валерий Лаптев писал(а):
...
Далее будет много модульность и графика начнется с графа взаимодействия модулей. А там - посмотрим.
Этот граф неуложенный предполагается (как у Свердлова в некоторых приложениях дан)?

Автор:  Сергей Прохоренко [ Суббота, 03 Сентябрь, 2011 12:55 ]
Заголовок сообщения:  Re: Семантический редактор

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


От интерфейса многое зависит в плане удобства работы с редактором и, главное, возможности его дальнейшего развития без необходимости кардинальных переделок. Поэтому хотел бы обратить Ваше внимание на современный взгляд на интерфейс от законодателя мод в этой области - компании Microsoft - обновленный Windows Explorer в будущей Windows 8.

Что мне там понравилось, так это следующее: в зависимости от действий пользователя автоматически (или щелчком по ним) открываются вкладки главного окна, содержащие контекстно-зависимые панели (ленты) с иконками (правда, сами по себе широкие ленты вместо узких панелей мне не нравятся). Восхищает гибкость этого, не побоюсь сказать, революционного решения:
  • нет главного меню с громоздкими выпадающими меню на все случаи жизни
  • нет громоздящихся друг над другом панелей с иконками на все случаи жизни
  • в поле зрения находятся только те иконки, которые должны быть под рукой именно в данной открытой вкладке

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

Более того, даже набор областей главного окна может зависеть от отрытой вкладки главного окна.

Панель поиска и навигации под лентой также заслуживает похвалы. Интересно, использованные в ней контролы доступны уже сейчас, или появятся только в Windows 8?

Автор:  Info21 [ Суббота, 03 Сентябрь, 2011 15:57 ]
Заголовок сообщения:  Re: Семантический редактор

Сергей Прохоренко писал(а):
Восхищает гибкость этого, не побоюсь сказать, революционного решения:
Этот механизм имелся в научно-технически-ориентированной рисовалке Canvas (of Mac provenance) уже лет больше десяти назад. Не знаю, кто его придумал первым.

Автор:  Alexey_Donskoy [ Суббота, 03 Сентябрь, 2011 16:18 ]
Заголовок сообщения:  Re: Семантический редактор

Сергей Прохоренко писал(а):
Восхищает гибкость этого, не побоюсь сказать, революционного решения...

Info21 писал(а):
Этот механизм имелся ... уже лет больше десяти назад.
Если правильно понял суть фишки, то этот механизм под названием "статус-строка" имелся уже в 80-х годах в большинстве ДОСовских программ, претендующих на соответствие CUA (Common User Access) - от Norton Commander'а до SuperCalc'а и иже с ними... Да хоть Turbo Pascal тот же взять... :D

Автор:  Владислав Жаринов [ Суббота, 03 Сентябрь, 2011 17:41 ]
Заголовок сообщения:  Re: Семантический редактор

Драконограф в viewtopic.php?p=65231#p65231 писал(а):
...
М.б. это подбросит пищу для размышлений: viewtopic.php?f=26&t=1758&start=20#p33552 (и ряд дальнейших постов в теме м.б. интересен). ;)
...
Мне эта тема вот ещё на какие размышления навела. Там мелькало понятие инлайновости в несколько ином аспекте, чем просто малости тела алгопроцесса - а как процедурное понимание некоего фрагмента маршрутной структуры. А независимо высказывалась идея о трактовке некоей маршрутной подструктуры как повторно используемой, но без выделения в процедуру (и соответственно без создания нового контекста) - предварительно (просто как "кластеризация веток") здесь, а конкретнее (как случай "макроструктурной единицы" - здесь). Понятно, что повторно использовать такую единицу можно, если результаты предыдущего использования ранее сами были востребованы - тогда можно снова занять соответствующие переменные.

Получается, что это - выделение таких единиц и оформление их неднократного использования при сохранении единого контекста процесса - и есть инлайновость? Или не то?

Автор:  Сергей Прохоренко [ Суббота, 03 Сентябрь, 2011 18:15 ]
Заголовок сообщения:  Re: Семантический редактор

Alexey_Donskoy писал(а):
Сергей Прохоренко писал(а):
Восхищает гибкость этого, не побоюсь сказать, революционного решения...

Info21 писал(а):
Этот механизм имелся ... уже лет больше десяти назад.
Если правильно понял суть фишки, то этот механизм под названием "статус-строка" имелся уже в 80-х годах в большинстве ДОСовских программ, претендующих на соответствие CUA (Common User Access) - от Norton Commander'а до SuperCalc'а и иже с ними... Да хоть Turbo Pascal тот же взять... :D


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

Автор:  Alexey_Donskoy [ Суббота, 03 Сентябрь, 2011 18:37 ]
Заголовок сообщения:  Re: Семантический редактор

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

Я, кстати, очень даже за грамотный, продуманный, эргономичный интерфейс.
Но говорить о революционности? Не знаю... Подумаешь, меню убрали. Так давно пора! :)

Автор:  Сергей Прохоренко [ Суббота, 03 Сентябрь, 2011 18:45 ]
Заголовок сообщения:  Re: Семантический редактор

Alexey_Donskoy писал(а):
Так это... в чём разница-то? ... А по сути - те же мышеуказуемые пиктограммы в контекстно-зависимом наборе?


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

Автор:  Alexey_Donskoy [ Суббота, 03 Сентябрь, 2011 18:53 ]
Заголовок сообщения:  Re: Семантический редактор

Сергей Прохоренко писал(а):
С тем же успехом можно заявлять, что поскольку все книги напечатаны буквами, а буквы уже давно не меняются, то и в книгах не появляется ничего нового.
Пример некорректен. Насколько я понял, семантика "нововведения" не изменилась. А Вы приводите в пример как раз неизменный синтаксис :wink:

Пограничные вопросы при классификации всегда вызывают трудности...
Впрочем, я не настаиваю - иногда и синтаксис даёт столько нового, что впору считать его революционным...

Автор:  Валерий Лаптев [ Суббота, 03 Сентябрь, 2011 21:51 ]
Заголовок сообщения:  Re: Семантический редактор

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


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

Более того, даже набор областей главного окна может зависеть от отрытой вкладки главного окна.

Панель поиска и навигации под лентой также заслуживает похвалы. Интересно, использованные в ней контролы доступны уже сейчас, или появятся только в Windows 8?

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

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

В результате пацан говорит, что сейчас на вьюхе конкретно макароны и вносить изменения достаточно тяжело. Взял у меня две книжки по архитектуре из серии Классика Computer science - пока будет на селиасовском форуме почитает и помыслит.

Автор:  Сергей Прохоренко [ Воскресенье, 04 Сентябрь, 2011 10:49 ]
Заголовок сообщения:  Re: Семантический редактор

Валерий Лаптев писал(а):
А с архитектурой именно редактора сложилось не очень хорошо... Во-вторых, интерфейс изначально создавался как проект SilverLight с целью иметь одинаковый интерфейс и в браузере, и в настольном приложении. В-третьих, там в основе какой-то паттерн от микрософт. В-четвертых, ... приходится исследовать сами операции и думать, что является существенным (или удобным), а что - нет.


Мне казалось, что SilverLight - хорошее решение. Но если он сковывает возможности разработки, то можно подумать и о других вариантах:

Что касается интерфейса собственно редактора, то мне кажется, что имеет смысл обратить внимание на мою разработку:
1. Набор панелей и вкладок
2. Вставка элементов из палитр
3. Заглушки во вставляемых элементах
4. Скобка операторного блока для замены операторных скобок, фолдинга и подчеркивания отступа, для выделения и буксировки составного оператора целиком, для привязки всплывающей подсказки и локального меню
5. Графическое выделение и манипулирование ветвями многоветочной конструкции
6. Таблицы для ввода фактических параметров
7. Штабеля (папки, стопки, группы - устоявшегося русского перевода tab stacking нет) однотипных вкладок

Можно также посмотреть на интерфейс других структурных редакторов.

Важно сразу правильно задать требования к размерам экрана, на котором должен гарантированно работать структурный редактор. Я считаю, что они должны быть следующими: диагональ 15.6 дюймов с соотношением сторон 16:9 и разрешением 1366x768.

Автор:  Александр Ильин [ Воскресенье, 04 Сентябрь, 2011 11:00 ]
Заголовок сообщения:  Re: Семантический редактор

Сергей Прохоренко писал(а):
Важно сразу правильно задать требования к размерам экрана, на котором должен гарантированно работать структурный редактор. Я считаю, что они должны быть следующими: диагональ 15.6 дюймов с соотношением сторон 16:9 и разрешением 1366x768.

ЛОЛ! Это вы у себя померили, что ли?

Автор:  Владислав Жаринов [ Воскресенье, 04 Сентябрь, 2011 12:29 ]
Заголовок сообщения:  Экранная форма редактора

Александр Ильин писал(а):
...
ЛОЛ! Это вы у себя померили, что ли?
Это, наверное по данным МС - они выкладывали статистику по отсылам винского собирателя данных о платформе (в блоге МСДН, по-моему).

Страница 15 из 34 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/