Preview

Advanced Engineering Research (Rostov-on-Don)

Advanced search

Theoretical foundations of the organization of branches and repetitions in programs in the logic programming language Prolog

https://doi.org/10.23947/2687-1653-2021-21-2-200-206

Abstract

Introduction. The organization of branches and repetitions in the context of logical programming is considered by an example of the Prolog language. The fundamental feature of the program in a logical programming language is the fact that a computer must solve a problem by reasoning like a human. Such a program contains a description of objects and relations between them in the language of mathematical logic. At the same time, the software implementation of branching and repetition remains a challenge in the absence of special operators for the indicated constructions in the logical language. The objectives of the study are to identify the most effective ways to solve problems using branching and repetition by means of the logic programming language Prolog, as well as to demonstrate the results obtained by examples of computational problems.  Materials and Methods. An analysis of the literature on the subject of the study was carried out. Methods of generalization and systematization of knowledge, of the program testing, and analysis of the program execution were used.  Results. Constructions of branching and repetition organization in a Prolog program are proposed. To organize repetitions, various options for completing a recursive cycle when solving problems are given.  Discussion and Conclusions. The methods of organizing branches and repetitions in the logic programming language Prolog are considered. All these methods are illustrated by examples of solving computational problems. The results obtained can be used in the further development of the recursive predicates in logical programming languages, as well as in the educational process when studying logical programming in the Prolog language. The examples of programs given in the paper provide using them as a technological basis for programming branches and repetitions in the logic programming language Prolog.

About the Author

D. V. Zdor
Primorskaya State Academy of Agriculture
Russian Federation


References

1. Genesys-Pro: Innovations in Test Program Generation for Functional Processor Verification / E. Adir, L. Almog, E. Fournier [et al.] // IEEE Design & Test of Computers. — 2014. — Vol. 21 (2). — P. 84–93. https://doi.org/10.1109/MDT.2004.1277900

2. ARM Architecture Reference Manual. ARM DDI 0487A.f. ARM Corporation, 2015. — 5886 p.

3. Kent D. Lee. Foundations of Programming Languages / Kent D. Lee // Springer, 2017. — 370 p.

4. Ute Schmid. Inductive Synthesis of Functional Programs: Universal Planning, Folding of Finite Programs, and Schema Abstraction by Analogical Reasoning / Ute Schmid // Springer Science & Business Media, 2013.

5. Adam Lally. Natural Language Processing with Prolog in the IBM Watson System / Adam Lally, Paul Fodor // Association for Logic Programming, 2011.

6. Цуканова, Н. И. Теория и практика логического программирования на языке Visual Prolog 7 / Н. И. Цуканова, Т. А. Дмитриева. — Москва : Горячая линия – Телеком, 2013. — 232 с.

7. Eduardo Costa. Visual Prolog 7.3 for Tyros / Eduardo Costa // 2010. — 270 p. — URL: http://visualprolog.com/download/73/books/tyros/tyros73.pdf

8. Братко, И. Алгоритмы искусственного интеллекта на языке Prolog / И. Братко ; [пер. с англ. К. А. Птицина]. — 3-е изд. — Москва : Вильямс, 2004. — 637 с.

9. Адаменко, А. Н. Логическое программирование и Visual Prolog / А. Н. Адаменко, А. М. Кучуков. — Санкт-Петербург: БХВ-Петербург, 2003. — 982 с.

10. Логика предикатов и язык Пролог / В. Т. Тарушкин, П. В. Тарушкин, Л. Т. Тарушкина, А. В. Юрков // Современные наукоемкие технологии. — 2010. — № 4. — С. 62–63.

11. Солдатова, О. П. Программирование на языке ПРОЛОГ / О. П. Солдатова, И. В. Лёзина. — Самара : Репозитарий Самарского государственного аэрокосмического университета : [сайт]. — 2008. — 52 с.

12. Coding guidelines for Prolog / Michael A. Covington, Roberto Bagnara, Richard A. O’Keefe [et al.] // Theory and Practice of Logic Programming. — 2011. — Vol. 12 (6). — P. 889–927.

13. Марков, В. Н. Современное логическое программирование на языке Visual Prolog 7/5 / В. Н. Марков. — Санкт-Петербург : БХВ-Петербург, 2016. — 541 с.

14. Parallel Execution of Prolog Programs: a Survey / G. Gupta, E. Pontelli, K.A.M. Ali [et al.] // ACM Transactions on Programming Languages and Systems. — 2011. — Vol. 23 (4). — P. 472.

15. Особенности программной реализации логических задач на языке PROLOG / О. Н. Половикова, В. В. Ширяев, Н. М. Оскорбин, Л. Л. Смолякова // Известия Алтайского государственного университета. — 2021. — № 1 (117). — С. 166–120.


Review

For citations:


Zdor D.V. Theoretical foundations of the organization of branches and repetitions in programs in the logic programming language Prolog. Advanced Engineering Research (Rostov-on-Don). 2021;21(2):200-206. https://doi.org/10.23947/2687-1653-2021-21-2-200-206

Views: 449


Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.


ISSN 2687-1653 (Online)