OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 28 Март, 2024 17:27

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




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Oberon-07 базовые типы.
СообщениеДобавлено: Воскресенье, 05 Декабрь, 2010 05:30 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Цитата:
Definition: A type T extends a type T0, if it equals T0, or if it directly extends an extension of T0.
Conversely, a type T0 is a base type of T, if it equals T, or if it is the direct base type of a base
type of T.

Как это собственно понимать?
Код:
T1 = RECORD i : INTEGER END
T2 = RECORD i : INTEGER END

T1 equals to T2?
В ответе желательна ссылка на Оберон-07 репорт, где это уточняется.
Т.е. где вводится опирация сравнения для типов (записей)?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-07 базовые типы.
СообщениеДобавлено: Воскресенье, 05 Декабрь, 2010 09:55 

Зарегистрирован: Четверг, 12 Июль, 2007 23:18
Сообщения: 1982
Откуда: Узбекистан, Чирчик
Alexey Veselovsky писал(а):
T1 equals to T2?

Разве в оберонах структурная типизация?
У типов T1 и T2 нет (общего) базового типа, поэтому они разные.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-07 базовые типы.
СообщениеДобавлено: Воскресенье, 05 Декабрь, 2010 10:03 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Geniepro писал(а):
Alexey Veselovsky писал(а):
T1 equals to T2?

Разве в оберонах структурная типизация?
У типов T1 и T2 нет (общего) базового типа, поэтому они разные.

Ээ.. А где про это сказано? Нет, ну я конечно понимаю что все привыкли что оно так. Но если отбросить привычку и интуицию и четко следовать тому, что написано в папире, то откуда это следует?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-07 базовые типы.
СообщениеДобавлено: Воскресенье, 05 Декабрь, 2010 11:13 

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1177
Откуда: Мариуполь
Этот недочёт относится также и к начальному Оберону, и к КП. Нигде явно не указано про сравнение записей.
Подразумевается, что каждое определение нового типа задаёт его уникальность. Соответсвенно, сравнение типов также основывается на этом.

(модератор) Дальнейшее обсуждение, касающееся сравнения записевых типов в КП, выделено: viewtopic.php?p=55187#p55187


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-07 базовые типы.
СообщениеДобавлено: Воскресенье, 05 Декабрь, 2010 11:23 

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

Тогда имеем противоречие.
Код:
TYPE
     A = INTEGER
     B = INTEGER

Тогда тоже задает уникальность, но по традиции это не так. Тут новые типы не вводятся. A и B это один и тот же тип, просто это псевдонимы для INTEGER. Т.е. это не отличимо от typedef в Си.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-07 базовые типы.
СообщениеДобавлено: Воскресенье, 05 Декабрь, 2010 11:29 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
А кстати, в Oberon-07 вот такое форма:
Код:
TYPE A = INTEGER

запрещена. Ибо
Код:
TypeDeclaration  =  identdef "=" StrucType.
StrucType  =  ArrayType | RecordType | PointerType | ProcedureType.

В отличае от Oberon-02 (в Обероне то же самое):
Код:
TypeDecl      = IdentDef "=" Type.
Type          = Qualident
              | ARRAY [ConstExpr {"," ConstExpr}] OF Type
              | RECORD ["("Qualident")"] FieldList {";" FieldList} END
              | POINTER TO Type
              | PROCEDURE [FormalPars].
Qualident     = [ident "."] ident.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-07 базовые типы.
СообщениеДобавлено: Воскресенье, 05 Декабрь, 2010 11:42 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
Alexey Veselovsky писал(а):
А кстати, в Oberon-07 вот такое форма:
Код:
TYPE A = INTEGER

запрещена. Ибо...
И в этом есть свой положительный момент.

Кстати, Алексей, а в чём реальная проблема-то? Или исключительно вопрос буквоедства?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-07 базовые типы.
СообщениеДобавлено: Воскресенье, 05 Декабрь, 2010 11:43 

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

Собственно интересует сравнение ТИПОВ а не записей.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-07 базовые типы.
СообщениеДобавлено: Воскресенье, 05 Декабрь, 2010 11:47 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Евгений Темиргалеев писал(а):
Alexey Veselovsky писал(а):
А кстати, в Oberon-07 вот такое форма:
Код:
TYPE A = INTEGER

запрещена. Ибо...
И в этом есть свой положительный момент.

Это безусловно положительный момент. Наконец убрали недофичу.
Евгений Темиргалеев писал(а):
Кстати, Алексей, а в чём реальная проблема-то? Или исключительно вопрос буквоедства?

Я просто пытаюсь понять что такое Oberon-07 без оглядок на привычки и интуицию. Т.е. посмотреть на язык не зашоренным взглядом. Возможно это выльется в предложение по уточнению language report'a.

В частности если утверждение про equals работает для
Код:
T1 = RECORD i : INTEGER END
T2 = RECORD i : INTEGER END

То семантика WITH становится довольно интересной.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Oberon-07 базовые типы.
СообщениеДобавлено: Среда, 08 Декабрь, 2010 09:51 

Зарегистрирован: Вторник, 25 Апрель, 2006 16:21
Сообщения: 2180
Откуда: Нижний Новгород
Посмотрел Oberon-2 report, там это уточнение (Appendix A) имеется также. Т.о. неоднозначность имеется только в Oberon и Oberon-07.


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

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


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

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


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

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