Оберон-клуб «ВЄДАsoft»

Твердыня модульных языков
Текущее время: 19 мар 2024, 11:18

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




Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Какая типизация у Free Oberon?
СообщениеДобавлено: 14 дек 2019, 18:25 
Не в сети

Сообщения: 53
Вроде такой крутой язык программирования и нету фичи :cry: .

_________________
Работаю в Windows 10. В то же время также установлен Линукс для некоторых ситуаций


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Какая типизация у Free Oberon?
СообщениеДобавлено: 14 дек 2019, 19:24 
Не в сети
Аватара пользователя

Сообщения: 67
Откуда: Equestria
Было в Паскале. Вырезание в Обероне объясняется тем что используется редко, но усложняет компилятор.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Какая типизация у Free Oberon?
СообщениеДобавлено: 14 дек 2019, 19:40 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
Pimbom писал(а):
А за счет чего это достигается? А как добиться таких же высоких результатов контроля ошибок в Оберонах?
Это достигается за счёт сильного усложнения языка/компилятора, добавления возможности конструировать разные виды целочисленных типов и описаний сложных взаимодействий типов между собой. Так что это не Oberon-way, увы.

Оберон реализует философию простоты, так что его наполнять разными фичами, надёрганными отовсюду, никто не собирался, задумка была другая. Это фактически ООП-ассемблер или предельно минимальный ЯВУ, наверное самый маленький из всех языков, которые можно использовать для решения своих задач на практике.

Niklaus Wirth писал(а):
Типы диапазонов были введены в Паскале (и сохранены в Modula-2) по двум причинам: (1) чтобы подчеркнуть тот факт, что переменная принимает значения из ограниченного диапазона базового типа, и чтобы дать возможность компилятору генерировать соответствующий проверочный код для присваиваний; (2) чтобы позволить компилятору выделять минимально необходимое пространство памяти для хранения значений из указанного диапазона. Это желательное свойство в плане использования упакованных записей. Лишь в небольшом числе реализаций используется данное преимущество экономии памяти, поскольку при этом компилятор довольно значительно усложняется. Причины под номером (1) явно недостаточно, чтобы оставить в Обероне работу с диапазонами.
http://oberon2005.oberoncore.ru/obe_faq2.html


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Какая типизация у Free Oberon?
СообщениеДобавлено: 15 дек 2019, 20:02 
Не в сети

Сообщения: 76
Pimbom писал(а):
Вроде такой крутой язык программирования и нету фичи :cry: .
В ActiveOberon введён тип RANGE
Код: "OBERON"
  1. VAR
  2. R := 0..15: RANGE;


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Какая типизация у Free Oberon?
СообщениеДобавлено: 15 дек 2019, 20:12 
Не в сети

Сообщения: 53
Это значит, что надо среди доступных Оберонов использовать Active Oberon, чтобы поезд не пошел навстречу другому не в свое время, чтобы сборка атомного реактора не вовремя не задвинулась или не выдвинулась и не произошел Чернобыль и чтобы ракета не свернула с орбиты раньше времени (или позднее)?

_________________
Работаю в Windows 10. В то же время также установлен Линукс для некоторых ситуаций


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Какая типизация у Free Oberon?
СообщениеДобавлено: 16 дек 2019, 05:28 
Не в сети
Аватара пользователя

Сообщения: 1019
Откуда: Днепропетровская обл.
Саша, вспомните, что я говорил про то, что компилятор любого языка не найдёт массу ошибок в логике программы, если синтаксически всё будет оформлено правильно. И AO'шный RANGE здесь не особо поможет.


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Какая типизация у Free Oberon?
СообщениеДобавлено: 16 дек 2019, 17:42 
Не в сети

Сообщения: 53
А в каком то простом языке программирования существует модуль защиты от дурака в виде дополнительной опции, чтобы из простого языка сделать наподобие Ады в случае необходимости?

_________________
Работаю в Windows 10. В то же время также установлен Линукс для некоторых ситуаций


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Какая типизация у Free Oberon?
СообщениеДобавлено: 16 дек 2019, 19:16 
Не в сети

Сообщения: 53
Цитата:
В Аде можно объявлять новые целочисленные типы данных с ограничениями вроде диапазонов возможных значений. В Оберонах такой фичи нет.
Читал, что это можно делать во многих ЯП, только на основе классов\трейтов\типов и т.д.
Достаточно создать свои классы с нужными ограничениями.

_________________
Работаю в Windows 10. В то же время также установлен Линукс для некоторых ситуаций


Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Какая типизация у Free Oberon?
СообщениеДобавлено: 14 янв 2020, 04:51 
Не в сети
Администратор
Аватара пользователя

Сообщения: 108
Для этого используются приемы контрактного программирования, когда на входе и выходе процедур ставятся проверки, нарушение которых останавливает выполнение этой процедуры.
ASSERT(x < 16, 21);
При этом вызывается обработчик аварийных остановок, который решает что дальше делать. Чаще всего он показывает развернутый отчёт о произошедшей аварийной остановке.
Тогда на этапе тестирования компонентов большая часть такого рода ошибок проявляется.
Как поступить на этапе эксплуатации программы, это уже вопрос архитектуры проекта и типа проекта.
На ПК обычно пользователь делает скриншот сообщение и отправляет по почте. Но можно сделать, чтобы отправлялся сам через Интернет.
Микроконтроллер обычно уходит в перезагрузку и начинает выполнение программы с начала.
При этом в специальных переменных сохраняется код аварийной остановки, начало модуля и положение в исходном тексте.
Вот писал заметку про обработку аварийных остановок в STM32:
http://wiki.oberon.org/ob/o7/debug


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

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


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

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


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

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
© VEDAsoft Oberon Club