БАЗОВА СЕМАНТИКА СКЛАДЕНИХ ОПЕРАТОРІВ МОВИ PYTHON
Анотація
Викладено семантичнi означення складених операторiв мови програмування Python, для якоЁ маёмо розширення застосування в прикладних проектах. Семантичнi означення записано в базовiй початковiй формi, яка ё первинною для вивчення програмування i для будови алгоритмiв процесiв обробки даних. На пiдставi семантичних означень складено синтаксичнi означення, якi утворюють правильну пiдмножину загального синтаксису мови Python, i можуть бути доповненi операцiями розширення без модифiкацiЁ базовоЁ частини. Викладено метод операцiйно-функцiонального визначення семантики, який даё змогу перебудувати синтаксичнi визначення так, щоб зберегти базову семантику окремих конструкцiй мови i максимально скоротити довжину виведення за граматичними означеннями startdef=>+"example". Для цього використовуёмо головно три прийоми: скорочення повних граматичних правил; пiдстановка означень нетермiналiв в правi частини синтаксичного визначення; додавання термiналiв, визначених нестрого, з посиланням на нетермiнали, визначенi ранiше. Моделi семантики побудованi на пiдставi класифiкацiЁ операцiй i функцiй перетворення даних. Моделi трактуёмо як унiверсальнi алгебри U(A) =< M;& >, де M деяка непуста множина (величин, комiрок пам'ятi, структур, операторiв), а & сукупнiсть операцiй (можливо частинних) на множинi M, враховуючи сигнатуру. Моделi семантики визначаёмо двома групами: 1)моделi на пiдставi допустимих операцiй мови Python; 2)моделi на пiдставi операторiв i керуючих структур мови Python. Для кожноЁ групи моделей алгебра семантики маё своЁ особливостi. Моделi семантики визначенi для таких об'ёктiв: числовi типи, присвоёння, система даних, print, input; умовнi вирази, умовний оператор if; оператори циклу while, for; оператор try контролю виняткових ситуацiй; оператор with контекстних менеджерiв.
Посилання
1. RosuG. Matching logic /G.Rosu //Logical Methods in Computer Science. 2017. Vol.13, No.4. P.161. 2. ChenX. Matching mu-Logic /X.Chen, G.Rosu //Proceedings of theThirty-Fourth Annual ACM/IEEE Symposium on Logic in Computer Science (LICS). 2019. 2427 June 2019. Vancouver, Canada.
3. AhrentW. Deductive software verication the key book; from theory to practice /W.Ahrent, B.Beckert, R.Bubel, R.Hahnle, Ph.Schmitt, M.Ulbrich, editors //Lecture notes in computer science. New-York: Springer, 2016. 10001. 4. BinsbergenaL.T. Executable component-based semantics /L.T.Binsbergena, P.D.Mosses, C.N.Sculthorped //J Logical Algebraic Methods Program. 2019. No.103. P.184212. 5. StefanescuA. Semantics-based program veriers for all languages /A.Stefanescu, D.Park, S.Yuwen, Y.Li, G.Rosu //Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'16). ACM. 2016. Amsterdam, Netherlands 30/10-04/11/2016. P.7491. 6. Python Software Foundation [US] //Python 3.7.3 documentation [Electronic resource]. Available from: https://docs.python.org/3/ 7. KardashA.I. Construction of basic algebraic operational-functional models for the study of programming of integer arithmetics /A.I.Kardash, V.V.Chernyakhivsky //Visnyk of Cherkasy State Technological University. Series of technical sciences. Cherkasy: Editorial and publishing center of the ChTTU. 2011. No.3. P.7782.