Ограничение возможностей языка
Существует несколько директив компилятора, которые позволяют накладывать ограничения на использование в программе некоторых возможностей языка.
Такие директивы компилятора могут быть использованы для принудительной установки каких-либо специфических правил и выдачи программисту предупреждающих сообщений, когда эти правила нарушаются.
Например, в случае написания программы реального времени, может возникнуть необходимость в отключении средств Ады которые обладают неопределенным временем реакции (или отклика).
В результате этого, программа не будет иметь случайных задержек во время своего выполнения.
Директивами компилятора, которые управляют ограничением средств языка являются:
Ada_83 | - | Запретить использование средств стандарта Ada 95 |
Ada_95 | - | Разрешить использование средств стандарта Ada 95 (установлено по умолчанию) |
Controlled | - | Отключить "сборку мусора" (garbage collection) для указанного типа данных. Реально, это не воздействует на GNAT, поскольку он не обеспечивает средств "сборки мусора". |
Ravanscar | - | Принудительная установка ограничений реального времени, которые соответствуют требованиям Ravanscar. |
Restricted_Run_Time | - | Подобна директиве Ravanscar. |
Restrictions | - | Отключает некоторые средства языка. |
Следует заметить, что директива компилятора No_Run_Time также является директивой установки ограничений, поскольку осуществляет принудительное отключение использования библиотеки времени выполнения Ады.
Более подробная информация об использовании этих директив компилятора находится в документации компилятора GNAT.
Copyright (C) А.Гавва | V-0.4w май 2004 |