OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Суббота, 19 Сентябрь, 2020 05:40

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




Начать новую тему Ответить на тему  [ Сообщений: 679 ]  На страницу Пред.  1 ... 4, 5, 6, 7, 8, 9, 10 ... 34  След.
Автор Сообщение
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Воскресенье, 06 Декабрь, 2009 19:51 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Спасибо!

Вот еще интересные ссылки:

1) Visual_Studio_2020 http://www.codeproject.com/KB/dotnet/Vi ... _2020.aspx Здесь мне понравился вывод статистики слева от кода (Grooves), протоколирование изменений кода (Wires) и диаграмма стадий программирования (Walk Thru)

2) Визуализация http://flare.prefuse.org/demo/ (понравился эффект лупы при наведении курсора)

3) Карта программы http://iamanush.com/wp-content/uploads/ ... _img_3.png


Я нашел указанную Вами статью: http://www.iai.dn.ua/public/JournalAI_2 ... chenko.pdf


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Теория двух типов ума
СообщениеДобавлено: Понедельник, 01 Февраль, 2010 03:53 

Зарегистрирован: Суббота, 06 Июнь, 2009 07:52
Сообщения: 329
Сергей Прохоренко писал(а):
Похоже, что я взялся "изобретать велосипед" (чего совершенно не хочется) - и никто из профессиональных программистов меня не остановил. Возможно, что они сами "не в курсе".
Не знаю на каком этапе моя теория даст сбой. Поэтому, представлю для обсуждения то, что первоначально заинтересовало в ВВ. В нем форма создается по написанному тексту. Т.е. форма может предоставлять поля для ввода текста, который будет компилироваться в исполняемое приложение. Например, в самом простом случае, если надо объявить строку из n-ного количества символов массива, то в начале создается графическая форма, предоставляющая для ввода строки поле, которое уже до компиляции ограничит ввод строки размером больше, чем n. Таких форм может быть несколько, каждая из которых будет уточнять значения, введенные в предыдущую форму или последующую.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 10 Май, 2010 10:00 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Структурный редактор Кирилла Осенкова для C# можно закачать из интернета:

http://www.softpedia.com/get/Programmin ... itor.shtml

