OberonCore https://forum.oberoncore.ru/ |
|
Системные флаги модуля SYSTEM https://forum.oberoncore.ru/viewtopic.php?f=2&t=3448 |
Страница 1 из 1 |
Автор: | Роман М. [ Четверг, 12 Май, 2011 14:43 ] |
Заголовок сообщения: | Системные флаги модуля SYSTEM |
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 и не нашёл никаких упоминаний. Подтвердите мои сомнения. |
Автор: | Евгений Темиргалеев [ Четверг, 12 Май, 2011 15:04 ] |
Заголовок сообщения: | Re: Системные флаги модуля SYSTEM |
Platform-Specific Issues (Windows) писал(а): SYSTEM is not considered as part of the language Component Pascal proper.
|
Автор: | Роман М. [ Четверг, 12 Май, 2011 16:57 ] |
Заголовок сообщения: | Re: Системные флаги модуля SYSTEM |
Выходит, что исходные тексты, написанные на Блэкбоксе, могут не компилироваться другими компиляторами. Так что тот же GPCP с большой вероятностью не скомпилирует модуль, импортирующий SYSTEM. А к ним относятся и большинство обёрток к сторонним библиотекам. Облом. |
Автор: | Евгений Темиргалеев [ Четверг, 12 Май, 2011 17:25 ] |
Заголовок сообщения: | Re: Системные флаги модуля SYSTEM |
Это ещё с первого оберона идёт: системные вещи частью языка не считаются. Что логично для ЯВУ. И чёткое деление: - платформенно-независимые модули не включают SYSTEM, т.е. написаны исключительно на ЯВУ => портируемы (максимум --- перекомпиляция) - платформенно-зависимые модули использую SYSTEM, и "портируемы" только руками полным/частичным переписыванием |
Автор: | Info21 [ Четверг, 12 Май, 2011 19:10 ] |
Заголовок сообщения: | Re: Системные флаги модуля SYSTEM |
Шаловливые ручки за SYSTEM любят хвататься... |
Автор: | Роман М. [ Четверг, 12 Май, 2011 22:45 ] |
Заголовок сообщения: | Re: Системные флаги модуля SYSTEM |
Info21 писал(а): Шаловливые ручки за SYSTEM любят хвататься... Это неизбежно, потому как экспериментирую с компиляторами и прочими низкоуровневыми вещами.
|
Автор: | Info21 [ Пятница, 13 Май, 2011 04:08 ] |
Заголовок сообщения: | Re: Системные флаги модуля SYSTEM |
Роман М. писал(а): Info21 писал(а): Шаловливые ручки за SYSTEM любят хвататься... Это неизбежно, потому как экспериментирую с компиляторами и прочими низкоуровневыми вещами.---- Про шаловливые ручонки -- это просто закономерность такая. Трудно бывает иногда удержаться, по опыту знаю |
Автор: | Евгений Темиргалеев [ Пятница, 13 Май, 2011 08:28 ] |
Заголовок сообщения: | Re: Системные флаги модуля SYSTEM |
Info21 писал(а): Про шаловливые ручонки -- это просто закономерность такая. Может это просто следование по пути наименьшего сопротивления?
|
Автор: | Info21 [ Пятница, 13 Май, 2011 11:02 ] |
Заголовок сообщения: | Re: Системные флаги модуля SYSTEM |
Евгений Темиргалеев писал(а): Info21 писал(а): Про шаловливые ручонки -- это просто закономерность такая. Может это просто следование по пути наименьшего сопротивления?Скорее, работает некое инстинктивное стремление вкомбинировать *всё*. Как у студентов, обучаемых на С, стремление запихнуть в короткую программу все трюки, которые упоминались в курсе. |
Автор: | Роман М. [ Пятница, 13 Май, 2011 15:39 ] |
Заголовок сообщения: | Re: Системные флаги модуля SYSTEM |
Евгений Темиргалеев писал(а): Это ещё с первого оберона идёт: системные вещи частью языка не считаются. Что логично для ЯВУ. И чёткое деление: - платформенно-независимые модули не включают SYSTEM, т.е. написаны исключительно на ЯВУ => портируемы (максимум --- перекомпиляция) - платформенно-зависимые модули использую SYSTEM, и "портируемы" только руками полным/частичным переписыванием Я был бы рад не использовать системный модуль, да не всё так просто, как хотелось бы. Особенно когда требуется интеграция с другими языками программирования и, более того, даже разными реализациями того же Оберона и КП. |
Автор: | Info21 [ Пятница, 13 Май, 2011 20:51 ] |
Заголовок сообщения: | Re: Системные флаги модуля SYSTEM |
Роман М. писал(а): Я был бы рад не использовать системный модуль, да не всё так просто, как хотелось бы. Особенно когда требуется интеграция с другими языками программирования и, более того, даже разными реализациями того же Оберона и КП. Это типичные системные (внутри-ИТ) вещи. О переносимости и говорить трудно.
|
Автор: | Валерий Лаптев [ Воскресенье, 15 Май, 2011 09:27 ] |
Заголовок сообщения: | Re: Системные флаги модуля SYSTEM |
Info21 писал(а): Евгений Темиргалеев писал(а): Info21 писал(а): Про шаловливые ручонки -- это просто закономерность такая. Может это просто следование по пути наименьшего сопротивления?Скорее, работает некое инстинктивное стремление вкомбинировать *всё*. Как у студентов, обучаемых на С, стремление запихнуть в короткую программу все трюки, которые упоминались в курсе. Эффект второй системы? |
Автор: | nail_kh [ Вторник, 17 Май, 2011 01:09 ] |
Заголовок сообщения: | Re: Системные флаги модуля SYSTEM |
Роман М. писал(а): Я был бы рад не использовать системный модуль, да не всё так просто, как хотелось бы. Тоже столкнулся с такой же проблемой. Причем импорт модуля SYSTEM не просто дает доступ к специфическим процедурам и типам но еще и при этом в язык вносятся новые элементы синтаксиса которые в официальном описании языка не упоминаются. |
Автор: | Иван Денисов [ Вторник, 17 Май, 2011 03:40 ] |
Заголовок сообщения: | Re: Системные флаги модуля SYSTEM |
nail_kh писал(а): Роман М. писал(а): Я был бы рад не использовать системный модуль, да не всё так просто, как хотелось бы. Тоже столкнулся с такой же проблемой. Причем импорт модуля SYSTEM не просто дает доступ к специфическим процедурам и типам но еще и при этом в язык вносятся новые элементы синтаксиса которые в официальном описании языка не упоминаются. О каких процедурах и типах речь? Флаги нельзя к языку отнести, они только регламентируют как вести себя сборщику мусора или в каком порядке организовать стек для аргументов - эти вещи относятся не к языку, а к его реализации! Вы можете про них не знать и успешно программировать на Компонентном паскале, просто не сможет использовать сишные библиотеки, например. |
Автор: | Евгений Темиргалеев [ Вторник, 17 Май, 2011 08:16 ] |
Заголовок сообщения: | Re: Системные флаги модуля SYSTEM |
nail_kh писал(а): Тоже столкнулся с такой же проблемой. Причем импорт модуля SYSTEM не просто дает доступ к специфическим процедурам и типам но еще и при этом в язык вносятся новые элементы синтаксиса которые в официальном описании языка не упоминаются. Этот подход применяется с первого Оберона. Никаких проблем тут нет. Скорее наоборот, проблемы, когда пытаются platform-specific учесть в официальном описании. viewtopic.php?p=63212#p63212Разве что придраться к тому, что Оминк убрал из описания языка упоминание SYSTEM в отдельный документ (в сравнении с описанием Оберона) и ссылок не поставил. |
Автор: | id_ler [ Четверг, 02 Июнь, 2011 07:26 ] |
Заголовок сообщения: | Re: Системные флаги модуля SYSTEM |
Роман М. писал(а): Особенно когда требуется интеграция с другими языками программирования и, более того, даже разными реализациями того же Оберона и КП. Для других языков в Оберонах предполагалось использование высокоуровневых средств – компиляторов компиляторов – Coco и Babel(в коллекции Цинна). Но их практическое применение в ББ удручает. Подсистема Coco не имеет главного модуля – Coco. Когда-то существовала тулзла – VCOCO. Скриншоты показывают мощную визуальную среду разработки, но найти ее на бескрайних просторах интернета проблематично. В Babel’e нужно пользоваться уловками, которые создают впечатление `сырой` программы. Чтобы не размениваться на переписывание отдельных библиотек, нужны совместно выработанные соглашения по использованию таких компиляторов, а для начала хотя бы FAQ по-русски. На форуме есть целый раздел. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |