Специализатор JaSpe: алгоритм внутрипроцедурного анализа времени связывания программ на подмножестве языка Java

Автор: Адамович Игорь Алексеевич, Климов Юрий Андреевич

Журнал: Программные системы: теория и приложения @programmnye-sistemy

Рубрика: Программное и аппаратное обеспечение для супер ЭВМ

Статья в выпуске: 1 (44) т.11, 2020 года.

Бесплатный доступ

Анализ времени связывания в частичных вычислениях, нацеленных на оптимизацию программ, разделяет программные конструкции на статические и динамические. Статические конструкции исполняются специализатором, а динамические переходят в результирующую программу. Частичные вычисления применяются в основном для нетривиальной компиляции программ без компилятора, при наличии лишь интерпретатора и специализатора. Эффективность их существенно зависит от качества разметки программы, получаемой в результате анализа времени связывания.Статья посвящена особенностям алгоритма анализа времени связывания специализатора JaSpe, разрабатываемого авторами данной публикации для широко распространенного объектно-ориентированного языка Java. Она содержит основные понятия, использованные при реализации анализа времени связывания, внутрипроцедурную версию алгоритма и обсуждение деталей анализа конструкций, использующих ссылочные типы данных.Алгоритм отличается от предшествующих аналогов, из числа работающих с программами на объектно-ориентированных языках, нетривиальной обработкой конструкций ветвления (if, switch), циклов (for, while, do) и блочных инструкции, которые содержат последовательность других инструкций...

Еще

Современные языки программирования, статический анализ программ, преобразование программ, метавычисления, смешанные вычисления, интерактивная специализация

Короткий адрес: https://sciup.org/143170858

IDR: 143170858   |   DOI: 10.25209/2079-3316-2020-11-1-3-29

Список литературы Специализатор JaSpe: алгоритм внутрипроцедурного анализа времени связывания программ на подмножестве языка Java

  • Y. Futamura. “Partial evaluation of computation process - an approach to a compiler-compiler”, Higher-Order and Symbolic Computation, 12:4 (1999), pp. 381-391. DOI: 10.1023/A:1010095604496
  • N.D. Jones, C.K. Gomard, P. Sestoft. Partial Evaluation and Automatic Program Generation, Prentice-hall International Series in Computer Science, Prentice-Hall, 1993, , 415 pp. ISBN: 978-0-13-020249-9
  • I.A. Adamovich, And.V. Klimov. «Интерактивный специализатор подмножества языка Java, основанный на методе частичных вычислений», Proceedings of the Institute for System Programming, 30:4 (2018), с. 29-44 (in English). DOI: 10.15514/ISPRAS-2018-30(4)-2
  • Ю.А. Климов. Специализация программ на объектно-ориентированных языках методом частичных вычислений, Институт прикладной математики им. М.В. Келдыша РАН, М., 2009 URL https://pat.keldysh.ru/ yura/publications/2009.10-Klimov-Disser-Specializacia_programm_na_ob'ektno-orientirovannyx_yazykah.pdf.
  • Ю.А. Климов. «Специализатор CILPE: анализ времен связывания», Препринты ИПМ им. М. В. Келдыша, 2009, 007, 28 с.
  • Ю. А. Климов. «SOOL: объектно-ориентированный стековый язык для формального описания и реализации методов специализации программ», Препринты ИПМ им. М. В. Келдыша, 2008, 044, 32 с.
  • Ю.А. Климов. «Особенности применения метода частичных вычислений к специализации программ на объектно-ориентированных языках», Препринты ИПМ им. М. В. Келдыша, 2008, 012, 27 с.
  • Ю.А. Климов. «Возможности специализатора CILPE и примеры его применения к программам на объектно-ориентированных языках», Препринты ИПМ им. М. В. Келдыша, 2008, 030, 28 с.
  • Ю.А. Климов. «Специализатор CILPE: генерация остаточной программы», Препринты ИПМ им. М. В. Келдыша, 2009, 008, 26 с.
  • Ю.А. Климов. «Специализатор CILPE: доказательство корректности», Препринты ИПМ им. М. В. Келдыша, 2009, 033, 32 с.
  • Ю.А. Климов. «Специализатор CILPE: частичные вычисления для объектно-ориентированных языков», Программные системы: теория и приложения, 1:3(3) (2010), с. 13-36.
  • N.D. Jones, P. Sestoft, H. S. “Mix: A self-applicable partial evaluator for experiments in compiler generation”, Lisp and Symbolic Computation, 2:9 (Febrary 1989), pp. 9-50.
  • DOI: 10.1007/BF01806312
  • С.А. Романенко. «Генератор компиляторов, порожденный самоприменением специализатора, может иметь ясную и естественную структуру», Препринты ИПМ им. М. В. Келдыша, 1987, 026, 39 с.
  • L.O. Andersen. Program analysis and specialization for the C programming language, DIKU, University of Copenhagen, 1994.
  • L.O. Andersen. “Binding-time analysis and the taming of C pointers”, PEPM'93, ACM, 1993, pp. 47-58.
  • DOI: 10.1145/154630.154636
  • L. Hornof, J. Noye. “Accurate binding-time analysis for imperative languages: flow, context, and return sensitivity”, Theoretical Computer Science, 248:1-2 (2000), pp. 3-27.
  • DOI: 10.1016/S0304-3975(00)00048-7
  • R. Marlet. Program Specialization, Wiley-ISTE, 2012, , 544 pp.
  • DOI: 10.1002/9781118576984 ISBN: 9781848213999
  • U.P. Schultz, J.L. Lawall, C. Consel. “Automatic program specialization for Java”, ACM Trans. Program. Lang. Syst., 25:4 (2003), pp. 452-499.
  • DOI: 10.1145/778559.778561
  • U.P. Schultz. “Partial evaluation for class-based object-oriented languages”, PADO 2001: Programs as Data Objects, Lecture Notes in Computer Science, vol. 2053, Springer, 2001, , pp. 173-197.
  • DOI: 10.1007/3-540-44978-7_11 ISBN: 978-3-540-42068-2
  • U.P. Schultz. Object-Oriented Software Engineering Using Partial Evaluation, University of Rennes I, Rennes, France, 2000.
  • А.В. Макаров, С.Ю. Скоробогатов, А.М. Чеповский. Common Intermediate Language и системное программирование в Microsoft.NET, Интернет-Университет Информационных Технологий (ИНТУИТ), Бином. Лаборатория знаний, М., 2006, , 328 с.
  • ISBN: 978-5-94774-735-5
  • T. Würthinger, C. Wimmer, A. Wö, L. Stadler, G. Duboscq, C. Humer, G. Richards, D. Simon, M. Wolczko. “One VM to rule them all”, ACM, New York, NY, USA, 2013, pp. 187-204.
  • DOI: 10.1145/2509578.2509581
  • T. Würthinger, C. Wimmer, C. Humer, A. Wö, L. Stadler, C. Seaton, G. Duboscq, D. Simon, M. Grimmer. “Practical partial evaluation for high-performance dynamic language runtimes”, SIGPLAN Not., 52:6 (June 2017), pp. 662-676.
  • DOI: 10.1145/3140587.3062381
Еще
Статья научная