OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 19 Апрель, 2024 15:00

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




Начать новую тему Ответить на тему  [ Сообщений: 679 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14, 15, 16 ... 34  След.
Автор Сообщение
СообщениеДобавлено: Вторник, 14 Сентябрь, 2010 16:46 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 563
Откуда: Москва
Geniepro писал(а):
Сергей Прохоренко писал(а):
Структурный редактор Кирилла Осенкова для C# можно закачать из интернета:
Любопытно. Жаль только, что редактор не подвязан к компилятору.

Кстати, тут -- http://visualstudiogallery.msdn.microso ... 484fe3d853 -- предлагают плагин для VS2010, который делает выделение структурных блоков как у одного из режимов редактора Осенкова.
Идея плагина хорошая, но простые палки выглядят отвратно. Давно я хотел подправить этот плагин, вот, наконец, дошли руки.
Вот как было:
Вложение:
11.png
11.png [ 78.22 КБ | Просмотров: 11771 ]
и вот как стало (форматирование текста изменено на нормальное):
Вложение:
22.png
22.png [ 74.74 КБ | Просмотров: 11771 ]
Цвета, правда, пока не трогал.


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

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


Красиво получилось. Промежуточные else if-ы можно выделять не закругланиями "палок", а горизонтальными черточками - так лучше видно, что это не конец блока и начало нового блока, а лишь ветвь внутри блока.

Хорошо было бы избавиться и от фигурных скобок, но это тогда уже будет другой язык программирования.


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

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
IMHO было лучше. Си-шный синтаксис заточен на расставлении фигурных скобок по одной на строку. Пытаться писать фигурные скобки как-то иначе значит идти против Си-шного замысла, в итоге получишь не рыбу не мясо. Вот на Обероне другое дело. Он заточен чтоб в одной строке можно было писать и то и сё.


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

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 563
Откуда: Москва
Сергей Губанов писал(а):
IMHO было лучше. Си-шный синтаксис заточен на расставлении фигурных скобок по одной на строку. Пытаться писать фигурные скобки как-то иначе значит идти против Си-шного замысла, в итоге получишь не рыбу не мясо. Вот на Обероне другое дело. Он заточен чтоб в одной строке можно было писать и то и сё.
Отцы-основатели использовали второй стиль, он так и называется - стиль Стиль «K&R»:
Код:
if (<cond>) {
··<body>
}
Потом люди, которым платят построчно за код, изобрели первый вариант...
После того, как добавил плавные соединительные линии, вообще не могу смотреть на код с фигурной скобкой на отдельной строке. Вся маразменность этого стандарта проявилась во всей красе.


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

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Peter Almazov писал(а):
Отцы-основатели использовали второй стиль
Да я в курсе. Это что-то меняет? Авторитет этих товарищей не то что равен нулю, а отрицателен :D
Сначала они изобрели поганую Си-шную нотацию, но этого им показалось мало :D
Тогда они стали писать скобки так как будто не скобки в Си-шном синтаксисе являются блоком, чтоб ещё больше усугубить :D
Вот в Обероне - да именно такой стиль форматирования и должен быть (ибо в Обероне нет скобок для блока).
А в Сях - нет уж, в Сях блок - это скобки.


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

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 563
Откуда: Москва
Сергей Губанов писал(а):
А в Сях - нет уж, в Сях блок - это скобки.
Тут все, конечно, субъективно, на любителя.
Ход моих мыслей таков: я знаю цену такой конструкции:
Код:
if
{
}
else
{
}
Эта цена - 3 строчки:
Код:
if
else
endif
И я не хочу, чтобы мне морочили голову синтаксическим мусором из 6 строк.


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

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Это - не мусор. Однажды мы на лабе всей группой минут 15 искали ошибку в программе, написанной в стиле отцов-основателей. Пока, наконец, кто-то увидел, что открывающей скобки просто нет - случайно удалили при исправлениях.
Дело не в цене, а именно в структуре кода. При явном выделении скобок ВАШИ скобочки - НЕ НУЖНЫ... :)


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

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 563
Откуда: Москва
Валерий Лаптев писал(а):
Это - не мусор. Однажды мы на лабе всей группой минут 15 искали ошибку в программе, написанной в стиле отцов-основателей. Пока, наконец, кто-то увидел, что открывающей скобки просто нет - случайно удалили при исправлениях.
Дело не в цене, а именно в структуре кода. При явном выделении скобок ВАШИ скобочки - НЕ НУЖНЫ... :)
Здесь могу сказать две вещи.
1. По большому счету, причина ошибки не в стиле, а в том, что язык - говно.
2. Посмотрите внимательно на картинку выше, и вы поймете, что выделение блоков фигурными скобками на пустых строках - НЕ НУЖНО. Все блоки видны так ясно, что дальше некуда. В том числе будет видна и описанная выше ошибка.
А вообще, о вкусах спорить бессмысленно.


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

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
Peter Almazov писал(а):
И я не хочу, чтобы мне морочили голову синтаксическим мусором из 6 строк.
Я тоже не хочу, поэтому на обероне именно так и пишу. Но если приходится писать на сях, то "снявши голову по шапке не плачут".


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Четверг, 16 Сентябрь, 2010 12:11 

