OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Суббота, 19 Октябрь, 2019 12:51

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




Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
 Заголовок сообщения: Системные флаги модуля SYSTEM
СообщениеДобавлено: Четверг, 12 Май, 2011 14:43 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
BlackBox Platform-Specific Issues писал(а):
Код:
System Flags

The import of module SYSTEM allows to override some default behavior of the compiler by the usage of system flags. System flags are used to configure type- and procedure declarations. The extended syntax is given below.

Type    =   Qualident
      | ARRAY ["[" SysFlag "]"] [ConstExpr {"," ConstExpr}]
         OF Type
      | RECORD ["[" SysFlag "]"] ["("Qualident")"] FieldList
         {";" FieldList} END
      | POINTER ["[" SysFlag "]"] TO Type
      | PROCEDURE [FormalPars].
ProcDecl   =   PROCEDURE ["[" SysFlag "]"] [Receiver] IdentDef
         [FormalPars] ";"
      DeclSeq [BEGIN StatementSeq] END ident.
FPSection   =   [VAR ["[" SysFlag "]"]] ident {"," ident} ":" Type.
SysFlag   =   ConstExpr | ident.


В "Приложении B" языка тип описан без этого: ["[" SysFlag "]"].

Посему у меня возникло сомнение в том, что системные флаги являются частью языка Компонентный Паскаль. Решил ради проверки посмотреть что насчёт них сказано в компиляторе GPCP и не нашёл никаких упоминаний.

Подтвердите мои сомнения.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системные флаги модуля SYSTEM
СообщениеДобавлено: Четверг, 12 Май, 2011 15:04 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4516
Откуда: Россия, Орёл
Platform-Specific Issues (Windows) писал(а):
SYSTEM is not considered as part of the language Component Pascal proper.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системные флаги модуля SYSTEM
СообщениеДобавлено: Четверг, 12 Май, 2011 16:57 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
Выходит, что исходные тексты, написанные на Блэкбоксе, могут не компилироваться другими компиляторами. Так что тот же GPCP с большой вероятностью не скомпилирует модуль, импортирующий SYSTEM.

А к ним относятся и большинство обёрток к сторонним библиотекам. Облом. :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системные флаги модуля SYSTEM
СообщениеДобавлено: Четверг, 12 Май, 2011 17:25 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4516
Откуда: Россия, Орёл
Это ещё с первого оберона идёт: системные вещи частью языка не считаются. Что логично для ЯВУ. И чёткое деление:
- платформенно-независимые модули не включают SYSTEM, т.е. написаны исключительно на ЯВУ => портируемы (максимум --- перекомпиляция)
- платформенно-зависимые модули использую SYSTEM, и "портируемы" только руками полным/частичным переписыванием


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системные флаги модуля SYSTEM
СообщениеДобавлено: Четверг, 12 Май, 2011 19:10 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8185
Откуда: Троицк, Москва
Шаловливые ручки за SYSTEM любят хвататься...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системные флаги модуля SYSTEM
СообщениеДобавлено: Четверг, 12 Май, 2011 22:45 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
Info21 писал(а):
Шаловливые ручки за SYSTEM любят хвататься...
Это неизбежно, потому как экспериментирую с компиляторами и прочими низкоуровневыми вещами.


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

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8185
Откуда: Троицк, Москва
Роман М. писал(а):
Info21 писал(а):
Шаловливые ручки за SYSTEM любят хвататься...
Это неизбежно, потому как экспериментирую с компиляторами и прочими низкоуровневыми вещами.
Тогда о переносимости можно говорить только в плане контроля. А тут SYSTEM делает свое дело.

----
Про шаловливые ручонки -- это просто закономерность такая. Трудно бывает иногда удержаться, по опыту знаю :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системные флаги модуля SYSTEM
СообщениеДобавлено: Пятница, 13 Май, 2011 08:28 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4516
Откуда: Россия, Орёл
Info21 писал(а):
Про шаловливые ручонки -- это просто закономерность такая.
Может это просто следование по пути наименьшего сопротивления?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системные флаги модуля SYSTEM
СообщениеДобавлено: Пятница, 13 Май, 2011 11:02 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8185
Откуда: Троицк, Москва
Евгений Темиргалеев писал(а):
Info21 писал(а):
Про шаловливые ручонки -- это просто закономерность такая.
Может это просто следование по пути наименьшего сопротивления?
Не думаю.
Скорее, работает некое инстинктивное стремление вкомбинировать *всё*.
Как у студентов, обучаемых на С, стремление запихнуть в короткую программу все трюки, которые упоминались в курсе.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системные флаги модуля SYSTEM
СообщениеДобавлено: Пятница, 13 Май, 2011 15:39 
Аватара пользователя

Зарегистрирован: Пятница, 25 Сентябрь, 2009 13:10
Сообщения: 1162
Откуда: Tel-Aviv
Евгений Темиргалеев писал(а):
Это ещё с первого оберона идёт: системные вещи частью языка не считаются. Что логично для ЯВУ. И чёткое деление:
- платформенно-независимые модули не включают SYSTEM, т.е. написаны исключительно на ЯВУ => портируемы (максимум --- перекомпиляция)
- платформенно-зависимые модули использую SYSTEM, и "портируемы" только руками полным/частичным переписыванием

