7.2.1 Общие требования
При проектировании и реализации программного обеспечения систем класса 1 нельзя требовать использования специальных языков, однако следующие положения могут рассматриваться в качестве общих основных правил для языков, используемых в этих целях:
7.2.1.1 Используемые языки должны соответствовать строгим (или строго очерченным) правилам семантики и синтаксиса.
7.2.1.2 Синтаксис языка должен быть полностью и четко определен и оформлен документально.
7.2.1.3 В необходимых случаях использование языка должно быть ограничено "безопасным" сокращенным вариантом, например, примитивами, которые пригодны для определения необходимых функций.
7.2.1.4 Должны использоваться языки с тщательно проверенным транслятором.
7.2.1.5 Если применяется транслятор, не прошедший тщательной проверки, то дополнительная верификация должна предоставить свидетельство того, что результаты трансляции будут верными.
7.2.1.6 Следует иметь в распоряжении инструментальные программы для автоматизированной проверки.
Рекомендуется использование автоматизированных инструментальных программ. При этом применяются требования раздела 14.
7.2.2 Универсальные языки
Универсальные языки для систем класса 1 и их трансляторы не должны препятствовать использованию следующих схем, ограничивающих возможные ошибки:
- проверка типа переменных модуля трансляции, проверка параметров подпрограммы;
- проверка границ массива рабочего модуля.
Руководство по выбору языка, транслятора и редактора связи приведено в приложении D.
7.2.3 Проблемно-ориентированные языки и соответствующая автоматизированная генерация кода
7.2.3.1 Проблемно-ориентированные языки следует преобразовывать в универсальный язык с помощью автоматизированных инструментальных программ (например, генератора кода) до трансляции программы в выполняемую форму.
7.2.3.2 Должна быть проведена оценка соответствия генерируемого кода требованиям настоящего стандарта к проектированию и кодированию программного обеспечения, а несоответствия должны быть обоснованы.
7.2.3.3 Структура генерируемой программы должна быть определена в общем виде, например, должно быть определено расположение описаний по отношению к кодовым операторам.
7.2.3.4 Генерируемый код не должен изменяться в результате непосредственных действий с кодом.
7.2.3.5 При модификации спецификации входных данных код должен быть генерирован повторно, например, в результате деятельности по В&В.
Дополнительные рекомендации по автоматизированной генерации кода приведены в перечислении f) раздела В.5 приложения В.