Научный журнал
ИЗВЕСТИЯ ВЫСШИХ УЧЕБНЫХ ЗАВЕДЕНИЙ.
СЕВЕРО-КАВКАЗСКИЙ РЕГИОН.

ТЕХНИЧЕСКИЕ НАУКИ


ИЗВЕСТИЯ ВЫСШИХ УЧЕБНЫХ ЗАВЕДЕНИЙ СЕВЕРО-КАВКАЗСКИЙ РЕГИОН. 2017; 3: 49-55

 

http://dx.doi.org/10.17213/0321-2653-2017-3-49-55

 

МЕТОДЫ РЕАЛИЗАЦИИ СИНТАКСИЧЕСКИ САХАРНЫХ РАСШИРЕНИЙ В КОМПИЛЯТОРАХ

С.С. Михалкович

Михалкович Станислав Станиславович – канд. физ.-мат. наук, доцент, кафедра «Алгебра и дискретная математика», Институт математики, механики и компьютерных наук имени И.И. Воровича, Южный федеральный университет, г. Ростов-на-Дону, Россия. E-mail: miks@sfedu.ru

 

 

Аннотация

Рассматривается один из способов расширения языка программирования – реализация новых конструкций как синтаксического сахара. Синтаксически сахарные конструкции выражаются через конструкции базового языка. Предложены несколько паттернов реализации синтаксического сахара, отличающихся действиями, проводимыми на синтаксическом и семантическом уровнях, исследована их эффективность. Приводятся результаты применения предложенных подходов к реализации ряда синтаксически сахарных конструкций в компиляторе PascalABC.NET.

 

Ключевые слова: компилятор; синтаксическое дерево; семантическое дерево; расширение языка программирования; паттерн визитор; синтаксический сахар; PascalABC.NET.

 

Полный текст: [in elibrary.ru]

 

Ссылки на литературу

  1. Spinellis D. Notable design patterns for domain specific languages // Journal of Systems and Software, February 2001, Vol. 56. Issue 1.
    P. 91 – 99.
  2. Hudak P. Modular domain specific languages and tools // Proceedings of International Conference on Software Reuse. IEEE, 1998. P. 134 – 142.
  3. Bravenboer M., A. van Dam, Olmos K., Visser E. Program Transformation with Scoped Dynamic Rewrite Rules // Journal Fundamenta Informaticae – Program Transformation: Theoretical Foundations and Basic Techniques. Part 2. 2006. Vol. 69. Issue 1 – 2. P. 123 – 178.
  4. Hofer C., Ostermann K. Modular domain-specific language components in Scala // Proceedings of the ninth international conference on Generative programming and component engineering GPCE '10. 2010. P. 83 – 92.
  5. Erdweg S., Rendel T., Kästner C., Ostermann K. SugarJ: library-based syntactic language extensibility // Proceedings of the 2011 ACM International Conference on Object-oriented Programming, Systems, Languages, and Applications. ACM. 2011. P. 391–406.
  6. Erdweg S., Rieger F. A Framework for Extensible Languages // In Proceedings of Conference on Generative Programming: Concepts & Experiences (GPCE). ACM. 2013. P. 3 – 12.
  7. Reis L., V. Di Iorio, Bigonha R. An on-the-fly grammar modification mechanism for composing and defining extensible languages // Computer Languages, Systems & Structures, July 2015. Vol. 42. P. 46 – 59.
  8. Lorenzen F., Erdweg S. Sound Type-Dependent Syntactic Language Extension // Proceedings of Symposium on Principles of Programming Languages (POPL). ACM, 2016. Р. 204 – 216.
  9. Бондарев И.В., Михалкович С.С. Система программи-рования PascalABC.NET – новые возможности 2015–16 гг. // XXIII науч. конф. «Современные информационные технологии: тенденции и перспективы развития»: Материалы конф. Ростов н/Д, 21 – 22 апреля 2016 г. С. 69 – 71.
  10. Pati T., Hill J. H. A survey report of enhancements to the visitor software design pattern // Software: Practice and Experience. 2014.Vol. 44,
    Issue 6, P. 699–733.
  11. The .NET Compiler Platform «Roslyn» URL: https://github.com/dotnet/roslyn (дата обращения: 01.02.2017).