Зарегистрирован: Пятница, 24 Апрель, 2009 16:28
Сообщения: 563
Откуда: Москва
Сергей Губанов писал(а):
Но если приходится писать на сях, то "снявши голову по шапке не плачут".
Такую обречённость мне не понять.


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

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


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

Зарегистрирован: Понедельник, 22 Март, 2010 13:31
Сообщения: 5
Откуда: Finland
Здравствуйте! С интересом прочитал всю ветку обсуждений (я и сам работаю над в чём-то похожим проектом). Однако возник один вопрос теоретического плана, а точнее вопрос формулировки. Что именно Вы подразумеваете под семантическим редактором? Как это определение в вашей системе связано с понятием «семантика» в общепринятом смысле?

Возьмём, например, присваивание переменной. В Вашей системе такое действие представляется/хранится в виде дерева или графа, в узлах которого находятся элементы "пересылка", "идентификатор", "значение". Учитывая главную концепцию системы — отказ от текстового представления данных — каково семантическое представление/кодирование/понимание идентификаторов?


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

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Немного в тему:
http://www.3dnews.ru/news/android-app-i ... em/#603778


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

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


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


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

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

Возьмём, например, присваивание переменной. В Вашей системе такое действие представляется/хранится в виде дерева или графа, в узлах которого находятся элементы "пересылка", "идентификатор", "значение". Учитывая главную концепцию системы — отказ от текстового представления данных — каково семантическое представление/кодирование/понимание идентификаторов?


Непонятно, к кому вопрос. Что я понимаю под семантическим редактором - см. https://sites.google.com/site/purebuilder/

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


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

На Ваш вопрос об идентификаторах пусть лучше ответит Валерий Лаптев, так как мои знания в области компиляторов недостаточны.

А Вы можете рассказать о своем проекте?


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

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Узел в данном случае - это не идентификатор , а ОПЕРАТОР присваивания. Составной частью которого является идентификатор (в большинстве случаев) переменной. Есали провести аналогию с С++, то оператор присваивания - это L-value = R-Value.
А сами идентификаторы, естественно появляются в ОПЕРАТОРАХ определения переменных, и собираются редактором в таблицу имен. Чтобы потом использоваться и в операциях типа автодополнения, и при проверке совместимости типов.


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

Зарегистрирован: Понедельник, 22 Март, 2010 13:31
Сообщения: 5
Откуда: Finland
Валерий Лаптев писал(а):
Узел в данном случае - это не идентификатор , а ОПЕРАТОР присваивания. Составной частью которого является идентификатор (в большинстве случаев) переменной. Есали провести аналогию с С++, то оператор присваивания - это L-value = R-Value.
А сами идентификаторы, естественно появляются в ОПЕРАТОРАХ определения переменных, и собираются редактором в таблицу имен. Чтобы потом использоваться и в операциях типа автодополнения, и при проверке совместимости типов.

Да-да, именно это я имел в виду (насчет присваивания и таблицы имен). Но всё-же: если вы полностью отказываетесь от текстового представления программы на внутреннем уровне, что тогда есть идентификатор? Какова его сущность? Как он вводится/редактируется/хранится?


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

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


http://www.modk.it/software



