Статус документа
Статус документа

ГОСТ Р МЭК 60880-2010 Атомные электростанции. Системы контроля и управления, важные для безопасности. Программное обеспечение компьютерных систем, выполняющих функции категории А

Приложение D
(справочное)

     
Язык, транслятор, редактор связей


Приведенные в таблицах D.1-D.4 подробные рекомендации для безопасного применения языка, его транслятора и редактора связей дополняют рекомендации основной части настоящего стандарта. Эти рекомендации также применимы к любым другим вспомогательным программам системы. Рекомендации для трансляторов применимы также к интерпретаторам, кросскомпиляторам и эмуляторам. Аналогичным образом аспекты, применимые к трансляторам и редакторам связей, следует учитывать при выборе и разработке формализованной спецификации на средства проектирования и их использование. Для проекта следует отбирать рекомендованные критерии в соответствии с указанными приоритетами.


Таблица D.1 - Общая информация

Пункт

Рекомендации

Приоритет

а

Транслятор, редактор связей и загрузчик должны быть тщательно протестированы перед использованием; эта операция рассматривается как очень важная

1

b

Рекомендуется иметь достаточно качественные и надежные данные о трансляторе, редакторе связей и загрузчике

2

с

В тех случаях, если используются вспомогательные системные программы, такие как вспомогательные средства, системы документации и подобные программы, до использования их следует должным образом протестировать

1

d

Синтаксис языка должен быть полностью и однозначно определен

2

е

Следует установить полную и понятную семантику языка

1

f

Использование языков высокого уровня предпочтительнее использования машинно-ориентированных языков

2

g

Распространенность языка и его адекватность проблеме считаются важными аспектами

2

h

Насколько это возможно, следует выполнять рекомендации, приведенные в приложении В

1

i

Читаемость полученного кода более существенна, чем удобство записи во время программирования

2

j

Синтаксическая нотация должна быть единообразна; допускается не более одной нотации для одного и того же понятия

2

k

В языке следует избегать элементов, которые могут вызвать ошибки

2

I

Получаемые программы должны быть легко модифицируемыми

2

m

Входные, выходные и изменяемые параметры должны быть синтаксически различимы

2

n

На всех этапах процесса трансляции следует обеспечить дополнительный выход для анализа

3



Таблица D.2 - Обработка ошибок

Пункт

Рекомендации

Приоритет

а

Транслятор языка и редактор связей должны обеспечивать регистрацию такого числа ошибок программирования, какое возможно во время трансляции или исполнения в режиме онлайн

2

b

Во время исполнения в режиме онлайн должна существовать возможность обработки исключительных ситуаций

2

с

Язык должен обеспечивать обработку утверждений

3

d

Ошибки, способные вызвать исключительные ситуации во время исполнения, включают в себя:

- превышение границ массива

1

- превышение диапазона величин

1

- обращение к неинициализированным переменным

3

- невозможность удовлетворить утверждение

2

- отбрасывание значащих разрядов числовых величин

2

- пропуск параметров неправильного типа

1

е

Если при трансляции или редактировании связей обнаружена ошибка, то о ней следует сообщить, не делая попыток исправить

2

f

Если нет ясности в том, что нарушились какие-то правила, то должно быть выдано предупреждение

3

g

Во время трансляции должны проверяться типы параметров

3



Таблица D.3 - Обработка данных и переменных

Пункт

Рекомендации

Приоритет

а

Диапазон каждой переменной должен определяться при трансляции

1

b

Точность каждой переменной с плавающей запятой должна определяться во время трансляции

2

с

Не должно быть неявных преобразований типов

d

Тип каждой переменной, массива, элемента записи, выражения, функции и параметра должен определяться во время трансляции

2

е

Переменные массивы, параметры и т.д. должны быть явно декларированы, включая их типы

1

f

Следует различать типы переменных, соответствующие входам, выходам, параметрам процедур и подпрограмм

2

g

Должны быть разрешены имена переменных произвольной длины

2

h

Насколько возможно, проверку типов предпочтительнее проводить на этапе трансляции, чем на этапе исполнения

3

i

Во время трансляции должно проверяться, разрешено ли присвоение для любого частного элемента данных

2



Таблица D.4 - Аспекты режима онлайн

Пункт

Рекомендации

Приоритет

а

Во время оценки выражения не должно допускаться внешнее присваивание для любой переменной, которая доступна в этом выражении

1

b

Время, расходуемое на вычисления, должно быть доступно проверке в режиме "онлайн"

3

с

В режиме "онлайн" должно обеспечиваться фиксирование ошибок (см. таблицу D.2,d)

1