Японцы им тоже заинтересовались: http://d.hatena.ne.jp/aoki1210/20090918/p1


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Понедельник, 10 Май, 2010 10:43 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9280
Откуда: Россия, Орёл
Не запускается, видимо, хочет фреймворка нового.... :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Понедельник, 10 Май, 2010 10:53 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Илья Ермаков писал(а):
Не запускается, видимо, хочет фреймворка нового.... :(


Еще одно место, откуда можно его скачать: http://structurededitor.codeplex.com/

Дата загрузки на сайт - 9 сентября 2009 года. Вряд ли нужен более свежий фреймворк. :wink:


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 10 Май, 2010 15:38 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Сергей Прохоренко писал(а):
Структурный редактор Кирилла Осенкова для C# можно закачать из интернета:
Любопытно. Жаль только, что редактор не подвязан к компилятору.

Кстати, тут -- http://visualstudiogallery.msdn.microso ... 484fe3d853 -- предлагают плагин для VS2010, который делает выделение структурных блоков как у одного из режимов редактора Осенкова.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Бремя обратной совместимости
СообщениеДобавлено: Воскресенье, 16 Май, 2010 14:32 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Семантический редактор непременно столкнется с такой проблемой, как бремя обратной совместимости. И я убежден, что качество решения этой проблемы - это решающий фактор эволюции и будущей популярности или забвения семантического редактора.

Сначала несколько цитат о недостатках :( обратной совместимости:
Цитата:
Еще одно преимущество создания нового языка программирования по сравнению с расширением существующих заключается в том, что при создании нового языка нет необходимости заботиться о проблемах обратной совместимости, которые обычно заметно затрудняют исправление застарелых проблем и даже внесение новых свойств в стандарт языка... http://www.intuit.ru/department/sa/compilersdev/2/

В процессе развития языка некоторые его конструкции и функции устаревают. Однако с целью обратной совместимости новые версии должны поддерживать и все устаревающие возможности. http://www.intuit.ru/department/pl/plintro/1/2.html

Избрав однажды путь расширения старого языка с сохранением обратной совместимости, вы можете его только усложнять. Отказаться от чего-либо уже невозможно. http://www.pcweek.ru/themes/detail.php?ID=49177

Корни обратной совместимости держат, не дают подняться выше определённого потолка. http://www.gotdotnet.ru/blogs/mihailik/3594/

Если есть возможность улучшить язык ценой потери обратной совместимости - лучше улучшить язык. http://www.opennet.ru/opennews/art.shtml?num=20047

Вирт написав Модулу и Оберон отказался от обратной совместимости. Он написал конвертер паскаль -> модула-2, а затем модула-2 -> оберон :) Написав пару раз код на Модуле, Обероне или Аде к паскалю возвращаться не хочется. http://www.linux.org.ru/news/linux-gene ... 6527/page3

Пришло время отбросить цепи обратной совместимости и уверенно двигаться в будущее. http://www.javaportal.ru/articles/10_reasons_Java3.html



Теперь о преимуществах :D обратной совместимости:
Цитата:
Язык, каким бы замечательным он ни был, находится под властью требований обратной совместимости миллионов исходных строк, которые никто не будет переписывать с нуля. http://www.insidepro.com/kk/315r.shtml

Нарушение обратной совместимости означает одновременное сопровождение двух разных версий... Некоторые изменения — такие как нарушение обратной совместимости — удерживают многих от перехода к новой версии. http://www.ibm.com/developerworks/ru/li ... python3-1/

Вряд ли, Microsoft откажется от обратной совместимости – имеющаяся мощь Windows частично объясняется именно совместимостью, которая от версии к версии только увеличивается. http://www.winzone.ru/articles/491/


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

Я здесь не претендую на то, что у меня есть готовые рецепты, но могу поделиться некоторыми мыслями:

1. Обратная совместимость должна обеспечиваться примерно таким образом, как это сделано в MS Office: Вы всегда пользуетесь только самой свежей версией средств разработки, но в большинстве случаев можете читать файлы в старых форматах.

2. Компонентное программирование должно стать настолько удобным и хорошо документированным, чтобы в большинстве случаев отпала необходимость в чтении старых компонент программистом, а сами эти компоненты хранились в виде исполнимого кода.

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

4. Исходный программный код и данные (в т.ч. сериализованные) должны сохраняться в форме XML, так как это позволит легко вносить изменения в форматы без отрицательных последствий.

5. Контекстная справка и интуитивно понятный графический интерфейс должны помочь пользователям быстро адаптироваться к измененному синтаксису новых версий без штудирования документации.

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

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

8. Исходный код и данные должны содержать в себе указание на номер версии.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Воскресенье, 16 Май, 2010 21:22 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9280
Откуда: Россия, Орёл
Лучше не думать о совместимости первые год-два публичного существования. Да, сознательно жертвовать возможными "рыночными краткосрочными бананами". Зато спокойно отработать всё. Потом уже будет ясно, что можно "морозить" и где какие точки расширения вставлять.

А лучше вообще не торопиться с широкой публичностью.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Понедельник, 17 Май, 2010 08:50 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3191
Откуда: Астрахань
Илья Ермаков писал(а):
Лучше не думать о совместимости первые год-два публичного существования. Да, сознательно жертвовать возможными "рыночными краткосрочными бананами". Зато спокойно отработать всё. Потом уже будет ясно, что можно "морозить" и где какие точки расширения вставлять.

А лучше вообще не торопиться с широкой публичностью.

Абсолютно согласен!
Но Сергею спасибо - не дает совсем забывать о некоторых вопросах... :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Понедельник, 17 Май, 2010 09:54 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Илья Ермаков писал(а):
Лучше не думать о совместимости первые год-два публичного существования. Да, сознательно жертвовать возможными "рыночными краткосрочными бананами". Зато спокойно отработать всё. Потом уже будет ясно, что можно "морозить" и где какие точки расширения вставлять.

А лучше вообще не торопиться с широкой публичностью.


Думать лучше все-таки заранее. Чтобы потом не было мучительно больно... :wink:

Я согласен, что нужна какая-то макетная версия для анализа и "раздраконивания" критиками, и последующие версии могут быть с ней несовместимы. Но она должна быть выдана на публику с явным комментарием, что всё разработанное с ее помощью наверняка пойдет в корзину. То есть, нет никаких обязательств со стороны разработчика. Зато потом все рабочие версии должны иметь такую полную обратную совместимость, которая не препятствует развитию средств разработки!!!

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

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

Хотелось бы всё-таки увидеть содержательную и предметную дискуссию по этому довольно сложному вопросу: каким образом обеспечить полную обратную совместимость всех будущих версий и при этом не создать препятствий к развитию и упрощению семантического редактора :?:

Для начала могли бы хотя бы покритиковать мои предложения.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 17 Май, 2010 20:57 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Wlad2 писал(а):
Валерий Лаптев писал(а):
Тут все просто. текст читается сверху вниз.
Все, что определено сверху - снизу видно.

... + опережающие объявления. забыли?...


Надеюсь, что это всё не появится в семантическом редакторе.

Ключевые слова здесь: "текст читается". А в семантическом редакторе образом программы является вовсе не текст.

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Понедельник, 17 Май, 2010 22:38 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2352
Откуда: Россия, Томск
Сергей Прохоренко писал(а):
Поскольку семантический редактор берет на себя отслеживание этих связей, поддержание целостности программы и представление её структуры программисту, то модули как правило очень небольшие.
Что-то мне подсказывает, что именно потому, что структуру в значительной степени будет отслеживать редактор и запутаться станет сложнее, модули станут из больших превращаться в очень большие.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Вторник, 18 Май, 2010 07:03 
Аватара пользователя

Зарегистрирован: Суббота, 12 Июль, 2008 22:49
Сообщения: 573
Откуда: Россия, Санкт-Петербург
Я вспомнил, где я уже пользовался семантическим редактором.
В бейсике на ZX Specrtum.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 18 Май, 2010 09:54 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Александр Ильин писал(а):
Сергей Прохоренко писал(а):
Поскольку семантический редактор берет на себя отслеживание этих связей, поддержание целостности программы и представление её структуры программисту, то модули как правило очень небольшие.
Что-то мне подсказывает, что именно потому, что структуру в значительной степени будет отслеживать редактор и запутаться станет сложнее, модули станут из больших превращаться в очень большие.

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


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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 19 Май, 2010 11:10 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Alexey Veselovsky писал(а):
Некие подробности тут:
http://valexey.blogspot.com/2010/05/blog-post.html

Совсем кратко: построили граф нетерминалов (и их связей) для синтаксиса Оберона-2.

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


На этой схеме (http://valexey.blogspot.com/2010/05/blog-post.html) очень хорошо видно, что грамматика языка Oberon-2 состоит всего из пяти разделов:
1. Импорт
2. Объявления
3. Последовательность инструкций
4. Выражения
5. Идентификаторы

Мне представляется, что эти разделы должны реализовываться совершенно различными графическими средствами семантического редактора:
    импорт - древовидными схемами (наподобие зависимостей в Microsoft Access);
    объявления - таблицами;
    последовательность инструкций - блочным гипертекстом и коллекциями шаблонов элементов;
    выражения - построителем выражений (примерно как в Microsoft Access);
    идентификаторы - построителем идентификаторов (наподобие довольно распространенных средств для выбора имен веб-сайтов, дополненных тематическими каталогами, словарями и средствами поддержки стиля).


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 20 Май, 2010 16:13 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Сергей Прохоренко писал(а):
Нужен полноценный семантический редактор.
Давно уже порываюсь Вас спросить. Вы уже начали делать свой семантический редактор? В какой стадии готовности он у Вас находится? Готовы ли Вы его явить миру?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 20 Май, 2010 21:12 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
igor писал(а):
Сергей Прохоренко писал(а):
Нужен полноценный семантический редактор.
Давно уже порываюсь Вас спросить. Вы уже начали делать свой семантический редактор? В какой стадии готовности он у Вас находится? Готовы ли Вы его явить миру?


Я не программист. Свою роль я вижу в том, чтобы вдохновить на эту задачу тех, кто реально программирует или может организовать разработку. Да и вообще, такую штуку вряд ли можно сделать в одиночку. Свое видение семантического редактора я изложил тут: http://sites.google.com/site/purebuilder/

Реально разработкой таких редакторов независимо друг от друга заняты Кирилл Осенков и Валерий Лаптев - участник этого форума. Загрузить редактор Кирилла Осенкова вы можете отсюда: http://structurededitor.codeplex.com/

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


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

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Сергей! Спасибо за обстоятельный ответ и за полезные ссылки. На досуге "буду посмотреть". :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 21 Май, 2010 11:10 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Сергей Прохоренко писал(а):
Свое видение семантического редактора я изложил тут: http://sites.google.com/site/purebuilder/
Посмотрел. Многое прояснилось. Хочу поделиться своими мыслями.

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

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

Перед сохранением (после внесения исправлений в программу средствами самого редактора) семантический редактор должен по своим внутренним (изменённым) таблицам сгенерировать новый иходный текст модуля, полностью отвечающего спецификациям целевого языка программирования (Оберон).

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Пятница, 21 Май, 2010 13:39 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3191
Откуда: Астрахань
1. Запись проги в виде текста - только по специальному требованию программиста.
2. На экране как раз изображается обычный привычный вид. Но, конечно, в редакторе должны быть и другие представления визуализированы. Например, граф многомодульного проекта (вроде графа нетерминалов оберона, которую тут показывали), содержание модуля, таблица имен процедуры и т.п.
3. Лично мне нужен простой язык для обучения, поэтому Я это здесь и обсуждаю. Семантический редактор для меня - это основа обучающей среды, которая существенно отличается от профессиональной. Если кто хочет делать для промышленных языков - вперед. Я этим займусь после реализации минимального работающего варианта среды.


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

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


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

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


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

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