Вложение:
Using-Input.png
Using-Input.png [ 68.01 КБ | Просмотров: 10973 ]


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Пятница, 01 Июль, 2011 09:34 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Семантический редактор обретает рабочие очертания.
Пацан очень заинтересован, пишет и рефакторит практически не переставая. Обсуждаем регулярно.
Пацан защитил на этом бакалавра, собирается в магистры. Выиграл Умника.
Работа четко разбивается на несколько подсистем.
- собственно редактор. Вчерашнее обсуждение показало, что операция copy-paste - не соответствует сущности семантического редактора. Эту операцию можно разрешить только в очень определенных местах программы и документа. А редактор должен выполнять высокоуровневые операции типа рефакторинга. Подключили пацана 3 курса - будет этим вопросом заниматься.
- интерпретатор семантического дерева. Первая версия работает. Пока только на процедурах. Далее будет добавляться ОО-часть. Сюда же - всякие конвертеры в известные языки. Здесь мы внимательно смотрим в стороны ББ. Вчера речь зашла о линкере - я тут же ему указал на динамическую загрузку модулей и автоматическое извлечение интерфейсов в ББ. Пацан проникся... :)

Пока у меня на этом компе не установлена Студия 2010 (пацан делает на том, что у него "в пальцах" сидит). Кроме того, реально хочет сделать сервис в инете для наших школьников (есть идея организовать в сети что-то вроде школьной ИТ-академии конкретно от нашей кафедры).
Поэтому пока сохраняет проги вот в таком виде:
Код:
<?xml version="1.0" encoding="utf-16" ?>
- <модуль NameWord="НовыйМодуль" BodyWord="НовыйМодуль" SelectionWord="НовыйМодуль">
- <процедура FirstWord="Главная" Expression="" NameWord="Главная" BodyWord="Главная" SelectionWord="Главная">
  <переменная Type="целое" NameWord="и" SelectionWord="целое" />
  <присвоить Left="и" Expression="1" SelectionWord="и" />
  <пустая_строка FirstWord="" KeyWord="" EnterWord="" BodyWord="" EndWord="" EndEnterWord="" />
- <цикл Expression="и<10" BodyWord="и<10" SelectionWord="и<10">
  <вывести Expression="стр(и) + "! = " + стр(Факториал(и)) + "\n"" SelectionWord="стр(и) + "! = " + стр(Факториал(и)) + "\n"" />
  <присвоить Left="и" Expression="и + 1" SelectionWord="и" />
  </цикл>
  </процедура>
  <пустая_строка FirstWord="" KeyWord="" EnterWord="" BodyWord="" EndWord="" EndEnterWord="" />
- <функция FirstWord="целое" Type="целое" Expression="целое б" NameWord="Факториал" BodyWord="Факториал" SelectionWord="целое">
- <если Expression="б==0" SelectionWord="б==0">
  <вернуть Expression="1" SelectionWord="1" />
  </если>
  <вернуть Expression="Факториал(б-1)*б" SelectionWord="Факториал(б-1)*б" />
  </функция>
  </модуль>

Как только установлю студию - скрины выставлю.
Но могу добавить - получается лучше, чем КуМир - абсолютно точно! Язык - существенно лучше: с Дейкстриным if и циклом.

Кстати, сильно сомневаемся о включении в язык механизма исключений. С одной стороны, вроде как знакомить студней надо. Но с другой стороны - вот не нравятся мне это на интуитивном уровне. И интерпретатор, возможно, усложнится.
Мне очень понравился if с assert(), который привел Евгений Темиргалиев - это прям паттерн, который надо вбивать в головы студней...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Семантический редактор
СообщениеДобавлено: Пятница, 01 Июль, 2011 21:14 
Аватара пользователя

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

Ждем!
Валерий Лаптев писал(а):
Пацан защитил на этом бакалавра, собирается в магистры. Выиграл Умника.

Как насчет того, чтобы включить эту работу в Google Summer of Code ?
Валерий Лаптев писал(а):
Вчерашнее обсуждение показало, что операция copy-paste - не соответствует сущности семантического редактора.

Существуют альтернативы, которые соответствуют сущности семантического редактора:

1) Например, в MS PowerPoint в главном меню есть команда Правка > Дублировать. Слайд целиком дублируется одним щелчком мыши, после чего дубль можно переделать в новый по содержанию слайд.

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

Кроме того, реально хочет сделать сервис в инете для наших школьников (есть идея организовать в сети что-то вроде школьной ИТ-академии конкретно от нашей кафедры).


О-о-о!!! Облачные технологии :)


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 679 ]  На страницу Пред.  1 ... 10, 11, 12, 13, 14, 15, 16 ... 34  След.

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


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

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


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

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