OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Вторник, 19 Март, 2024 07:39

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




Начать новую тему Ответить на тему  [ Сообщений: 44 ]  На страницу 1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: Вторник, 15 Февраль, 2011 23:40 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Уже полгода на моем рабочем столе лежит презентация The Next Mainstream Programming Language: A Game Developer’s Perspective - крик души разработчика игр. Лежит как напоминание о том, что хороший структурный редактор должен соответствовать этим ясно выраженным потребностям. Должен признать, что предложенные автором решения мне понравились. А компьютерные игры - это передовой край Computer Science, эталон пригодности инструментального программного обеспечения к решению сложных задач.

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


Последний раз редактировалось Сергей Прохоренко Среда, 16 Февраль, 2011 10:47, всего редактировалось 3 раз(а).

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 15 Февраль, 2011 23:49 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Я думаю, что структурно-семантические редакторы должны быть СПЕЦИАЛИЗИРОВАННЫМИ по предметным областям. Как автомобили: легковые, грузовые, фургоны, автобусы и т.п.


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

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

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 16 Февраль, 2011 00:17 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Практически все, что там перечислено - уже есть в Компонентном паскале... :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 16 Февраль, 2011 00:43 
Аватара пользователя

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


А можно поточнее - чего нет?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 16 Февраль, 2011 06:41 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 2046
Сергей Прохоренко писал(а):
Валерий Лаптев писал(а):
Практически все, что там перечислено - уже есть в Компонентном паскале... :)
А можно поточнее - чего нет?
А кстати - структурный редактор ведь делает только исходный текст для какого-то компилятора, выбранного "в связку"? Вот какой подразумевается как целевой для Оберон-07?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 16 Февраль, 2011 07:33 

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

Любопытно. А что именно из этого списка есть в Компонентном паскале?
"экспертное" мнение удалено модератором (троллинг, п 5.7/2)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 16 Февраль, 2011 10:45 
Аватара пользователя

Зарегистрирован: Воскресенье, 08 Июль, 2007 00:38
Сообщения: 778
Откуда: Москва
Драконограф писал(а):
А кстати - структурный редактор ведь делает только исходный текст для какого-то компилятора, выбранного "в связку"? Вот какой подразумевается как целевой для Оберон-07?


Нет, структурный редактор не "делает только исходный текст для какого-то компилятора".

Во-первых, для PureBuilder внутренним языком является новый диалект на основе Оберон-07, но не Оберон-07 как таковой. Язык Оберон-07 дополнен некоторыми конструкциями, подходящими для визуального программирования, повышающими надежность программ, производительность труда программиста или доступность технологий. При этом вектором развития языка не является его приближение к так называемым "промышленным" языкам ("мэйнстриму"), т.е. C, C++, Java, C#. У Валерия Лаптева также имелись планы "отклониться" от Оберона, в частности, попытаться реализовать несколько вариантов синтаксиса (а-ля Паскаль и а-ля Си), добавить какие-то конструкции в учебных целях, а его студент реализует вариант с русскими служебными словами.

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

В-третьих, структурный редактор сам и непосредственно формирует абстрактное синтаксическое дерево, то есть, заменяет собой front-end компилятора. Естественно добавить к нему и новый back-end. К тому же, Валерия Лаптева привлекает технология динамической кодогенерации, которая должна быть внедрена в структурный редактор.

Тот структурный редактор, о которм Вы пишите, - порождающий исходный текст - существует сейчас только в варианте Кирилла Осенкова. Он порождает исходники на C#.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 16 Февраль, 2011 15:36 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Сергей Прохоренко писал(а):
Валерий Лаптев писал(а):
Практически все, что там перечислено - уже есть в Компонентном паскале... :)


А можно поточнее - чего нет?

Последнего пункта - параллельность. Решается средствами ОС.
Ну и контроль переполнения - это тоже легко решается для стандартных целых. А для длинных - надо в модуль Integer добавлять проверку.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 16 Февраль, 2011 15:43 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
(В КП/ББ есть контроль переполнения, включается опцией компилятора.)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 16 Февраль, 2011 15:48 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Сергей Прохоренко писал(а):
Нет, структурный редактор не "делает только исходный текст для какого-то компилятора".

Совершенно верно.
Цитата:
Во-первых, для PureBuilder внутренним языком является новый диалект на основе Оберон-07, но не Оберон-07 как таковой. Язык Оберон-07 дополнен некоторыми конструкциями, подходящими для визуального программирования, повышающими надежность программ, производительность труда программиста или доступность технологий. При этом вектором развития языка не является его приближение к так называемым "промышленным" языкам ("мэйнстриму"), т.е. C, C++, Java, C#. У Валерия Лаптева также имелись планы "отклониться" от Оберона, в частности, попытаться реализовать несколько вариантов синтаксиса (а-ля Паскаль и а-ля Си), добавить какие-то конструкции в учебных целях, а его студент реализует вариант с русскими служебными словами.

