Формальное доказательство семантической эквивалентности ядра языка АОП AspectTalk и языка ООП Smalltalk
Denotational semanticsof programming languages are considered. The core of an aspect-oriented programminglanguage is defined as its subset which is not aspect-oriented. Semantics equivalencebetween the core of the aspect-oriented programming language AspectTalk and the objectorientedprogramming language Smalltalk is proven with commutativity of the diagramin which objects are syntax or semantic domains and arrows are homomorphisms. Theproof shows in particular that the core of AspectTalk is really an object-oriented programminglanguage and the automatic translation of programs from the core of AspectTalk intoSmalltalk and vice versa is possible.
Formal proof of the semantic equivalence between the core of the AOP language AspectTalk and the OOP language smalltalk.pdf Язык аспектно-ориентированного программирования (АОП) AspectTalk [1] разработанс целью создания защищённых систем обработки информации. На нём могутбыть реализованы информационная система и политика её безопасности, а также осуществленаих интеграция с помощью соединительных модулей [2]. Основой этой технологииявляется возможность создания с помощью АОП дополнительных модулейи интеграции их с программой без изменения её исходного текста [3]. Согласно [4],всякий язык АОП L является надмножеством (расширением) некоторого языка программирования,не являющегося языком АОП и называемого далее ядром языка L.Ядро языка AspectTalk, по замыслу его автора, построено как язык объектно-ориентированногопрограммирования (ООП). В данной работе даётся формальное доказательствосемантической эквивалентности ядра языка АОП AspectTalk и языка ООПSmalltalk 80 [5]. Тем самым, в частности, формально доказывается, что ядро языкаAspectTalk является действительно языком ООП.Основными компонентами определения языка программирования являются егосинтаксис и семантика. Синтаксис задаётся с помощью формы Бэкуса-Наура (БНФ)или расширенной БНФ (РБНФ) [6]. Денотационное описание семантики (ДОС) [7] -один из способов формального описания семантики языков программирования, которыйсостоит в задании тройки объектов: 1) множеств, определяемых системой уравненийна моноиде слов в алфавите языка и называемых синтаксическими областями;2) совокупности множеств, являющихся непрерывными решётками и называемых множествамисемантических объектов, или доменами [8]; 3) множества функций, являющихсяотображениями из синтаксических областей в домены, называемого множествомсемантических отображений.В [9] семантическая эквивалентность языков программирования определена каккоммутативность диаграммы, в которой объектами являются множества синтаксическихобластей и множества доменов, а стрелками - гомоморфизмы между этими множествами.Аналогичным образом семантическая эквивалентность ядра языка АОПAspectTalk и языка Smalltalk доказана коммутативностью диаграммы на рис. 1, гдеA - ядро языка АОП AspectTalk, B -язык Smalltalk, SynX -множество синтаксическихобластей языка X , Semx -множество доменов языка X .Syn^ SynB41 2Рис. 1. Диаграмма семантической эквивалентности языков A и BГомоморфизымы 1 и 2 -это множества семантических отображений ДОС языковA и B соответственно. ДОС ядра языка AspectTalk построено на основе [10], ДОСязыка Smalltalk позаимствовано из работы [11]. Гомоморфизмы 3 и 4 определяютсяправилами трансляции одного языка в другой, 5 и 6 являются гомоморфизмами нанепрерывных решётках. Заметим, что в [9] в качестве языков A и B рассматриваютсявысокоуровневый язык программирования и машинный язык соответственно иставится вопрос о корректности трансляции одного в другой. Поскольку задача восстановленияисходного текста программы не всегда имеет решение, гомоморфизм 4отсутствует на диаграммах в [9].Доказательство семантической эквивалентности ядра языка AspectTalk и языкаSmalltalk позволяет использовать все принципы ООП, разработанные для Smalltalk,в программировании на AspectTalk. Более того, возможна автоматическая трансляцияпрограмм с языка Smalltalk в AspectTalk и обратно.
Ключевые слова
Авторы
Стефанцов Дмитрий Александрович | Национальный исследовательский Томский государственный университет | аспирант | dastephantsov@mail.tsu.ru |
Крюкова Анастасия Евгеньевна | Национальный исследовательский Томский государственный университет | студентка | kryustasia@gmail.com |
Всего: 2
Ссылки
Стефанцов Д. А. Реализация политик безопасности в компьютерных системах с помощью аспектно-ориентированного программирования / / Прикладная дискретная математика. 2008. №1(1). С. 94-100
Стефанцов Д. А. Технология и инструментальная среда создания защищённых систем обработки информации / / Прикладная дискретная математика. 2009. Приложение №1. С.55-56.
Filman R. E., Friedman D. P. Aspect-oriented programming is quantification and obliviousness [Электронный ресурс] / / Technical report, RIACS, 2000. URL: http://www. riacs.edu/research/technical_reports/TR_pdf/TR_01.12.pdf, свободный доступ (дата обращения: 9.04.2010)
Elrad T., Filman R.E., Bader A. Aspect-Oriented Programming / / Communicat. ACM. 2001. October. V.44. No. 10. P. 29-32.
Goldberg A., Robson D. Smalltalk 80: The Language and its implementation. Addison-Wesley, 1983. 742 p.
Whitney G. An extended BNF for specifying the syntax of declarations / / AFIPS Joint Computer Conferences, Boston, MA, USA. 1969. P. 801-812.
Tennet R. D. The denotational semantics of programming languages / / Communicat. ACM. 1976. August. V. 19. No. 8. P. 437-453.
Scott D. Data types as lattices / / Lect. Notes Mathem. 1975. V. 499. P. 579-651.
Janssen T. M. V. Algebraic translations, correctness and algebraic compiler construction / / Theoret. Comp. Scie. 1998. V. 199. P. 25-56.
Abelson H., Dybvig R. K., Haynes C. T., etal. Revised5 Report on the Algorithmic Language Scheme / / Higher-Order Symb. Comp. 1998. V. 11. No. 1. P. 7-105.
Kamin S. Inheritance in Smalltalk-80: a denotational definition / / POPL '88: Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages. 1988. P. 80-87.