Здравствуйте, AndrewVK, Вы писали:
LVV>>Компилятор в своем классическом виде — это устаревшая концепция. LVV>>ДОСТАЛО в IDE набирать программу посимвольно! AVK>Вобщем UML
Ну, в системах проектирования — аналогичные идеи тоже катят. AVK>На самом деле для промышленного применения такая концепция не годится, только студентов учить.
Студентов учить — это да.
Но почему в промышленном программировании не катит? Доводы?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Интеллектуальный редактор кода контролирующий синтаксис при вооде
Здравствуйте, AndrewVK, Вы писали:
LVV>>Но почему в промышленном программировании не катит? Доводы? AVK>Неудобно и неприспособлено к написанию реальных систем — много лишних действий и плохо себя ведет при сложном коде.
Ввобще-то откуда такие выводы? Где-нить юзал подобный инструмент?
ИМХО — после проб можно и подкорректировать, что особо неудобно.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: Интеллектуальный редактор кода контролирующий синтаксис при вооде
Здравствуйте, LaptevVV, Вы писали:
M>> Действительно хорошая идея! M>>Гм. А как насчёт оптимизации? Или потом "компилировать окончательно"? M>>А если программа находится в ещё не готовом виде и её просто нельзя откомпилироваь в MSIL?
LVV>Ну, это еще в 70-х проходили — так называемые пошаговые компиляторы.
А это точно, что с помощью пошаговой компиляции можно сохранять любые незавершённые конструкции?
M>>Я так понимаю, в редакторе будут помечаться места, где можно что-то писать своё? M>>А фактически даже не писать, а в соответствии с грамматикой языка редактор может предоставлять список возможных "ходов". M>>PS. Не воспринимайте серьёзно, почему-то представилось: M>>Вот программист хочет написать a = b + c; M>>написал M>>a = b M>>и нажал Ctrl+Space. M>>IDE заглянул в грамматику, там написано "+" | "-" | "*" | "/" M>>и выдаёт wizard: LVV>Поскипано LVV>Не, кроме арифметических операций представить ничего невозможно, да
Это ж я ж как бы заранее извинился, что это ж была ж как бы шутка.
Но навеяно как раз пониманием следующего:
LVV>Как раз выражения разрешается вводить посимвольно. LVV>Но тут прямо просится следующее: LVV> — следитбь за вводом чисел; LVV>- следить за объявленными-необъявленными именами. LVV>Это навскидку только.
Совершенно согласен.
Здесь, пожалуй, основные проблемы, это удобства работы для программиста. Чтобы ограничения, накладываемые редактором, не мешали.
Re[6]: Интеллектуальный редактор кода контролирующий синтаксис при вооде
LVV>Не, кроме арифметических операций представить ничего невозможно, да LVV>Как раз выражения разрешается вводить посимвольно. LVV>Но тут прямо просится следующее: LVV> — следитбь за вводом чисел; LVV>- следить за объявленными-необъявленными именами. LVV>Это навскидку только.
Имеет смысл делать что-то вроде Smart-Tags, более жёсткая автоматизация бесперспективна. По мере ввода текста анализатор колбасит и навешивает ярлычки на наиболее подозрительные места. FxCop+фоновая компиляция в одном флаконе.
Да ещё в модели SmartTags придётся умерить настырность, а то все знают, как Word автокорректирует А программеры — это же не юзеры. Им такая "помощь" ещё больше обидит. А уж за жёсткий контроль так просто сотрут с винта систему, даже feedback не пошлют.
... << RSDN@Home 1.1.0 stable >>
Re[4]: Интеллектуальный редактор кода контролирующий синтаксис при вооде
Здравствуйте, LaptevVV, Вы писали:
VD>>Проснулся. В Gupta SQLWindows — это было еще в 94-ом году! Кое что скоро появится в Видби. LVV>А должно было появиться — в году этак 1984
Боюсь тебя огорчить, но уже в 95-от в Гупту был добавлен экспорт/импорт из текстового формата. Так что на сегодня кроме как чудным редактором они не отличаются. Что же касается 84-го... Идея тупиковая, так что хоть 2024-ом, хоть в 1824, значения не имеет.
LVV>Не-е-е-е-е-т!
Агащасблин.
LVV>Эт я просто про редактор написал, а здесь же гипертекстовая организация проекта с завязкой на код здорово катит!
Еще одно красивое (в прошлом) слово. Жаль только еще более бессмысленное. Гипертекст и разработка ПО вещи очень далекие.
LVV>Только лексить и парсить — не требуется правильный текст — он правильный!
Это мелкая подзадача. Ее решение давно найдено и мало кого интересует. А вот отсуствие читабельной "твердой копии" — это огромнейшая проблема.
LVV>Нужна только часть касающаяся перевода — Даже промежуточное представление генерировать отдельно специально — не нужно — оно при вводе сразу генерится.
Ничего ни где сразу не возникает. В таком редакторе ты получишь частично разобранный, в дерево разбора, код. Не более того. Никакого промежуточного представления ты не получишь. Ты даже нормального дага не получишь.
LVV>Ага, просто никто всерьез этим не занимался.
Ты серьезно считаешь себя умнее, чем весь остальной мир? Все кто занимались подобным подходом, продумывали разные варианты. Догадайся на чем остановились?
LVV> Не вижу принципиальных проблем хранить версию текста
Так и стали делать. Только при этом говорить, об отсутствии чего бы то ни было просто смешано. Получается стандартнейшая схема плюс интеллектуальный редактор.
LVV> или версию программы ( на IL — см. выше).
IL не позволяет хранить всю информацию присутствующую в коде. Да и работать с ним неудобно (практически невозможно).
LVV>Ну, так это дополнительная фича, естественно для обратной совместимости с сегодняшними компиляторами-редакторами.
Не. Это единственный разумный вариант. Но тут мы приходим к одному выводу. Компилятор все равно нужен. А стало быть все это бессмысленные рассуждения, так как текстовый редактор не более чем тулз для редактирования кода.
LVV>И не надо!
Зачем тогда вообще было эту подветку открывать? Тут идет речь о создании нового языка. Зачем переводить все в бессмысленные рассуждения на сопутствующие темы?
LVV> Исчезнет масса рутинной работы и куча раздражающих ошибок. Особеноо для начинающих.
Ни грамма не исчезнет. То о чем ты говоришь, если откинуть утопичные идеи — это всего лишь интеллектуальный редактор кода. Редактор в студии и так очень интеллектуальный. И не факт, что повышение ограничений понравится людям. А главное, что это офтопик в данной теме.
LVV>Да. Только лексить и парсить правильный текст не надо.
Это не та проблема, над решением которой стоит трудиться. Интеллектуальный редактор не замена компилятору.
LVV> А отсюда все разговоры о написании лекс ера и парсера — просто не нужны.
Не. Не нужны вот эти твои утопичные разговоры. А лексеры и парсеры будут нужны до тех пор пока существует само понятие языков программирования. Любой самый визуальный язык (вроде UML) все равно где-то нужно хранить.
PS
Подитожу...
Разговоре о чудо-редакторе избавляющем от необходимости парсинга текста — утопия, так как парсер нужен хотя бы для хранения и обработки текста в проекте (разные системы контроля версий и т.п.). Стало быть интеллектуальный редактор это только дополнительная утилита позволяющая облегчить и ускорить написание кода.
Отсюда разговоры о ненужности парсера и лексера бессмысленны. Разговаривать имеет смысл только об интеллектуальном редакторе. Но это уже выходит за пределы этой темы.
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Интеллектуальный редактор кода контролирующий синтаксис при вооде
Здравствуйте, mihailik, Вы писали:
M>Имеет смысл делать что-то вроде Smart-Tags, более жёсткая автоматизация бесперспективна. По мере ввода текста анализатор колбасит и навешивает ярлычки на наиболее подозрительные места. FxCop+фоновая компиляция в одном флаконе.
О, блин! Васик.Видби, адназначна . Мелкие файлы и то тормозят как бревно в дверном проеме. А в итоге нифрена не может угадать, что я пытаюсь изобразить. Я с описанием импорта функции из длл бьюсь, а он урод предлагает слово статик на dim махнуть. Тупой. Не значет, что я его с шаредом перепутал.
В общем, это называется американской помешью. Уж лучше по проще (как в Шарпе), но не так тормозно и "интеллектуально".
M>Да ещё в модели SmartTags придётся умерить настырность, а то все знают, как Word автокорректирует
Во-во. Ворд еще ладно. А вот то, что в ХаРэ-шном Ёкселе эти уродские теги закрыть было нельзя — это уже задница. Перекрывают данные и все тебе.
M>А программеры — это же не юзеры. Им такая "помощь" ещё больше обидит. А уж за жёсткий контроль так просто сотрут с винта систему, даже feedback не пошлют.
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[4]: Интеллектуальный редактор кода контролирующий синтаксис при вооде
Здравствуйте, LaptevVV, Вы писали:
LVV>Но почему в промышленном программировании не катит? Доводы?
Потому-что неудобно. Навороченная среда вроде студии дает все те же приемущества, только не засовывает в уродские рамки создаваемые подобными "безспарсерными" идеологиями.
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Интеллектуальный редактор кода контролирующий синтаксис при вооде
VD>Качество будет хреновое и ограничений куча. Но в принципе можно. В гупте так и было. VD>Вот только задалбывать будет, что нельзя не объявив ххх его использовать в выражении. Делать все по порядку иногда очнь задалбывает.
Не обязательно. Вспомните ассемблер. Там имя можно использовать ДО объявления — и ничего. Претензии по по поводу двухпроходной трансляции — не принимаются — хорошо известен принцип однопроходной трансляции с возвратами для корректировки ранее отмеченного места по результатам вновь полученной информации. Просто окончательная трансляция с оптимизацией не делается, пока все не объявлено. А так — пусть себе висит флажок, что не объявлено.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Интеллектуальный редактор кода контролирующий синтаксис при вооде
Здравствуйте, VladD2, Вы писали:
VD>Боюсь тебя огорчить, но уже в 95-от в Гупту был добавлен экспорт/импорт из текстового формата.
Ну, это очевидно, что надо было делать так с самого начала — для обратной совместимости. LVV>>Эт я просто про редактор написал, а здесь же гипертекстовая организация проекта с завязкой на код здорово катит! VD>Еще одно красивое (в прошлом) слово. Жаль только еще более бессмысленное. Гипертекст и разработка ПО вещи очень далекие.
Ага, а перекрестные ссылки по определениям и вызовам в модулях-классах? Что это как не гипертекст. VD>Это мелкая подзадача. Ее решение давно найдено и мало кого интересует. А вот отсуствие читабельной "твердой копии" — это огромнейшая проблема.
БЛИНННННН!!!!!!!!! да кто говорит про отсутствие-то!!!!!!! Имейте себе на здоровье! Одно другому — не мешает. VD>Ничего ни где сразу не возникает. В таком редакторе ты получишь частично разобранный, в дерево разбора, код. Не более того. Никакого промежуточного представления ты не получишь. Ты даже нормального дага не получишь. VD>Ты серьезно считаешь себя умнее, чем весь остальной мир? Все кто занимались подобным подходом, продумывали разные варианты. Догадайся на чем остановились?
"Это спорный вопрос, между прочим. Ничего плохого я вам не сделал" (с) Лукашин.
А текстовый редактор — потому что проще реализовать, быстрей выпумстить в производство и соответственно, получить больше прибыли. Или это не понятно?
Страуструп именно о такой интегрированной среде говорит (Дизайн и эволюция С++ — завтра принесу книжку на работу и с точностью до предложения все напишу). ИДЕ ДОЛЖНА строится вокруг СЕМАНТИКИ языка. Я с ни абсолютно согласен — это к вопросу о том, кто умнее LVV>> Не вижу принципиальных проблем хранить версию текста VD>Так и стали делать. Только при этом говорить, об отсутствии чего бы то ни было просто смешано. Получается стандартнейшая схема плюс интеллектуальный редактор.
Ну так ......!!!!
И парсить нужды — нету! VD>Не. Это единственный разумный вариант. Но тут мы приходим к одному выводу. Компилятор все равно нужен. А стало быть все это бессмысленные рассуждения, так как текстовый редактор не более чем тулз для редактирования кода.
Не-а! Это — основа ИДЕ — читайте Страуструпа (не меня — я скромный )
VD>Разговоре о чудо-редакторе избавляющем от необходимости парсинга текста — утопия, так как парсер нужен хотя бы для хранения и обработки текста в проекте (разные системы контроля версий и т.п.). Стало быть интеллектуальный редактор это только дополнительная утилита позволяющая облегчить и ускорить написание кода.
VD>Отсюда разговоры о ненужности парсера и лексера бессмысленны. Разговаривать имеет смысл только об интеллектуальном редакторе. Но это уже выходит за пределы этой темы.
Ну, я понял, что тебе эта тема просто неинтересна.
И естественно, новый язык ты собираешься реализовывать стандартнейшим способом.
Жаль.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[6]: Интеллектуальный редактор кода контролирующий синтаксис при вооде
Здравствуйте, LaptevVV, Вы писали:
LVV>А текстовый редактор — потому что проще реализовать, быстрей выпумстить в производство и соответственно, получить больше прибыли. Или это не понятно?
Поэтому наверное в линуксе самые навороченные радакторы кода
Здравствуйте, LaptevVV, Вы писали:
LVV>Не обязательно. Вспомните ассемблер. Там имя можно использовать ДО объявления — и ничего. Претензии по по поводу двухпроходной трансляции — не принимаются — хорошо известен принцип однопроходной трансляции с возвратами для корректировки ранее отмеченного места по результатам вновь полученной информации. Просто окончательная трансляция с оптимизацией не делается, пока все не объявлено. А так — пусть себе висит флажок, что не объявлено.
У тебя в редакторе будет безпроходная трансляция. И возвратов быть не может. Или контроля не будет, а это всю твою идею сводит на нет.
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Интеллектуальный редактор кода контролирующий синтаксис при вооде
Здравствуйте, LaptevVV, Вы писали:
VD>>Боюсь тебя огорчить, но уже в 95-от в Гупту был добавлен экспорт/импорт из текстового формата. LVV>Ну, это очевидно, что надо было делать так с самого начала — для обратной совместимости.
Тогда зачем обсуждать создание редактора взамен парсера, если без парсера все равно никуда не денешся?
. Там строится дерево которое можно будет изменять программно. Твой редактор может воспользоваться этим механизмом как движком позволяющим динамически добавлять код прямо в дерево разбора.
Но заводить разговор о замене редактором парсера бессмысленно.
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Интеллектуальный редактор кода контролирующий синтаксис при вооде
Здравствуйте, VladD2, Вы писали:
LVV>>Ну, это очевидно, что надо было делать так с самого начала — для обратной совместимости.
VD>Тогда зачем обсуждать создание редактора взамен парсера, если без парсера все равно никуда не денешся?
Не взамен — а токмо для разбора текстов, подготовленных в других местах. VD>Посмотри на наши идеи по поводу метапрограммирования Метапрограммирование (к топику о новом языке)
. Там строится дерево которое можно будет изменять программно. Твой редактор может воспользоваться этим механизмом как движком позволяющим динамически добавлять код прямо в дерево разбора.
Вот!!! Это именно то, о чем я говорил с самого начала — ты это классно сформулировал!
Дерево — только не разбора, а синтаксически-семантическое делается сразу — в редакторе.
А уж из него можно генерить — хочешь тебе — текст, хочешь — IL. VD>Но заводить разговор о замене редактором парсера бессмысленно.
А парсер — это фактически конвертер из текста в дерево. Это дополнительная составляющая интегрированной среды (заметь, я не говорю — компилятора).
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Интеллектуальный редактор кода контролирующий синтаксис
> Редактор ДОПУСКАЕТ символьный ввод ТОЛЬКО в нужных местах. Программист просто не сможет изменить ключевое слово, стереть скобку и т.д.
Это неправильно. Резко уменьшаются возможности редактирования.
Часто из одного корректного текста можно перейти к другому корректному тексту только через некорректный.
Пример:
int a;
...
a = 1;
Перед нами стоит задача поменять тип переменной a на строковый.
У нас это не получится, потому что тип a мы не сможем поменять, потому что есть присваивание числа, а поменять a = 1 на строку тоже не сможем, потому что a объявлена как int.
Именно, поэтому системы, которые поддерживают только корректный ввод данных — обречены.
Re[8]: Интеллектуальный редактор кода контролирующий синтакс
Здравствуйте, LaptevVV, Вы писали:
LVV>Не взамен — а токмо для разбора текстов, подготовленных в других местах.
Тут оно как с беременностью. Или парсер нужен. Или нет. А если он нужен. То редактор всего лишь удобная фишка.
Еще раз повторю. Если у тебя есть подобная идея, то создай отдельный топк. Не в последню очередь из-за этой подветки темы переехали сюда из дотнета.
Если бы модератором был я. То эта подветка уеха лы бы из той темы сразу же как я ее заметил бы.
LVV>Дерево — только не разбора, а синтаксически-семантическое делается сразу — в редакторе.
Это называется AST (абстрактное синтаксическое дерево). Более того унас это даже будет смесь AST и рефлекшона. Так вот создание AST в обход парсера являлось офтопиком в той теме. Неужели это не ясно?
LVV>А уж из него можно генерить — хочешь тебе — текст, хочешь — IL.
Ну, и зачем тогда говорить о редакторе как об отдельной фиче? Будет готов парсер. Возьми из него описание AST и сделай редактор который будет создавать AST. Вот только в AST много информации уже потеряно. Тут нужно несколько расширять AST вводя в него дополнительные элементы вроде коментариев и строковых представлений литералов (представь ты введешь 1.12345456, а тебе его перепишут c экспонентой.
LVV>А парсер — это фактически конвертер из текста в дерево.
Парсер это более сложная сущоность. Без него говорить о редакторе бессмысленно. Кроме синтаксического разбора в нем делаются семантический разбор и оптимизации. Твое редактор должен хавать уже готовое дерево. Причем дерево нужно сохранять обратно в текст. Самопальные форматы провалились по полной программе.
LVV> Это дополнительная составляющая интегрированной среды (заметь, я не говорю — компилятора).
Это тупиковый подход. Реалистический был бы использование полноценного парсера для загрузки и сериализации в код. Нечто типа полноценного код-дом-провайдера (если ты слышал о таком). Тогда на долю редактора остается уже вполне посильная задача — изменение расширенного AST.
ЗЫ
Еще раз повторю. Не стоило переключать чужую тему. Для обсуждения этой идеи нужно было создать отдельную ветку.
... << RSDN@Home 1.1.2 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.