Язык описания проблемы и исследование его возможностей
Аннотация
Разработан язык описания проблем Problem Description Language (PDL). Рассмотрены базовые архитектурные особенности языка PDL. Представлены преимущества использования языка описания проблемы.
Поясняются особенности составления описаний на языке PDL и его синтаксиса. Рассмотрен универсальный конфигуратор ПО для пакета программ защиты Web-сервера, описаны основные его особенности. Приводится пример апробации PDL с помощью транслятора, конвертирующего описание проблемы в код языка Perl. Приводится структура транслятора описания проблемы на PDL в Perl (фаза анализа и фаза синтеза). Описана каждая из этих фаз.
Работа на фазе синтеза в данном трансляторе существенно отличается от аналогичной фазы других трансляторов [13-15, 24, 26, 27]. Она может быть 3-х видов: 1. Если в описании проблемы не указан ни один из операторов действия (особый класс операторов в PDL). 2. Если в описании присутствует хотя бы один оператор действия и нужно проводить поиск в базе данных алгоритмов. 3. Если при тех же условиях что в пункте 2 в банке алгоритмов не найдено нужного модуля. В первом случае используются примитивы. Во втором - проводится поиск модулей в банке алгоритмов. В 3-м случае необходимый модуль придётся частично писать самому программисту.
Рассматривается процедура генерации пакета программ защиты Web-сервера на Perl с помощью описания задачи на PDL.
Приводятся примеры и рассказывается о причинах уменьшения количества программных ошибок при использовании транслятора PDL в Perl.
Литература
[2] Dorenskaya E.A., Semenov Yu.A. The determination method for contextual meanings of words and documents. Sovremennye informacionnye tehnologii i IT-obrazovanie = Modern Information Technologies and IT-Education. 2018; 14(4):896-902. (In Russ., abstract in Eng.) DOI: https://doi.org/10.25559/SITITO.14.201804.896-902
[3] Dorenskaya E.A., Semenov Yu.A. New methods of minimizing the errors in the software. CEUR Workshop Proceedings. 2018; 2267:150-154. Available at: http://ceur-ws.org/Vol-2267/150-154-paper-27.pdf (accessed 14.08.2020). (In Eng.)
[4] Dorenskaya E.A., Semenov Yu.A. The improved algorithm for calculation of the contextual words meaning in the text. Sovremennye informacionnye tehnologii i IT-obrazovanie = Modern Information Technologies and IT-Education. 2019; 15(4):954-960. (In Eng.) DOI: https://doi.org/10.25559/SITITO.15.201904.954-960
[5] Kulikovskaya A.A., Dorenskaya E.A., Semenov Yu.A. Development of an Algorithm’s Bank and Method for Searching Programs in Accordance with User Requirements. Sovremennye informacionnye tehnologii i IT-obrazovanie = Modern Information Technologies and IT-Education. 2020; 16(1):81-89. (In Russ., abstract in Eng.) DOI: https://doi.org/10.25559/SITITO.16.202001.81-89
[6] Semenov Yu.A., Ovsyannikov A.P., Ovsyannikova T.V. Development of the algorithm bank and basics of the language for problem description to minimize a number of program errors. Trudy NIISI RAN = Proceedings of SRISA RAS. 2016; 6(2):96-100. Available at: https://elibrary.ru/item.asp?id=29798446 (accessed 14.08.2020). (In Russ., abstract in Eng.)
[7] Kotov E.M., Tselykh A.N. Research of models for information retrieval. Izvestiya SFedU. Engineering Sciences. 2009; (4):163-168. Available at: https://elibrary.ru/item.asp?id=12834639 (accessed 14.08.2020). (In Russ., abstract in Eng.)
[8] Eidlin A.A., Eidlina M.A., Samsonovich A.V. Weak Semantic Map of Word Senses. Procedia Computer Science. 2018; 123:140-148. (In Eng.) DOI: https://doi.org/10.1016/j.procs.2018.01.023
[9] Afric P., Sikic L., Kurdija A.S., Delac G., Silic M. REPD: Source Code Defect Prediction As Anomaly Detection. In: 2019 IEEE 19th International Conference on Software Quality, Reliability and Security Companion (QRS-C). Sofia, Bulgaria; 2019. p. 227-234. (In Eng.) DOI: https://doi.org/10.1109/QRS-C.2019.00052
[10] Noller Y., Kersten R., Păsăreanu C.S. Badger: complexity analysis with fuzzing and symbolic execution. In: Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA 2018). Association for Computing Machinery, New York, NY, USA; 2018. p. 322-332. (In Eng.) DOI: https://doi.org/10.1145/3213846.3213868
[11] Ye M., Cohen M.B., Srisa-an W., Wei S. EvoIsolator: Evolving Program Slices for Hardware Isolation Based Security. In: Colanzi T., McMinn P. (ed.) Search-Based Software Engineering. SSBSE 2018. Lecture Notes in Computer Science. 2018; 11036:377-382. Springer, Cham. (In Eng.) DOI: https://doi.org/10.1007/978-3-319-99241-9_24
[12] Kádár I. The optimization of a symbolic execution engine for detecting runtime errors. Acta Cybernetica. 2017; 23(2):573-597. (In Eng.) DOI: https://doi.org/10.14232/actacyb.23.2.2017.9
[13] Wang J., Pang J., Liu X., Yue F., Tan J., Fu L. Dynamic Translation Optimization Method Based on Static Pre-Translation. IEEE Access. 2019; 7:21491-21501. (In Eng.) DOI: https://doi.org/10.1109/ACCESS.2019.2897611
[14] Ferrara P., Cortesi A., Spoto F. From CIL to Java bytecode: Semantics-based translation for static analysis leveraging. Science of Computer Programming. 2020; 191:102392. (In Eng.) DOI: https://doi.org/10.1016/j.scico.2020.102392
[15] Zaytsev V. Modelling of Language Syntax and Semantics: The Case of the Assembler Compiler. Journal of Object Technology. 2020; 19(2):1-22. (In Eng.) DOI: https://doi.org/10.5381/jot.2020.19.2.a5
[16] Rahman M.M., Watanobe Y., Nakamura K. Source Code Assessment and Classification Based on Estimated Error Probability Using Attentive LSTM Language Model and Its Application in Programming Education. Applied Sciences. 2020; 10(8):2973. (In Eng.) DOI: https://doi.org/10.3390/app10082973
[17] Ilyin V.D. Sistema porozhdeniya programm [Program Generating System]. Nauka, Moscow; 1989. (In Russ.)
[18] Tyugu E.H. Konceptual'noe programmirovanie [Conceptual Programming]. Nauka, Moscow; 1984. (In Russ.)
[19] Ilyin A.V., IlyinV.D. Systematization of Knowledge about Programmable Tasks. Systems and Means of Informatics. 2014; 24(3):192-203. (In Russ., abstract in Eng.) DOI: https://doi.org/10.14357/08696527140314
[20] Kazakova A.E. Peculiarities of semantics of programming languages. Moscow University Bulletin. Series 7. Philosophy. 2007; (6):69-75. Available at: https://www.elibrary.ru/item.asp?id=11725960 (accessed 14.08.2020). (In Russ., abstract in Eng.)
[21] Egorov M.A. Metodika ocenki bezopasnosti programmnogo koda korporativnyh prilozhenij [Methodology for Evaluating the Security of Corporate Application Software Code]. Herald of the Bauman Moscow State Technical University. Series Instrument Engineering. 2011; (S1):67-78. Available at: https://www.elibrary.ru/item.asp?id=17681815 (accessed 14.08.2020). (In Russ., abstract in Eng.)
[22] Naumov R.V. Aktual'nye jazyki programmirovanija [Current Programming Languages]. Academy. 2016; (1):49-50. Available at: https://www.elibrary.ru/item.asp?id=25345843 (accessed 14.08.2020). (In Russ.)
[23] Levushkin A.V., Turchaninov M.K., Zhiganov A.A., Yermolaeva V.V. Osnovnye sovremennye jazyki programmirovanija [The Main Modern Programming Languages]. Young Scientist. 2018; (25):96-97. Available at: https://www.elibrary.ru/item.asp?id=35161929 (accessed 14.08.2020). (In Russ.)
[24] Stas A.N. Methods of Teaching the Designing of Translators. Tomsk State Pedagogical University Bulletin. 2015; (8):76-81. Available at: https://www.elibrary.ru/item.asp?id=24075526 (accessed 14.08.2020). (In Russ., abstract in Eng.)
[25] Pakhunov A.V. Programming Languages: Classification, Features, Criteria of Choice. Modern Science. 2015; (4):89-91. Available at: https://www.elibrary.ru/item.asp?id=25430775 (accessed 14.08.2020). (In Russ., abstract in Eng.)
[26] Khokhlov D.G., Kirpichnikov A.P., Khalid G.H. Interpretator jazyka C dlja jelektronnogo obuchenija programmirovaniju [C interpreter for e-learning programming]. Bulletin of the Technological University. 2017; 20(14):109-111. Available at: https://www.elibrary.ru/item.asp?id=29880255 (accessed 14.08.2020). (In Russ.)
[27] Novichkova M.I., Trofimov I.A. Razrabotka transljatora jazyka programmirovanija vysokogo urovnja [Development of a high-level programming language translator]. Obrazovanie i nauka v sovremennyh uslovijah = Education and Science in the Modern Context. 2015; (3):213-214. Available at: https://www.elibrary.ru/item.asp?id=23892014 (accessed 14.08.2020). (In Russ.)
[28] Lebedeva T.N., Nosova L.S. Formalization of Data in the Programming Language 1C. Vestnik of Astrakhan State Technical University. Series: Management, Computer Sciences and Informatics. 2015; (3):113-121. Available at: https://www.elibrary.ru/item.asp?id=23826932 (accessed 14.08.2020). (In Russ., abstract in Eng.)
Это произведение доступно по лицензии Creative Commons «Attribution» («Атрибуция») 4.0 Всемирная.
Редакционная политика журнала основывается на традиционных этических принципах российской научной периодики и строится с учетом этических норм работы редакторов и издателей, закрепленных в Кодексе поведения и руководящих принципах наилучшей практики для редактора журнала (Code of Conduct and Best Practice Guidelines for Journal Editors) и Кодексе поведения для издателя журнала (Code of Conduct for Journal Publishers), разработанных Комитетом по публикационной этике - Committee on Publication Ethics (COPE). В процессе издательской деятельности редколлегия журнала руководствуется международными правилами охраны авторского права, нормами действующего законодательства РФ, международными издательскими стандартами и обязательной ссылке на первоисточник.
Журнал позволяет авторам сохранять авторское право без ограничений. Журнал позволяет авторам сохранить права на публикацию без ограничений.
Издательская политика в области авторского права и архивирования определяются «зеленым цветом» в базе данных SHERPA/RoMEO.
Все статьи распространяются на условиях лицензии Creative Commons «Attribution» («Атрибуция») 4.0 Всемирная, которая позволяет другим использовать, распространять, дополнять эту работу с обязательной ссылкой на оригинальную работу и публикацию в этом журналe.