ГОСТ Р 60.0.7.1—2016
В функциональном программировании процесс вычислений трактуется как вычисление значений
функций в математическом понимании. Поэтому в программе отсутствуют состояния, а значит и пере
менные. Это позволяет существенно упростить разработку параллельных программ и приблизить текст
программы на языке программирования к математической записи. Отсутствие присваиваний и замена их
на операции порождения новых данных приводят к необходимости постоянного выделения памяти, а
нестрогая модель вычислений приводит к непредсказуемому порядку вызова функций. Этот подход
наиболее часто используется при решении задач искусственного интеллекта. Примерами языков функ
ционального программирования являются Haskell и Lisp.
Описанные выше подходы могут использоваться одновременно, например язык Ассемблера —для
программирования микроконтроллеров робота, язык С — для создания программного обеспечения
бортового компьютера и язык Prolog — для построения системы принятия решений.
4.6 Методы построения программ
Непосредственно при программировании могут использоваться приведенные ниже методологии
или их комбинации.
4.6.1 Структурное программирование
Структурное программирование (по ГОСТ 19781) представляет метод построения программ,
использующий только иерархически вложенные конструкции, каждая из которых имеет единственную
точку входа и единственную точку выхода. В структурном программировании используются три вида
структур, связанных с передачей управления: последовательная, условного перехода и циклическая.
4.6.2 Объектно-ориентированное программирование
Объектно-ориентированное программирование (по ГОСТ 19781) представляет метод построения
программ в виде совокупности объектов и классов объектов, которые могут вызывать друг друга для
выбора и выполнения операций.
П р и м е ч а н и е — Объекты состоят изданных иопераций над данными.
4.6.3 Агентно-ориентированное программирование
Агентно-ориентированное программирование представляет разновидность представления про
грамм. в которой основополагающими концепциями являются понятия агента и его ментальное пове
дение. зависящее от среды, в которой он находится.
4.6.4 Компонентно-ориентированное программирование
Компонентно-ориентированное программирование представляет методологию, основанную на
понятии компонента — независимого модуля программного кода, предназначенного для повторного ис
пользования и развертывания, который реализуется в виде множества языковых конструкций (например,
классов в объектно-ориентированных языках), объединенных по общему признаку и организованных в
соответствии с установленными правилами и ограничениями.
4.6.5 Обобщенное программирование
Обобщенное программирование представляет методологию, заключающуюся в таком описании
данных и алгоритмов, которое можно применять к различным типам данных, не меняя самоэто описание.
4.6.6 Графическая система P-технологии программирования
Графическая система P-технологии программирования по ГОСТ 19.005 представляет программу
в виде Р-схемы — нагруженного по дугам ориентированного графа, изображаемого с помощью верти
кальных и горизонтальных линий и состоящего из структур (подграфов), каждая из которых имеет только
один вход и один выход. Данная методология является расширением структурного программирования
на двумерное пространство.
5 Методы программирования роботов, уровни абстракции
5.1 Общие положения
Конечным результатом исполнения программы роботом является изменение его пространственных
или информационных параметров.
Программирование может быть осуществлено на следующих уровнях абстракции:
- уровень программируемой логики (наиболее низкий уровень абстракции);
- низкий уровень процессора (микропроцессора) или робота:
- высокий уровень процессора или робота.
7