OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Среда, 24 Апрель, 2024 18:41

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




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Особенности целых типов
СообщениеДобавлено: Понедельник, 04 Август, 2008 03:59 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Переводил тут модуля из Бутылки на ББ. На законное действие s := s * (-1) ББ упорно выдаёт ошибку. Начал проверять:
Код:
MODULE PrivNeg;

PROCEDURE Do*;
VAR s : SHORTINT; i : INTEGER;
BEGIN
   i := 0 - i;
   s := 0 - s [x]<--Incompatible assigment
END Do;

END PrivNeg.

Вопрос: насколько законна ошибка? И если законна, то почему только для SHORTINT, а для INTEGER ошибки нет?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Особенности целых типов
СообщениеДобавлено: Понедельник, 04 Август, 2008 06:45 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2449
Откуда: Россия, Томск
Я так понимаю, что поскольку унарного отрицания нет, а вычисления производятся на уровне INTEGER, то для присвоения необходимо использовать SHORT(). В ББ компилятор построже в этом плане, чем другие (XDS, Oberon, AOS).


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Особенности целых типов
СообщениеДобавлено: Понедельник, 04 Август, 2008 08:39 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Ошибка вполне законна:
Language Report писал(а):
operator | first operand | second operand | result type
+ - * DIV MOD | <= INTEGER | <= INTEGER | INTEGER


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Особенности целых типов
СообщениеДобавлено: Понедельник, 04 Август, 2008 09:07 

Зарегистрирован: Вторник, 29 Август, 2006 12:32
Сообщения: 2662
Откуда: Россия, Ярославль
В "бутылке" ещё любят понаставить везде LONGINT, с которыми в ББ большинство встроенных функций не работает. Приходится заменять на INTEGER по всему тексту модуля.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Особенности целых типов
СообщениеДобавлено: Понедельник, 04 Август, 2008 09:19 

Зарегистрирован: Суббота, 26 Ноябрь, 2005 10:37
Сообщения: 875
Откуда: Россия, Владивосток
Пётр Кушнир писал(а):
В "бутылке" ещё любят понаставить везде LONGINT, с которыми в ББ большинство встроенных функций не работает. Приходится заменять на INTEGER по всему тексту модуля.


Ну так у них LONGINT 32 бита, что поделать. Автозамена вполне справляется


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

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


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

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


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

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