Взяв за образец
а) русский язык в Кумире
б) работу инфо-21 по руссификации КП
пытаемся состряпать некий минимальный алгоритмический язык по образцу КП.
Редактор НЕ РАЗРЕШАЕТ изменять ключевые слова. Изменения разрешаются только в определенных местах оператора - где требуется вводить ручками.
Естественно, одним нажатием клавиши =- переключение всех ключевых слов на английский.
Цитата:
Во-вторых, структурный редактор (в моем представлении) не должен порождать программу в форме текста, так как всякие высокоуровневые надстройки типа слоев, подсистем, интерфейсов к базе данных и т.п. сложно выразить в виде текста, и это могло бы неоправданно усложнить структурный редактор или сузить его возможности. Да и особой необходимости в текстовом представлении нет.

В-третьих, структурный редактор сам и непосредственно формирует абстрактное синтаксическое дерево, то есть, заменяет собой front-end компилятора. Естественно добавить к нему и новый back-end. К тому же, Валерия Лаптева привлекает технология динамической кодогенерации, которая должна быть внедрена в структурный редактор.

Да. Работа выполняется с моделью.
Представлений пока три: а) текстовое - на экране; дерево вложенности - на экране; сохраняемый файл - xml (пока). Пацан пишет на додиезе - конкретно сейчас у них дисциплина NEYT-программирование. И данный редактор идет как курсовой проект в среде дотнет на додиезе.
Сегодня разговаривали об интерпретаторе модели - выполнение программ.
Дальше будем думать о генераторе некоего кода и конвертерах в сохраняемый текстовый вид.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 16 Февраль, 2011 15:49 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Илья Ермаков писал(а):
(В КП/ББ есть контроль переполнения, включается опцией компилятора.)

Ну вот. Тады - ОЙ! :)
Так что ничего придумывать не нужно, нужно взять ББ+КП - и использовать... :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 16 Февраль, 2011 16:23 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Илья Ермаков писал(а):
(В КП/ББ есть контроль переполнения, включается опцией компилятора.)

В тьюринг-полном языке контроль выхода за границы массива и целочисленного переполнения на этапе компиляции принципиально невозможно реализовать.

А про контроль времени исполнения Geniepro всё уже сказал, да только это всё удалили, хотя было в тему.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 16 Февраль, 2011 20:18 
Аватара пользователя

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


А всё остальное тоже есть? - вопрос к специалисту.

Обращаю Ваше внимание на то, что автор презентации хочет не генерации и обработки прерывания/исключения во время исполнения, а он хочет контроля во время компиляции.

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


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 16 Февраль, 2011 20:22 
Аватара пользователя

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

Любопытно. А что именно из этого списка есть в Компонентном паскале?
"экспертное" мнение удалено модератором (троллинг, п 5.7/2)


Прошу модератора переслать мне удаленное сообщение в личку. Обязуюсь не выкладывать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 16 Февраль, 2011 20:30 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Сергей Прохоренко писал(а):
Прошу модератора переслать мне удаленное сообщение в личку. Обязуюсь не выкладывать.
Технически не возможно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 16 Февраль, 2011 20:48 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Сергей Прохоренко писал(а):
Илья Ермаков писал(а):
(В КП/ББ есть контроль переполнения, включается опцией компилятора.)


А всё остальное тоже есть? - вопрос к специалисту.

Обращаю Ваше внимание на то, что автор презентации хочет не генерации и обработки прерывания/исключения во время исполнения, а он хочет контроля во время компиляции.

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

Длинные числа обычно реализуются в библиотеке. И они там есть... :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 16 Февраль, 2011 20:56 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Сергей Прохоренко писал(а):
Кстати, целочисленного типа переменной длины уж точно нет в КП (и, наверное, вообще ни в одном из языков программирования), а идея интересная.

Они есть во многих языках. Например в Haskell, Erlang and so on.
Ну а, скажем, в Аде прямо в типе можно заказать такую битность числа, какая нужна.

PS. Про это Geniepro также написал, кстати.


Последний раз редактировалось Alexey Veselovsky Среда, 16 Февраль, 2011 21:02, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 16 Февраль, 2011 21:00 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Валерий Лаптев писал(а):
Длинные числа обычно реализуются в библиотеке. И они там есть... :)

Про сравнение КПшной библиотеки с libgmp Geniepro также вполне вменяемо написал в удаленном модераторами сообщении.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 17 Февраль, 2011 06:24 

Зарегистрирован: Воскресенье, 01 Ноябрь, 2009 05:13
Сообщения: 2046
Валерий Лаптев писал(а):
Сергей Прохоренко писал(а):
Нет, структурный редактор не "делает только исходный текст для какого-то компилятора".

Совершенно верно.
...
Да. Работа выполняется с моделью.
...
Кстати, если о топике темы, то документ редактора для разработки игр должен нести модель мира, для описания которой д.б. "сурьёзный" язык поддержан... :) конечно, есть, скажем, VRML (см. выдержку из Ахромова в этом сообщении)...
А мысль интересная ещё и тем, что ведь использовать это можно и для реализации внутри документа динамических моделей процессов, явлений (в учебных целях прежде всего).


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 44 ]  На страницу 1, 2, 3  След.

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


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

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


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

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