Я был бы рад не использовать системный модуль, да не всё так просто, как хотелось бы. Особенно когда требуется интеграция с другими языками программирования и, более того, даже разными реализациями того же Оберона и КП.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системные флаги модуля SYSTEM
СообщениеДобавлено: Пятница, 13 Май, 2011 20:51 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8185
Откуда: Троицк, Москва
Роман М. писал(а):
Я был бы рад не использовать системный модуль, да не всё так просто, как хотелось бы. Особенно когда требуется интеграция с другими языками программирования и, более того, даже разными реализациями того же Оберона и КП.
Это типичные системные (внутри-ИТ) вещи. О переносимости и говорить трудно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системные флаги модуля SYSTEM
СообщениеДобавлено: Воскресенье, 15 Май, 2011 09:27 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3096
Откуда: Астрахань
Info21 писал(а):
Евгений Темиргалеев писал(а):
Info21 писал(а):
Про шаловливые ручонки -- это просто закономерность такая.
Может это просто следование по пути наименьшего сопротивления?
Не думаю.
Скорее, работает некое инстинктивное стремление вкомбинировать *всё*.
Как у студентов, обучаемых на С, стремление запихнуть в короткую программу все трюки, которые упоминались в курсе.

Эффект второй системы?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системные флаги модуля SYSTEM
СообщениеДобавлено: Вторник, 17 Май, 2011 01:09 

Зарегистрирован: Среда, 04 Август, 2010 04:01
Сообщения: 37
Откуда: Сан Хосе, Калифорния, США
Роман М. писал(а):
Я был бы рад не использовать системный модуль, да не всё так просто, как хотелось бы.


Тоже столкнулся с такой же проблемой. Причем импорт модуля SYSTEM не просто дает доступ к специфическим процедурам и типам но еще и при этом в язык вносятся новые элементы синтаксиса которые в официальном описании языка не упоминаются.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системные флаги модуля SYSTEM
СообщениеДобавлено: Вторник, 17 Май, 2011 03:40 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 2397
nail_kh писал(а):
Роман М. писал(а):
Я был бы рад не использовать системный модуль, да не всё так просто, как хотелось бы.


Тоже столкнулся с такой же проблемой. Причем импорт модуля SYSTEM не просто дает доступ к специфическим процедурам и типам но еще и при этом в язык вносятся новые элементы синтаксиса которые в официальном описании языка не упоминаются.


О каких процедурах и типах речь? Флаги нельзя к языку отнести, они только регламентируют как вести себя сборщику мусора или в каком порядке организовать стек для аргументов - эти вещи относятся не к языку, а к его реализации! Вы можете про них не знать и успешно программировать на Компонентном паскале, просто не сможет использовать сишные библиотеки, например.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системные флаги модуля SYSTEM
СообщениеДобавлено: Вторник, 17 Май, 2011 08:16 
Модератор
Аватара пользователя

Зарегистрирован: Среда, 16 Ноябрь, 2005 00:53
Сообщения: 4516
Откуда: Россия, Орёл
nail_kh писал(а):
Тоже столкнулся с такой же проблемой. Причем импорт модуля SYSTEM не просто дает доступ к специфическим процедурам и типам но еще и при этом в язык вносятся новые элементы синтаксиса которые в официальном описании языка не упоминаются.
Этот подход применяется с первого Оберона. Никаких проблем тут нет. Скорее наоборот, проблемы, когда пытаются platform-specific учесть в официальном описании. viewtopic.php?p=63212#p63212

Разве что придраться к тому, что Оминк убрал из описания языка упоминание SYSTEM в отдельный документ (в сравнении с описанием Оберона) и ссылок не поставил.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Системные флаги модуля SYSTEM
СообщениеДобавлено: Четверг, 02 Июнь, 2011 07:26 

Зарегистрирован: Суббота, 06 Июнь, 2009 07:52
Сообщения: 329
Роман М. писал(а):
Особенно когда требуется интеграция с другими языками программирования и, более того, даже разными реализациями того же Оберона и КП.

Для других языков в Оберонах предполагалось использование высокоуровневых средств – компиляторов компиляторов – Coco и Babel(в коллекции Цинна). Но их практическое применение в ББ удручает. Подсистема Coco не имеет главного модуля – Coco. Когда-то существовала тулзла – VCOCO. Скриншоты показывают мощную визуальную среду разработки, но найти ее на бескрайних просторах интернета проблематично. В Babel’e нужно пользоваться уловками, которые создают впечатление `сырой` программы. Чтобы не размениваться на переписывание отдельных библиотек, нужны совместно выработанные соглашения по использованию таких компиляторов, а для начала хотя бы FAQ по-русски. На форуме есть целый раздел.


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

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


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

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


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

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