ГОСТ Р МЭК 61508-7—2012
- безусловные переходы (за исключением вызовов подпрограмм);
- рекурсии;
- указатели, динамически распределяемые области памяти или любые типы динамических переменных
или объектов:
- обработка прерываний на уровне исходного кода;
- множество входов или выходов в циклах, блоках или подпрограммах;
- неявная инициализация или объявление переменных;
- вариантные записи и эквивалентность;
- процедурная переменная в качестве параметра.
Языки программирования низкого уровня, в частности ассемблеры, обладают недостатками, связанными
с их жесткой ориентацией на процессор машины или на определенную платформу.
Желательным свойством языка программирования является то. что его проектирование и использование
должно приводить к созданию программ, выполнение которых предсказуемо. Если используется подходящий кон
кретный язык программирования, то в нем должно существовать подмножество, которое гарантирует, что выполне ние
программы предсказуемо. Это подмножество не может быть (в общем случае) статически определено, несмо тря на
то. что многие статические ограничения помогают гарантировать предсказуемое выполнение. Обычно это может
потребовать демонстрации того, что индексы массива находятся в установленных пределах и что числовое
переполнение не гложет возникнуть, и т. п.
Рекомендации по конкретным языкам программирования приведены в таблице С.1.
Литература:
Concepts in Progranvning Languages. J.C. Mitchell. Cambndge University Press. 2003, ISBN 0521780985,
9780521780988.
IEC 60880:2006. Nuclear power plants — Instrumentation and control systems important to safety — Software
aspects for computer-based systems performing category A functions.
IEC 61131-3:2003, Programmable controllers — Part 3: Progranvning languages.
ISO/IEC 1539-1:2004. Information technology — Programming languages — Fortran — Part 1: Base language.
ISO/IEC 7185:1990. Information technology — Programming languages — Pascal.
ISO/IEC 8652:1995, Information technology — Programming languages — Ada.
ISO/IEC 9899:1999. Programming languages — C.
ISO/IEC 10206:1991. Information technology — Programming languages — Extended Pascal.
ISO/IEC 10514-1:1996. Information technology — Programming languages — Part 1: Modula-2. Base Language.
ISO/IEC 10514-3:1998. Information technology — Programming languages — Part 3: Object Oriented Modula-2.
ISO/IEC 14882:2003. Programming languages — C++.
ISO/IEC/TR 15942:2000, Information technology — Programming languages — Guide for the use of the Ada
programming language in high integrity systems.
Т а б л и ц а C.1 — Рекомендации по конкретным языкам программирования
Я зы к програмы ироеания
УПБ1УПБ2
УЛБЗУПБ4
1 ADA
HRHR
RR
2 ADA с подмножествомHRHRHRHR
3 JavaNRNRNRNR
4 Java с подмножеством (без включения сборки мусораRRNRNR
или с включением сборки мусора, которая не будет вызы
вать остановку прикладной программы в течение значитель
ного промежутка времени). Руководящие указания по ис
пользованию объектно-ориентированных средств
см. в приложении G.
5 PASCAL (см. примечание 1)HRHRRR
6 PASCAL с подмножествомHRHRHRHR
7 FORTRAN 77RRRR
8 FORTRAN 77 с подмножествомHRHRHRHR
9 СR—NRNR
10 С с подмножеством и стандартом кодирования, а такжеHRHRHRHR
использование инструментов статического анализа
55