OberonCore

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

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




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Значения основных типов
СообщениеДобавлено: Пятница, 29 Июнь, 2007 19:12 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Почему NIL -- ключевое слово, а TRUE/FALSE -- предопределённые идентификаторы?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пятница, 29 Июнь, 2007 20:02 
Модератор
Аватара пользователя

Зарегистрирован: Понедельник, 14 Ноябрь, 2005 18:39
Сообщения: 9459
Откуда: Россия, Орёл
Пёс его знает, но это действительно так.
Можно объявить CONST TRUE = 0 (правда, нормальный TRUE станет в модуле недоступен, зачем это нужно - ума не приложу), но нельзя сделать то же самое с NIL.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Суббота, 30 Июнь, 2007 16:17 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
А для атрибутов методов NEW -- идентификатор, а ABSTRACT, EMPTY, EXTENSIBLE -- ключевые слова. :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Понедельник, 02 Июль, 2007 11:36 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4625
Откуда: Россия, Орёл
ИМХО, это не просто так, просто свои соображения Ominc в сообщение о языке не помещало :)

Для TRUE/FALSE - есть WinApi.TRUE (INTEGER = 1) и WinApi.FALSE (INTEGER = 0). Если ключевое слово - то WinApi.TRUE/FALSE - не получится.

Для NEW - есть еще и процедура NEW, которую можно переопределить. Может Ominc этим когда-то пользовалась?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Понедельник, 02 Июль, 2007 11:53 

Зарегистрирован: Понедельник, 28 Ноябрь, 2005 10:28
Сообщения: 1429
PGR писал(а):
А для атрибутов методов NEW -- идентификатор, а ABSTRACT, EMPTY, EXTENSIBLE -- ключевые слова. :)


Почему ключевые слова? При попытке определить PROCEDURE ABSTRACT; и т.п. выдается ошибка multiply defined identifier.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Понедельник, 02 Июль, 2007 14:30 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Trurl писал(а):
Почему ключевые слова? При попытке определить PROCEDURE ABSTRACT; и т.п. выдается ошибка multiply defined identifier.

В Component Pascal Language Report так написано... Оказывается это неправда :o


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Понедельник, 02 Июль, 2007 17:41 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Евгений Темиргалеев писал(а):
Для TRUE/FALSE - есть WinApi.TRUE (INTEGER = 1) и WinApi.FALSE (INTEGER = 0). Если ключевое слово - то WinApi.TRUE/FALSE - не получится.

Это идёт ещё с Modula-2...
Евгений Темиргалеев писал(а):
Для NEW - есть еще и процедура NEW, которую можно переопределить. Может Ominc этим когда-то пользовалась?

Вообще предопределённые идентификаторы обычно использовались для встроенных процедур, типов и значений. Может для имени атрибута лучше было бы выбрать другое слово, вместо NEW...

Кстати, в ISO Modula-2 NIL -- это предопределённый идентификатор.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Понедельник, 02 Июль, 2007 17:48 

Зарегистрирован: Понедельник, 29 Январь, 2007 19:00
Сообщения: 370
Откуда: Украина, Запорожье
Trurl писал(а):
При попытке определить PROCEDURE ABSTRACT; и т.п. выдается ошибка multiply defined identifier.

А вот CONST ABSTRACT = 999; проходит без проблем.


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

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


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

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


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

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