OberonCore https://forum.oberoncore.ru/ |
|
Семантический редактор https://forum.oberoncore.ru/viewtopic.php?f=93&t=1542 |
Страница 22 из 34 |
Автор: | Сергей Прохоренко [ Пятница, 01 Июнь, 2012 23:40 ] |
Заголовок сообщения: | Re: Семантический редактор |
Я нашел древний (1994) образец скобки операторного блока в диссертации Jeffrey Nickerson, озаглавленной "Visual Programming". Первоисточник картинки - книга Shooman, Martin, (1983), Software Engineering, New York: McGraw-Hill. Я начал использовать скобку операторного блока на распечатках программ тоже примерно в 1983 году (с закруглениями вместо стрелочек). Интересно, как одна и та же идея независимо приходит в голову разным людям. |
Автор: | Владислав Жаринов [ Суббота, 02 Июнь, 2012 17:11 ] |
Заголовок сообщения: | Re: Семантический редактор |
Да, бывает... мне идея ФМ-схем пришла незадолго до того, как познакомился со стандартом IDEF0 (от исключения времени из ВД с дугами передачи и разметкой сигналов). Валерий Лаптев в viewtopic.php?p=72922#p72922 писал(а): Посмотрел. 1989-го года ведь... Меня тоже в первую очередь заинтересовала (наряду с "Репрезентацией программ..."). Т.к. всё более правильным кажется схематическое представление на базе схем типов. А схемы потоков управления - только если предполагается делать процедуры крупными... В общем, примерно как Вы предполагаете...
Спасибо! Очень интересно! Особенно статья Скотта Мейерса и Рейса о семантическом графе программы... |
Автор: | Владислав Жаринов [ Вторник, 05 Июнь, 2012 11:42 ] |
Заголовок сообщения: | Семантический редактор и уровни описания |
Вот какие мысли вызывает чтение проекта Оберон применительно к структурному редактированию. 1. Подтверждается, что человекочитаемые формальные описания д.б. иерархичными. Иначе говоря, сказанное А. Донским здесь: viewtopic.php?p=72552#p72552 следует относить не только ко внутренней структуре программно-строгого описания, но и ко всей формализации. О чём, в сущности, и была вся эта страница... Возможный состав уровней иерархии м.б. найден из определения процесса моделирования/формализации (или его свёртки). Принимая определение на основе Леонтьева-Грековой-Фридланда, как раз имеем необходимость свёртки. Она довольно очевидна из той же Грековой, Акимова, а также из принципов инженерного программирования, и даёт три уровня: качественный ("предметный"), [логико-]математический, информатический. 2. Описания одного уровня также м.б. иерархичными, но уже "блочно" - относясь к различным областям связанных описаний других уровней (обычно соседних). Это хорошо видно на комментированных исхтекстах книги - напр., процедуры Edit на с. 125-127. 3. Названные иерархии надо представлять совмещённо. В граф-базированной форме записи пригоден (хотя и не вполне адекватен) механизм областей с примечаниями при некоторой дисциплине введения областей. Адекватность достигается счетанием с примечаниями к вершинам графа и с комментированием непосредственно в тексте вершин. Однако, следуя замечанию Ермакова о необходимости изоморфных представлений одного предмета формализации, нужно иметь также чисто текстовые средства выражения. Принятые Виртом и Гуткнехтом (раздельная запись программно и качественно формального текстов со связью их по индексам элементов - в данном случае абзацев) наиболее очевидны, но не оптимальны для восприятия.
При реализации такой схемы можно исходить из следующего.
* текст м.б. сформирован как "отчёт" (вьюшка) от граф-базированной записи, причём уровни в отчёт включаются по выбору; * для отражения соответствия "один в один" можно применять "формальное комментирование". Примерно так. Интересны будут другие мнения. |
Автор: | Владислав Жаринов [ Понедельник, 11 Июнь, 2012 08:39 ] |
Заголовок сообщения: | Re: Семантический редактор |
Вот взглянул на очередные "СТА"... и такая статья: http://issuu.com/cta-mag/docs/20114054? ... =%23222222. Что-то похожее по возможностям на ГРАФКОНТ, а по идее отдельных решений -на ГРАФИТ-ФЛОКС (наличие базы сущностей, отдельное схемное представление алгоритмов). Но т.к. полноконтурные АСУ "человек-информашина-среда" в Орион-среде разрабатываются - то также конструируется интерфейс оператора. |
Автор: | Илья Ермаков [ Понедельник, 11 Июнь, 2012 09:29 ] |
Заголовок сообщения: | Re: Семантический редактор |
Процитирую: Цитата: Программное обеспечение (ПО) АСУ ТО проектируется и реализуется на разработанном в ЗАО «СКБ Орион» инструментальном комплексе, позволяющем создавать ПО для систем высокой надёжности. Инструментальные средства включают в себя редактор мнемосхем, редактор алгоритмов, имитационное ПО для отладки, генератор исполняемого кода, систему контроля версий и ряд других компонентов.
Программист-технолог (для него не обязательно знание языков программирования, важно лишь понимание технологических процессов и основ алгоритмизации) средствами специальных редакторов создаёт базу сигналов (составляющая базы данных, содержащая описания сигналов системы, их характеристики, для аналоговых сигналов – ещё и интерпретационные законы; может использоваться отдельно от технологической базы данных на этапе калибровки системы и отвечает за её метрологическое обеспечение), интерфейс оператора и алгоритм управления. В базу данных программист-технолог включает всю совокупность устройств объекта управления, датчиков, сигналов управления, служебных сигналов, с которыми имеет дело алгоритм работы системы. С помощью редактора алгоритмов задаются в графической форме алгоритмы работы системы управления. В редакторе интерфейса программист задает всё, что касается диалога «человек – машина»: вид мнемосхем, активные области, органы управления, вид отображаемой информации, графики, протоколы, диалоги и пр. Генератор осуществляет трансляцию созданных знаний в машинный код, который сохраняется в виде версии ПО и передаётся исполняющим устройствам: устройствам управления, УСО, автоматизированным рабочим местам операторов. Программирование и корректировка ПО системы управления в процессе наладки не требуют навыков профессиональных программистов и использования языков программирования низкого уровня. Всю работу по переводу знаний о поведении объекта в машинный код проводит инструментальное ПО, специально разработанное для этой задачи. |
Автор: | Владислав Жаринов [ Понедельник, 11 Июнь, 2012 09:37 ] |
Заголовок сообщения: | Re: Семантический редактор |
Это да... приблизительно к этому, видимо, следует стремиться... К сожалению, качество иллюстраций неважное - поэтому о точном формализме, принятом для схем алгоритмов, нужно догадываться... Похоже на сети Петри для систем алгопроцессов (с явными расщеплениями и слияниями "рабочих точек"). |
Автор: | Владислав Жаринов [ Вторник, 12 Июнь, 2012 07:29 ] |
Заголовок сообщения: | Re: Семантический редактор |
Кстати, схемы в операторском интерфейсе (не только в этой среде) суть частные актив-схемы (только для объекта управления). А такие системы, как ПЕКАН, просто расширяют представление актив-компоненты и на сам управитель... Да, к сказанному в этом посте нужно добавить наличие уровней детализации всего описания. Как результат примерно такого хода формализации: Илья Ермаков в viewtopic.php?p=35029#p35029 писал(а): ... Ну, дело-то известное - пошаговая детализация - просто упустил из виду...
"Разделяй и властвуй". И стройте сверху вниз, используя имена ещё неописанных процедур, а потом их определяя. |
Автор: | Валерий Лаптев [ Среда, 13 Июнь, 2012 13:43 ] |
Заголовок сообщения: | Re: Семантический редактор |
Обнаружился неожиданный бонус от внедрения среды в обучение. Как-то ранее не приходило в голову, что студенты-халявщики при изучении языков программирования частенько прибегают к помощи "старших" товарищей. К самой разнообразной: от простого репетиторства до оплаты за изготовление лабов. С нашей новой средой подобного быть в принципе не может... Ибо по-легкому срубить денежку у изготовляющего не получится - надо среду освоить сначала. А она пока без документации... И язык незнакомый... По собственному опыту знаю, что ради малого заработка за такую работу никто не возьмется (в отличие от лабов на С++/С# - все программеры их знают ). Придется халявщикам делать все самим - или вылетать... А еще один наш второкурсник сделал курсовую: среда с полным протоколированием действий студента, и с сохранением всех версий создаваемой программы. И она не пускает студента никуда. То есть в принципе нельзя открыть браузер и списать из интернета... Для контрольных - хорошо. К ней прикручен MinGW как внешний пакет. Поэтому в принципе можно прикрутить что угодно... |
Автор: | Madzi [ Среда, 13 Июнь, 2012 21:46 ] |
Заголовок сообщения: | Re: Семантический редактор |
Главное чтобы потом не обнаружилось неудобство Когда я требовал от студентов курсовых на обероне, старшие товарищи тоже мало кому помогали. Но всегда есть пара студентов, которым нужно позарез сделать курсовую, потому что у них "крыша" в вузе. Так вот, как я в последствии узнал, оберон пришлось осваивать одному профессору с соседней кафедры, так как родители попросили "помочь", а отказать им он не мог. |
Автор: | Валерий Лаптев [ Четверг, 14 Июнь, 2012 08:19 ] |
Заголовок сообщения: | Re: Семантический редактор |
Madzi писал(а): Главное чтобы потом не обнаружилось неудобство Когда я требовал от студентов курсовых на обероне, старшие товарищи тоже мало кому помогали. Но всегда есть пара студентов, которым нужно позарез сделать курсовую, потому что у них "крыша" в вузе. Так вот, как я в последствии узнал, оберон пришлось осваивать одному профессору с соседней кафедры, так как родители попросили "помочь", а отказать им он не мог. Я подобных случаев у нас не знаю. И уверен, что в подобном случае тем самым профессором окажусь именно я... То есть обратятся ко мне . А я этого делать не буду. Учитывая, что я практически пенсионер - пошлю далеко и надолго... Только ректора не пошлю - он много мне хорошего сделал Но все равно откажусь... |
Автор: | Дмитрий Грачёв [ Четверг, 14 Июнь, 2012 12:46 ] |
Заголовок сообщения: | Re: Семантический редактор |
Валерий Лаптев писал(а): Madzi писал(а): Главное чтобы потом не обнаружилось неудобство Когда я требовал от студентов курсовых на обероне, старшие товарищи тоже мало кому помогали. Но всегда есть пара студентов, которым нужно позарез сделать курсовую, потому что у них "крыша" в вузе. Так вот, как я в последствии узнал, оберон пришлось осваивать одному профессору с соседней кафедры, так как родители попросили "помочь", а отказать им он не мог. Я подобных случаев у нас не знаю. И уверен, что в подобном случае тем самым профессором окажусь именно я... То есть обратятся ко мне . А я этого делать не буду. Учитывая, что я практически пенсионер - пошлю далеко и надолго... Только ректора не пошлю - он много мне хорошего сделал Но все равно откажусь... Тогда меня заставят |
Автор: | Madzi [ Четверг, 14 Июнь, 2012 16:39 ] |
Заголовок сообщения: | Re: Семантический редактор |
Валерий Лаптев писал(а): Учитывая, что я практически пенсионер - пошлю далеко и надолго... Тот профессор был уже запенсионного возраста. Поэтому и неудобно было, когда выяснилось... |
Автор: | Владислав Жаринов [ Суббота, 23 Июнь, 2012 10:44 ] |
Заголовок сообщения: | Re: Семантический редактор |
На РСДН обсуждают синтаксисы и в связи с этим - умотипы: http://www.rsdn.ru/forum/NewMsg.aspx?mid=4778476 . А также структурное редактирование непрограммно строгого текста: http://www.rsdn.ru/forum/tools/4781129.flat.aspx. Однако и лексика там местами... |
Автор: | Владислав Жаринов [ Среда, 25 Июль, 2012 08:58 ] |
Заголовок сообщения: | Семантический редактор и его язык |
Ну что ж, в силу единства пространства общения Оберонкоре и на РСДН начатое обсуждение техноязыка перешло на Оберон-технологии... Теперь ветки разделили, и наряду с эмоциями можно даже найти ке-что конкретное: http://www.rsdn.ru/forum/philosophy/480 ... at.20.aspx. Как раз в связи с предполагаемой статьёй в РСДН о топике ветки есть кое-какие мысли, уточняющие сказанное ранее. Один из повторяющихся мотивов дискуссии - так чем же и почему различаются между собой Обероны (как языки в базовом определении, так и подходы к их расширяемости)? И вот в статье бы для начала проанализироовать это - на основе чего дать обоснование, почему язык структурного редактора тоже от них отличается... и библиотечность (фреймворк), видимо, тоже... |
Автор: | Info21 [ Среда, 25 Июль, 2012 12:00 ] |
Заголовок сообщения: | Re: Семантический редактор и его язык |
Владислав Жаринов писал(а): наряду с эмоциями можно даже найти ке-что конкретное: Нету там ничего конкретного. Не надо зря публику напрягать.
|
Автор: | Владислав Жаринов [ Среда, 25 Июль, 2012 12:44 ] |
Заголовок сообщения: | Re: Семантический редактор |
Ну, один-два человека усиленно отстаивают Обероны... приводя и содержательные аргументы... и даже связанные с "неизбыточной сложностью". Другое дело - что общий тон совершенно на конструктив не настраивает... и много личного, за что здесь бы уже... откорректировали... Потому дискуссия, в общем-то, ходит вокруг одних и тех же вещей... Кстати, выявляется отстутствие систематических представлений о механизмах взаимодействия совместно протекающих процессов и об их программной реализации (не только в Оберонах)... Пожалуй, тема для ещё одной "таблички, куда можно было бы ткнуть носом"... Кстати, очень верное один там сделал замечание по поводу встроенки и Оберона... |
Автор: | Info21 [ Четверг, 26 Июль, 2012 01:08 ] |
Заголовок сообщения: | Re: Семантический редактор |
Владислав Жаринов писал(а): дискуссия, в общем-то, ходит вокруг одних и тех же вещей уже со счёту сбился сколько лет.Самодовольство программеров превосходит всё, что я имел удовольствие наблюдать в науках. |
Автор: | Валерий Лаптев [ Вторник, 28 Август, 2012 09:40 ] |
Заголовок сообщения: | Re: Семантический редактор |
"Кстати, о музыке..."(с) Мы с 1 сентября начинаем обучать основам алгоритмизации на нашей среде. Конечно, не все еще доделано, но среда дышит и перве лабы я на ней написал. Кроме того, посмотрите, как реализована библиотека... Код: модуль Система подключить СистемаБаза; подключить Строки; #Останавливает поток выполнения на указанное число миллисекунд# откр процедура(входной целое миллисекунды) Заснуть вызвать СистемаБаза.Проверить(миллисекунды > 0, Строки.Инициализировать("Параметр 'миллисекунды' не может быть отрицательным")); вызвать СистемаБаза.Заснуть(миллисекунды); конец Заснуть; #Возвращает вещественное число из строки# откр функция(выходной Строки.Строка х):вещ СтрокаВВещ вернуть СистемаБаза.СтрокуВВещ(х); конец СтрокаВВещ; #Превращает целое число в строку# откр функция(входной целое х):Строки.Строка ЦелоеВСтроку вернуть СистемаБаза.ЦелоеВСтроку(х); конец ЦелоеВСтроку; #Превращает вещественное число в строку# откр функция(входной вещ х):Строки.Строка ВещВСтроку вернуть СистемаБаза.ВещВСтроку(х); конец ВещВСтроку; #Возвращает системное время в миллисекундах# откр функция():целое Миллисекунды вернуть СистемаБаза.Миллисекунды(); конец Миллисекунды; #Проверяет истинность утверждения Если утверждение неверно, то прерывает выполнение с ошибкой "сообщение"# откр процедура(входной булев утверждение, выходной Строки.Строка сообщение) Проверить вызвать СистемаБаза.Проверить(утверждение, сообщение); конец Проверить; начало конец Система. модуль Строки откр тип Строка закр поле-массив[256] символ массивСимволов; закр поле-целое размер; откр метод(Строка этот)():целое Длина вернуть этот.размер; конец Длина; откр метод(Строка этот)(входной целое номер):символ ВзятьСимвол вернуть этот.массивСимволов[номер]; конец ВзятьСимвол; откр метод(Строка этот)(входной целое номер, входной символ симв) УстановитьСимвол присвоить этот.массивСимволов[номер] := симв; конец УстановитьСимвол; откр метод(Строка этот)(выходной Строка строка) Склеить переменная-целое новыйРазмер := этот.размер + строка.Длина(); если новыйРазмер > этот.массивСимволов.размер() то переменная-массив[новыйРазмер] символ новыйМассив; переменная-целое и := 0; пока и < новыйРазмер повторять если и < этот.размер то присвоить новыйМассив[и] := этот.ВзятьСимвол(и); иначе присвоить новыйМассив[и] := строка.ВзятьСимвол(и - этот.размер); конец ветвления; присвоить и := и + 1; конец цикла; присвоить этот.массивСимволов := новыйМассив; иначе переменная-целое и := этот.размер; пока и < новыйРазмер повторять присвоить этот.массивСимволов[и] := строка.ВзятьСимвол(и - этот.размер); присвоить и := и + 1; конец цикла; конец ветвления; присвоить этот.размер := новыйРазмер; конец Склеить; откр метод(Строка этот)(выходной массив[] символ массивСимволов) Сцепить переменная-целое новыйРазмер := этот.размер + массивСимволов.размер(); если новыйРазмер > этот.массивСимволов.размер() то переменная-массив[новыйРазмер] символ новыйМассив; переменная-целое и := 0; пока и < новыйРазмер повторять если и < этот.размер то присвоить новыйМассив[и] := этот.ВзятьСимвол(и); иначе присвоить новыйМассив[и] := массивСимволов[и - этот.размер]; конец ветвления; присвоить и := и + 1; конец цикла; присвоить этот.массивСимволов := новыйМассив; иначе переменная-целое и := этот.размер; пока и < новыйРазмер повторять присвоить этот.массивСимволов[и] := массивСимволов[и - этот.размер]; присвоить и := и + 1; конец цикла; конец ветвления; присвоить этот.размер := новыйРазмер; конец Сцепить; откр метод(Строка этот)(выходной массив[] символ массивСимволов) Инициализировать вызвать этот.Сцепить(массивСимволов); конец Инициализировать; откр метод(Строка этот)(входной целое номер, входной целое длина):Строка ВзятьПодстроку переменная-целое и := 0; переменная-массив[длина] символ строка; пока и < длина повторять присвоить строка[и] := этот.ВзятьСимвол(и + номер); присвоить и := и + 1; конец цикла; переменная-Строка подстрока; присвоить подстрока.массивСимволов := строка; вернуть подстрока; конец ВзятьПодстроку; откр метод(Строка этот)(выходной Строка подстрока):целое НайтиПодстроку переменная-целое и := 0; переменная-целое ж; пока и < этот.Длина() - подстрока.Длина() + 1 повторять присвоить ж := 0; пока ж < этот.Длина() & подстрока.ВзятьСимвол(ж) = этот.ВзятьСимвол(и + ж) повторять если ж = подстрока.Длина() - 1 то вернуть и; конец ветвления; присвоить ж := ж + 1; конец цикла; присвоить и := и + 1; конец цикла; вернуть minus1; конец НайтиПодстроку; конец Строка; #Возвращает строку из массива символов или строковой константы# откр функция(выходной массив[] символ массивСимволов):Строка Инициализировать переменная-Строка строка; вызвать строка.Инициализировать(массивСимволов); вернуть строка; конец Инициализировать; ## откр процедура(выходной Строка строка1, выходной Строка строка2) Склеить вызвать строка1.Склеить(строка2); конец Склеить; ## откр процедура(выходной Строка строка, входной массив[] символ массивСимволов) Сцепить вызвать строка.Сцепить(массивСимволов); конец Сцепить; ## откр функция(выходной Строка строка, выходной целое номер):символ ВзятьСимвол вернуть строка.ВзятьСимвол(номер); конец ВзятьСимвол; ## откр процедура(выходной Строка строка, входной целое номер, входной символ симв) УстановитьСимвол вызвать строка.УстановитьСимвол(номер, симв); конец УстановитьСимвол; ## откр функция(выходной Строка строка):целое Длина вернуть строка.Длина(); конец Длина; ## откр функция(выходной Строка строка, входной целое номер, входной целое длина):Строка ВзятьПодстроку вернуть строка.ВзятьПодстроку(номер, длина); конец ВзятьПодстроку; ## откр функция(выходной Строка строка, входной Строка подстрока):целое НайтиПодстроку вернуть строка.НайтиПодстроку(подстрока); конец НайтиПодстроку; начало конец Строки. модуль Файлы подключить ФайлыБаза; подключить Строки; константа целое Чтение = 0; константа целое Запись = 1; константа целое Дозапись = 2; #Используется для ввода/вывода данных из файловой системы Объект данного типа можно получить функцией "Открыть(путь, режим): Файл"# откр тип Файл откр поле-ФайлыБаза.Файл базовыйФайл; откр поле-ФайлыБаза.Поток базовыйПоток; конец Файл; #Открывает файл для чтения, записи или дозаписи В качестве переменной "режим" должна быть указана одна из констант Чтение, Запись или Дозапись# откр функция(выходной Строки.Строка путь, выходной целое режим):Файл Открыть переменная-Файл файл; присвоить файл.базовыйФайл := ФайлыБаза.СоздатьФайл(путь); присвоить файл.базовыйПоток := файл.базовыйФайл.Открыть(режим); вернуть файл; конец Открыть; #Закрывает файл, делая его доступным для открытия в новом режиме# откр процедура(выходной Файл файл) Закрыть вызвать файл.базовыйПоток.Закрыть(); конец Закрыть; #Возвращает истину, если достигнут конец файла# откр функция(выходной Файл файл):булев КонецФайла вернуть файл.базовыйПоток.Конец(); конец КонецФайла; #Читает строку из файла до символа "\n"# откр функция(выходной Файл файл):Строки.Строка ПрочитатьСтроку вернуть файл.базовыйПоток.ПрочитатьСтроку(); конец ПрочитатьСтроку; #Записывает строку в файл# откр процедура(выходной Файл файл, выходной Строки.Строка строка) ЗаписатьСтроку вызвать файл.базовыйПоток.ЗаписатьСтроку(строка); конец ЗаписатьСтроку; начало конец Файлы. Комментарий непосредственно перед оператором - это кратенькая подсказка-помощь, которая показывается пользователю при определенных обстоятельствах. В модуле Строки реализован тип строка с методами. И обычные функции. Чтобы и так и так можно было. |
Автор: | Валерий Лаптев [ Вторник, 28 Август, 2012 09:52 ] |
Заголовок сообщения: | Re: Семантический редактор |
А вот как выглядит модуль математики Код: модуль Math подключить МатематикаБаза; откр функция():вещ PI вернуть МатематикаБаза.Пи(); конец PI; откр функция(входной вещ х):вещ Exp вернуть МатематикаБаза.Экспонента(х); конец Exp; откр функция(входной вещ х):вещ Sin вернуть МатематикаБаза.Синус(х); конец Sin; откр функция(входной вещ х):вещ Cos вернуть МатематикаБаза.Косинус(х); конец Cos; откр функция(входной вещ х):вещ Tan вернуть МатематикаБаза.Синус(х) / МатематикаБаза.Косинус(х); конец Tan; откр функция(входной вещ х):вещ Ctan вернуть МатематикаБаза.Косинус(х) / МатематикаБаза.Синус(х); конец Ctan; откр функция(входной вещ х):целое ToInteger вернуть МатематикаБаза.ПриветиКЦелому(х); конец ToInteger; откр функция(входной вещ х, входной вещ power):вещ Pow вернуть МатематикаБаза.Степень(х, power); конец Pow; закр функция(входной целое х):целое Abs вернуть МатематикаБаза.Модуль(х); конец Abs; откр функция(входной вещ х):вещ Fabs вернуть МатематикаБаза.МодульВещ(х); конец Fabs; откр функция(входной вещ х):вещ Sqrt вернуть МатематикаБаза.Степень(х, 0.5); конец Sqrt; откр функция(входной вещ х, входной вещ base):вещ Log вернуть МатематикаБаза.Логарифм(х, base); конец Log; закр функция(входной вещ х):вещ Ln вернуть МатематикаБаза.Логарифм(х, МатематикаБаза.Экспонента(1)); конец Ln; откр функция(входной вещ х):вещ Asin вернуть МатематикаБаза.Арксинус(х); конец Asin; откр функция(входной вещ х):вещ Acos вернуть МатематикаБаза.Арккосинус(х); конец Acos; откр функция(входной вещ х):вещ Atan вернуть МатематикаБаза.Арктангес(х); конец Atan; начало конец Math. МатематикаБаза - это слой, зависимый от окружения. А сама математики уже от окружения не зависит. Аналогично и в других модулях сделано. Файлы подключают ФайлыБаза - там прописаны зависимости от окружения. По-прежнему следуем минималистским принципам. Сильно похоже на ББ, но редактор - не текстовый. Ошибок набора - просто нет. Все ошибки - семантические. И появляются в момент набора. Например, имя неправильно написал - либо объяви новое, либо исправь на существующее. Поскольку копипасты нет, приходится много исследовать методы рефакторинга. Например, "одеть" оператор в комментарий и, соответственно, раздеть. Эта работа - на полгода как минимум. Весь семестр будеми накапливать информацию, исправлять обнаруженные ляпы, а к концу года сделаем уже триальный вариант. Кстати, при наличии установленного .NET Famework 4.0 сама среда занимает всего 5 метров... Но много еще не сделано. В среде пока нет нормального хелпа. А в языке еще нет наследования. Ну и исследовательские работы по изучению возможных пользовательских операций вместо текстовых. |
Автор: | Дмитрий Грачёв [ Вторник, 28 Август, 2012 14:07 ] | |||
Заголовок сообщения: | Re: Семантический редактор | |||
Описание проекта среды можно почитать в недавно вышедшей статье в сборнике "Объектные системы - 2012" (стр. 92-101). Рабочая версия соответствует ему процентов на 90. добавлен сегодняшний скриншот
|
Страница 22 из 34 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |