Theoretical Foundations of the Organization of Banches and Repetitions in Programs in the Logical Programming Language Prolog
Authors: ЗДОР Д.В. 
Published: August 2024

Программа для любой компьютерной системы предназначена для обработки данных. При этом для обработки больших объемов данных используются динамические структуры данных. К наиболее часто применяемым динамическим структурам данных можно отнести списки. Необходимость в использовании списков с одной стороны, и отсутствие специальных операторов обработки списков в программах на Прологе с другой стороны, актуализирует проблему поиска теоретических основ решения задач по обработке списков. Использование рекурсии выступает инструментальным средством решения задач по обработке списков в Прологе. Цель работы заключается в анализе выполнения рекурсивных правил обработки списков на уровне сопоставления предикатов и конкретизации переменных в программах на Прологе. Анализ специальной литературы по теме исследование, обобщение и систематизация знаний, тестирование программы, анализ хода выполнения программы. Рассмотрена конструкциярешения задач по обработке списков в программе на языке Пролог. Проведен детальный анализ выполнения рекурсивных предикатов в задачах обработки списков.Конструктивные особенности рекурсивного правила и условия завершения рекурсии зависят от типа решаемой задачи по обработке списков. В статье на примере задачи проверки принадлежности элемента списку подробно описан механизм использования рекурсивных правил на уровне сопоставления предикатов и конкретизации переменных в контексте решения задач обработки списков. Приведенный пример может служить технологической основой для решения иных задач по обработке списков. Полученные результаты могут быть использованы в дальнейшей разработке вопросов использования рекурсивных предикатов в задачах обработки списков, а также использоваться в учебном процессе при изучении теоретических основ информатики и логического программирования на языке Пролог.

A program for any computer system is designed to process data. At the same time, dynamic data structures are used to process large amounts of data. The most commonly used dynamic data structures are lists. The need to use lists, on the one hand, and the absence of special operators for list processing in Prolog programs, on the other hand, actualizes the problem of finding the theoretical foundations for solving list processing problems. The use of recursion is a tool for solving list processing problems in Prolog. The purpose of the work is to analyze the execution of recursive rules for processing lists. Analysis of special literature on the topic of research, generalization and systematization of knowledge, testing of the program, analysis of the progress of the program. The construction of solving problems for processing lists in a program in the Prolog language is considered. A detailed analysis of the execution of recursive predicates in list processing tasks is carried out. The design features of the recursive rule and the conditions for terminating the recursion depend on the type of the list processing problem being solved. Using the example of the problem of checking whether an element belongs to a list, the article describes in detail the mechanism of using recursive rules at the level of matching predicates and instantiating variables in the context of solving problems of processing lists. The given example can serve as a technological basis for solving other problems of processing lists. The results obtained can be used in the further development of the issues of using recursive predicates in problems of list processing, as well as used in the educational process when studying the theoretical foundations of computer science and logical programming in the Prolog language.