IO> Если второе, то зачем тогда вообще какое-то представление кроме текста?
Тот же Resharper работает же не с текстом, а с внутренним семантическим представлением, получаемым налету из текста.
Тоже самое верно и для всех остальных автоматических и полуавтоматических сервисов.
И основных вопроса тогда два:
1. Стандартизировать ли внутреннее семантическое представление на уровне стандарта языка?
Плюсы:
— уменьшается стоимость разработки автоматических сервисов к языку
— повышается совместимость между языковыми сервисами
Минусы:
— жестко выбранное заранее представление может оказаться неподходящим под ряд задач
2. Что является первичным: текстовый листинг или внутреннее семантическое представление?
Имхо, удобно, когда:
— первичным представлением является текстовый листинг
— на уровне стандарта задано внутреннее семантическое представление в виде гибких соглашений
Re[7]: Джон Кармак о науке и искусстве разработки ПО
Здравствуйте, LaptevVV, Вы писали:
LVV>>>Мы УЖЕ реализовали. __>>мир — это госпиталь неизлечимых больных (с) __>>Что вы УЖЕ реализовали, можно поподробнее ? LVV>В конце года подробности. Когда соберем статистику по использованию, исправим обнаруженные ляпы, и по результатам допишем операции рефакторинга. LVV>Предварительно: среда программирования с семантическим редактором. Программа в редакторе набирается не как текст, а сразу операторами. LVV>Оператор — это узел в семантическом дереве. Со всеми необходимыми составляющими. Например, узел — оператор присваивания включает имя левой переменной и присваиваемое выражение. То есть программа сразу в редакторе строится как дерево специального вида. LVV>И в чистом текстовом виде пока даже не сохраняется.
я правильно понимаю что это только для обучения студентов, а не для реальных проектов?
если да — то какой смысл учить разработке в том что не имеет отношения к реальной жизни?
In Zen We Trust
Re[15]: Джон Кармак о науке и искусстве разработки ПО
Здравствуйте, LaptevVV, Вы писали:
AVK>>Зачем для этого отказываться от нормального текстового исходника? LVV>Потому как при наборе текста сложно оценивать семантические действия студента при создании программы.
Непонятно.
... << RSDN@Home 1.2.0 alpha 5 rev. 65 on Windows 7 6.1.7601.65536>>
Здравствуйте, DarkGray, Вы писали:
DG>Тот же Resharper работает же не с текстом, а с внутренним семантическим представлением, получаемым налету из текста. DG>Тоже самое верно и для всех остальных автоматических и полуавтоматических сервисов.
Да, но с точки зрения пользователя они помогают работать именно с текстом.
Смысла заглядывать в их внутреннюю механику нет, если сам не пишешь для них плагин.
DG>И основных вопроса тогда два: DG>1. Стандартизировать ли внутреннее семантическое представление на уровне стандарта языка? DG>Плюсы: DG>- уменьшается стоимость разработки автоматических сервисов к языку DG>- повышается совместимость между языковыми сервисами DG>Минусы: DG>- жестко выбранное заранее представление может оказаться неподходящим под ряд задач DG>2. Что является первичным: текстовый листинг или внутреннее семантическое представление?
DG>Имхо, удобно, когда: DG>- первичным представлением является текстовый листинг
Примеров других юзабельных представлений пока не существует. DG>- на уровне стандарта задано внутреннее семантическое представление в виде гибких соглашений
Тут я вижу два варианта. Либо это представление является неотъемлемой частью языка и средством повышения его выразительной силы. Как в Лиспе.
Либо это просто спецификация API а-ля КодеДом как в .НЕТ.
Из описания (довольно туманного) проекта "семантического Оберона" вроде как можно понять, что предпологается первый вариант.
Но как это будет работать выпытать у автора никому пока не удалось. Так что вероятно, это просто редактор AST + м.б. апи для работы с эмим AST. Т.е. фигня.
Откуда же его [независимый суд] взять, если в нем такие же как мы? (c) VladD2
Здравствуйте, LaptevVV, Вы писали:
LVV>Здравствуйте, AndrewVK, Вы писали:
AVK>>Здравствуйте, LaptevVV, Вы писали:
LVV>>>Мой бенефит в том, что я в среду навешу оценивание работы студента. AVK>>Зачем для этого отказываться от нормального текстового исходника? LVV>Потому как при наборе текста сложно оценивать семантические действия студента при создании программы.
Под "семантикой действий студент" понимается последовательность действий по созданию программы? Вас интересует не только конечный результат, но и весь процесс к нему ведущий? Все равно не совсем понятно зачем вам графическое представление. VI например держит undo/redo с полным ветвлением.
Re[7]: Джон Кармак о науке и искусстве разработки ПО
Здравствуйте, LaptevVV, Вы писали:
LVV>Оператор — это узел в семантическом дереве. Со всеми необходимыми составляющими. Например, узел — оператор присваивания включает имя левой переменной и присваиваемое выражение. То есть программа сразу в редакторе строится как дерево специального вида. LVV>И в чистом текстовом виде пока даже не сохраняется.
Чем это лучше http://www.jetbrains.com/mps/ ?
... << RSDN@Home 1.2.0 alpha 5 rev. 62>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: Джон Кармак о науке и искусстве разработки ПО
DG>>Тот же Resharper работает же не с текстом, а с внутренним семантическим представлением, получаемым налету из текста. DG>>Тоже самое верно и для всех остальных автоматических и полуавтоматических сервисов. IO>Да, но с точки зрения пользователя они помогают работать именно с текстом. IO>Смысла заглядывать в их внутреннюю механику нет, если сам не пишешь для них плагин.
Грань между плагином и сложным кодом — очень тонкая. Сложный код часто при компиляции завязан на генерацию или модификацию кода самой программы. В качестве примера можно взять Nemerle. В нем как раз значительная часть кода работает со внутренним семантическим представлением — модифицируя и преобразуя его прямо в момент компиляции.
И в этом случае, желательно, конечно, чтобы внутреннее семантическое представление было стандартизовано. И чтобы можно было напрямую модифицировать внутреннее представление без необходимости парсить и корректно генерить текстовые листинги с богатой контекстно-свободной грамматикой.
ps
Также очень желательно иметь возможность получить внутреннее семантическое представление в текстовом виде, но это уже должен быть текстовый листинг с простым синтаксисом: Xml, S-expression и т.д.
Re[16]: Джон Кармак о науке и искусстве разработки ПО
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, LaptevVV, Вы писали:
AVK>>>Зачем для этого отказываться от нормального текстового исходника? LVV>>Потому как при наборе текста сложно оценивать семантические действия студента при создании программы.
AVK>Непонятно.
Писать долго...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[16]: Джон Кармак о науке и искусстве разработки ПО
Здравствуйте, novitk, Вы писали:
N>Здравствуйте, LaptevVV, Вы писали:
LVV>>Здравствуйте, AndrewVK, Вы писали:
AVK>>>Здравствуйте, LaptevVV, Вы писали:
LVV>>>>Мой бенефит в том, что я в среду навешу оценивание работы студента. AVK>>>Зачем для этого отказываться от нормального текстового исходника? LVV>>Потому как при наборе текста сложно оценивать семантические действия студента при создании программы.
N>Под "семантикой действий студент" понимается последовательность действий по созданию программы? Вас интересует не только конечный результат, но и весь процесс к нему ведущий? Все равно не совсем понятно зачем вам графическое представление. VI например держит undo/redo с полным ветвлением.
1. У нас НЕ графическое представление...
2. Да, нас интересует и последовательность действий, и структура программы. Семантическое дерево — это и есть структура программы. Которую можно сравнивать, например, с эталоном самыми разными способами. Или обмеривать метриками... В общем — много возможностей.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[8]: Джон Кармак о науке и искусстве разработки ПО
Здравствуйте, WolfHound, Вы писали:
WH>Здравствуйте, LaptevVV, Вы писали:
LVV>>Оператор — это узел в семантическом дереве. Со всеми необходимыми составляющими. Например, узел — оператор присваивания включает имя левой переменной и присваиваемое выражение. То есть программа сразу в редакторе строится как дерево специального вида. LVV>>И в чистом текстовом виде пока даже не сохраняется. WH>Чем это лучше http://www.jetbrains.com/mps/ ?
Сделаем сайт — посмотрите.
И мы не говорим, что это лучше или хуже. Мы делаем то, что НАМ надо.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[12]: Джон Кармак о науке и искусстве разработки ПО
Здравствуйте, Abyx, Вы писали:
A>я правильно понимаю что это только для обучения студентов, а не для реальных проектов? A>если да — то какой смысл учить разработке в том что не имеет отношения к реальной жизни?
Блин, достали уже эти разговоры о реальной жизни. Под эти разговоры уже развалили школу и почти развалили вузы.
Кто хочет только кодить на реальных языках — идите в ПТУ.
А универ — высшее образование. Надо знать кое-что помимо кода.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[9]: Джон Кармак о науке и искусстве разработки ПО
Здравствуйте, LaptevVV, Вы писали:
LVV>Блин, достали уже эти разговоры о реальной жизни. Под эти разговоры уже развалили школу и почти развалили вузы. LVV>Кто хочет только кодить на реальных языках — идите в ПТУ. LVV>А универ — высшее образование. Надо знать кое-что помимо кода.
да что Вы говорите
и что же надо знать помимо кода, и как в этом поможет ваша чудо-среда?
In Zen We Trust
Re[17]: Джон Кармак о науке и искусстве разработки ПО
Здравствуйте, LaptevVV, Вы писали:
LVV>>>на Додиезе Т>>На чём??? LVV>C# — это додиез в музыке.
Ок, а программирование то тут при чём?
Для языка C# есть официальное и общепринятое название.
Никто ж С или С++ не назвает До или До плюс плюс, или ADA — ля до ля.
... << RSDN@Home >>
Да, йа зелёный тролль!
Re[17]: Джон Кармак о науке и искусстве разработки ПО
Здравствуйте, LaptevVV, Вы писали:
LVV>программа сразу в редакторе строится как дерево специального вида. LVV>И в чистом текстовом виде пока даже не сохраняется. LVV>1. У нас НЕ графическое представление...
А какое тогда? Если не графическое и не текстовое? И при этом "сразу в редакторе строится как дерево специального вида"?
Как пользователь это видит?
LVV>2. Да, нас интересует и последовательность действий, и структура программы. Семантическое дерево — это и есть структура программы. Которую можно сравнивать, например, с эталоном самыми разными способами. Или обмеривать метриками... В общем — много возможностей.
Ок, но что мешает генерить дерево прямо из текста программы и уже сравнивать сколько влезет? Зачем сразу в виде дерева его писать?
... << RSDN@Home >>
Да, йа зелёный тролль!
Re[9]: Джон Кармак о науке и искусстве разработки ПО
Здравствуйте, LaptevVV, Вы писали:
A>>я правильно понимаю что это только для обучения студентов, а не для реальных проектов? A>>если да — то какой смысл учить разработке в том что не имеет отношения к реальной жизни? LVV>Блин, достали уже эти разговоры о реальной жизни. Под эти разговоры уже развалили школу и почти развалили вузы. LVV>Кто хочет только кодить на реальных языках — идите в ПТУ.
Мы не про это. ПТУ готовит кодеров, ВУЗ грубо говоря должен готовить инженеров и исследователей.
LVV>А универ — высшее образование. Надо знать кое-что помимо кода.
Ты пойми, то, что ты сейчас сказал в первую очередь воспринимается как претензия на "Духовность" (тм). И реакция на это будет отрицательной.
... << RSDN@Home >>
Да, йа зелёный тролль!
Re[17]: Джон Кармак о науке и искусстве разработки ПО
Здравствуйте, LaptevVV, Вы писали:
LVV>1. У нас НЕ графическое представление...
A какое оно еще может быть, если парсера у вас нет?
LVV>2. Да, нас интересует и последовательность действий, и структура программы. Семантическое дерево — это и есть структура программы.Которую можно сравнивать, например, с эталоном самыми разными способами. Или обмеривать метриками... В общем — много возможностей.
Это все и так понятно. Не понятно чем вам компилятор мешает.