Объектно-ориентированное описание графового представления программ и моделей тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат физико-математических наук Демаков, Алексей Васильевич
- Специальность ВАК РФ05.13.11
- Количество страниц 149
Оглавление диссертации кандидат физико-математических наук Демаков, Алексей Васильевич
ВВЕДЕНИЕ.
1 ОБЗОР ОБЛАСТИ ПРИМЕНЕНИЯ ГРАФОВ, МЕТОДОВ ИХ ПРЕДСТАВЛЕНИЯ И ОБРАБОТКИ В КОМПЬЮТЕРНЫХ СИСТЕМАХ. ПОСТАНОВКА ЗАДАЧИ.
1.1 Использование графов в компьютерных системах.
1.2 Области использования неоднородных графовых структур.
1.3 Общие сведения.
1.4 Основные методы описания структуры графов.
1.4.1 Описание структуры текстовых документов.
1.4.2 Описание структуры XML документов.
1.4.3 Другие методы описания структуры графов.
1.4.4 Описание структуры внутрипрограммного представления графов.
1.4.4.1 Объектно-ориентированное представление данных.
1.4.4.2 Гомогенное представление графа.
1.4.4.3 Гетерогенное представление графа.
1.4.4.4 Использование описания структуры текстового, XML или другого внепрограммного представления данных для описания структуры внутрипрограммного представления.
1.4.4.5 Описание структуры внутрипрограммного представления графов на специализированных языках
1.5 Необходимые возможности языка описания структуры графов.
1.5.1 Синтаксис языка.
1.5.2 Типизация элементов структуры данных.
1.5.3 Поддержка жизненного цикла графа.
1.5.4 Определение операций над графами.
1.5.5 Модульность описания структуры графов.
1.5.6 Требования к инструментальной поддержке.
1.6 Постановка задачи.
2 ЯЗЫК ОПИСАНИЯ ГРАФОВЫХ СТРУКТУР TREEDL.
2.1 Синтаксис языка.
2.2 Типы данных.
2.2.1 Типы вершин.
2.2.2 Предопределенные типы.
2.2.3 Перечислимые типы.
2.2.4 Пользовательские типы.
2.2.5 Типовые выражения.
2.2.6 Поддержка жизненного цикла графа.
2.2.7 Дополнительная декларативная информация.
2.2.8 Пользовательский код.
2.2.8.1 Ограничения на значение отдельного поля.
2.2.8.2 Ограничения на совокупность значений полей.
2.2.8.3 Синтезируемые атрибуты.
2.2.8.4 Поля с отложенным вычислением значения.
2.2.8.5 Поддержка нескольких целевых языков программирования.
2.2.9 Наследование типов вершин.
2.3 Модули.
2.4 Операции над графом.
2.4.1 Определение операций над графом.
2.4.2 Расширение определения операций.
2.5 Пример использования языка ТиееБЬ для описания графовой структуры -описание структуры абстрактного синтаксиса грамматики.
2.6 Общая схема трансляции.
2.7 Основные результаты главы.
3 ИНСТРУМЕНТАЛЬНАЯ ПОДДЕРЖКА ЯЗЫКА ТЯЕЕРЬ.
3.1 Анализатор языка.
3.2 Открытая платформа для обработки языка TreeDL.
3.3 Запуск инструмента из командной строки.
3.4 Интеграция со средой разработки Eclipse.
3.5 Общая структура библиотеки АТР.
3.6 Общая структура инструмента treedl.
3.7 Основные результаты главы.
4 АПРОБАЦИЯ ЯЗЫКА TREEDL.
4.1 Транслятор исполнимого подмножества языка спецификации RSL в процедурный язык PROTEL.
4.2 Транслятор спецификационного расширения языка Java.Ill
4.3 Транслятор спецификационного расширения языка с#.
4.4 Модуль интеграции транслятора спецификационного расширения языка со средой разработки.
4.5 Генератор тестов на основе моделей.
4.6 Открытый анализатор языка Java для специализированной обработки и расширения языка.
4.7 Основные результаты главы.
Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК
Автоматическая генерация тестов для семантических анализаторов трансляторов2006 год, кандидат физико-математических наук Архипова, Мария Викторовна
Языковая и инструментальная поддержка функционально-потокового параллельного программирования2004 год, кандидат технических наук Привалихин, Денис Викторович
Разработка и исследование системы концептуального программирования с использованием лингвистического процессора2011 год, кандидат технических наук Лебедев, Андрей Сергеевич
Исследование и разработка метода графического программирования для ЭВМ1984 год, кандидат физико-математических наук Мощицкий, Александр Викторович
Языковые средства систем программирования, ориентированные на создание переносимых, эволюционно расширяемых параллельных программ2005 год, доктор технических наук Легалов, Александр Иванович
Введение диссертации (часть автореферата) на тему «Объектно-ориентированное описание графового представления программ и моделей»
Общая характеристика работы
Графы являются естественным и наглядным средством представления сложных структур. Это позволяет широко использовать их в компьютерных системах при решении различных задач. Во многих из этих задач графы используются для представления данных неоднородной структуры. К таким задачам относятся представление деревьев абстрактного синтаксиса программ в трансляторах языков программирования, описание структуры и обработки объектных моделей документов, обработка сложных структур данных предметной области в прикладных задачах и т.п.
Хорошо исследованы методы решения широкого класса задач на графах, изучены алгоритмы обработки графов, обеспечивающие эффективное решение этих задач. Однако для успешного решения задач на графах необходим не только правильный выбор алгоритма, но и такое представление графа в компьютерной системе, которое обеспечивает эффективную реализацию выбранного алгоритма обработки графа.
Алгоритм оказывает наибольшее влияние на эффективность решения задачи, а представление графа и способ реализации алгоритма определяют трудоемкость реализации и сопровождения. Естественно, возникает необходимость создания таких методов представления графов и реализации операций над ними, которые облегчают разработку и сопровождение программ, использующих графовые структуры данных.
Особенно важны такие методы при работе с графами, используемыми для представления неоднородных данных. Структура таких графов также может быть неоднородна и нагружена дополнительной информацией. Обеспечение заданной структуры графа и поддержание соответствия между структурой графа и определениями операций над ним в процессе разработки и развития программы является одной из основных задач методов представления графов и реализации алгоритмов их обработки.
Существуют различные виды представления данных - внепрограммные (текстовое, XML, графическое представления, базы данных и т.п.) и внутрипрограммное. Внутрипрограммное представление является основным при обработке данных. Для описания структуры данных внутри программы используются языки программирования общего назначения. Однако возможностей языков общего назначения часто недостаточно для адекватного описания графовых структур данных и операций над ними. Это затрудняет реализацию и сопровождение, а также негативно сказывается на надежности программных систем, использующих графовые структуры данных.
Таким образом, актуальной задачей является разработка языков, обладающих специализированными возможностями для описания структуры графов и операций над ними.
Цели и задачи работы
Целью диссертационной работы являлась разработка метода описания графовых структур данных, применимого для решения таких задач как представление деревьев абстрактного синтаксиса программ в трансляторах языков программирования, описание структуры и обработки объектных моделей документов, обработка сложных структур данных предметной области в прикладных задачах и т.п.
Для достижения поставленной цели были поставлены следующие задачи:
• Разработка специализированного языка описания структуры графов.
• Реализация инструментальной поддержки этого метода.
• Апробация этого метода и его инструментальной поддержки.
Методы исследования
При решении поставленных задач использовались следующие методы исследования: метод сравнений и аналогий, метод обобщений, методы построения формальных моделей и анализа их свойств.
При решении поставленных задач использовались следующие теории и подходы:
• Методы объектно-ориентированного проектирования использовались как при анализе необходимых возможностей языка описания структуры графов, так и при разработке инструментальной поддержки этого языка.
• Теория контекстно-свободных грамматик использовалась при разработке языка описания структуры графов.
• Компонентный подход к разработке программного обеспечения использовался при реализации расширяемого транслятора языка описания структуры графов.
Научная новизна
В диссертации представлен новый метод описания графовых структур данных, основанный на использовании разработанного автором работы нового специализированного языка TreeDL и расширяемого транслятора этого языка.
Практическая значимость
Практическая значимость работы подтверждается успешным использованием различных версий языка TreeDL для описания структуры деревьев абстрактного синтаксиса программ в 1995-2005 годах в проектах по разработке:
• Транслятора исполнимого подмножества языка спецификации RSL в язык программирования PROTEL, в рамках проекта по тестированию на основе формальных спецификаций ядра операционной системы, выполненного для компании Nortel, Канада.
• Транслятора спецификационного расширения языка Java в сам язык программирования Java, в рамках проекта по созданию инструментов автоматизированной разработки тестов для программ на платформе Java.
• Транслятора спецификационного расширения языка С# в сам язык программирования С# и модели данных, создаваемой с помощью графического интерфейса пользователя, в рамках проекта по созданию инструментов автоматизированной разработки тестов для программ на платформе .NET.
• Генератора тестов на основе моделей в рамках проекта ОТК по созданию методов и инструментов для тестирования оптимизирующих компиляторов.
• Открытого анализатора языка Java в рамках проекта по дальнейшему развитию инструментов автоматизированной разработки тестов для программ на платформе Java.
• Транслятора самого языка TreeDL в языки программирования Java и С#.
Разработанный язык описания структуры данных может использоваться при решении различных задач, в которых используются графовые структуры данных, в частности, при разработке трансляторов языков программирования, при описании структуры и обработки объектных моделей документов, разработке интерфейса пользователя по схеме Model-View-Controller, анализе и обработке моделей и сложных структур данных предметной области в прикладных задачах и т.п.
Апробация работы и публикации
По теме диссертации опубликовано 6 работ, представляющих основные научные результаты диссертации.
Основные положения работы обсуждались на
• семинаре ВМиК МГУ им. М.В.Ломоносова в 1998 году;
• конференции «Технологии Microsoft в научных исследованиях и высшем образовании» в июне 2003 года;
• семинаре ИСП РАН в 2005-2006 годах;
• семинаре ИПМ им. М.В.Келдыша РАН в октябре 2006 года.
Структура и объем диссертации
Диссертация состоит из введения, четырех основных глав, заключения, четырех приложений и списка литературы. Общий объем диссертации составляет 125 страниц. Список литературы содержит 97 наименований.
Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК
Модели и реализация транслирующих компонентов системы функционального программирования2009 год, кандидат физико-математических наук Стасенко, Александр Павлович
Средства разработки и анализа алгоритмов решения задач структурного синтеза на графах2006 год, кандидат технических наук Бакулина, Мария Алексеевна
Графическая модель для спецификации и синтеза интерфейса пользователя автоматизированных информационных систем2001 год, кандидат технических наук Янкелевич, Андрей Александрович
Автоматизация проектирования, реализации и сопровождения пользовательского интерфейса на основе онтологического подхода2007 год, доктор технических наук Грибова, Валерия Викторовна
Инструментальные средства символьной обработки данных в АСУ1984 год, кандидат технических наук Петрова, Тамара Васильевна
Заключение диссертации по теме «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», Демаков, Алексей Васильевич
4.7 Основные результаты главы
В этой главе описан опыт использования различных версий языка описания графовых структур данных TreeDL.
1. При реализации трансляторов языка спецификации RSL и спецификационных расширений языков Java и С# язык TreeDL использовался для описания структуры абстрактного синтаксиса входного языка трансляторов.
2. При реализации модуля интеграции спецификационного расширения языка С# в среду разработки Microsoft® Visual Studio .NET 2003 язык TreeDL использовался для описания модели данных, создаваемой с помощью графического интерфейса.
3. В проекте по разработке генератора тестов на основе моделей язык TreeDL использовался в качестве языка описания моделей.
4. При разработке открытого анализатора языка Java язык TreeDL использовался для описания структуры абстрактного синтаксиса языка Java, которое определяет интерфейс, предоставляемый анализатором языка.
По результатам этой главы опубликованы работы [89,92,93,94,95,97].
Количественные оценки использования языка описания графовых структур в перечисленных проектах сведены в таблицу на рис. 52.
Проект Размер проекта, строк кода Размер описания на языке TreeDL, строк кода Размер кода, сгенерированного по описанию на языке TreeDL, строк кода Доля подсистемы, описанной на языке TreeDL, % Сокращение ручной работы, сгенерированные строки / рукописные строки
Транслятор языка RSL (4.1) 40000 1000 10000 25 10
Транслятор спецификационного расширения языка Java (4.2) 72000 1500 22000 30 15
Транслятор спецификационного расширения языка С# (4.3) 105000 3000 19000 18 6
Открытый анализатор языка Java (4.6) 30000 1200 14000 47 12
Транслятор языка TreeDL (3) 19880 600 3100 15 5 рис. 52. Количественные оценки использования языка TreeDL
Заключение
В диссертационной работе получены и выносятся на защиту следующие основные новые научные и практические результаты:
• Предложен новый метод описания графовых структур данных, применимый для решения таких задач как представление деревьев абстрактного синтаксиса программ в трансляторах языков программирования, описание структуры и обработки объектных моделей документов, обработка сложных структур данных предметной области в прикладных задачах и т.п. Метод основан на использовании языка TreeDL и его расширяемого транслятора, которые разработаны автором.
• Предложен новый специализированный язык TreeDL для описания графовых структур данных и определения операций над ними. Возможности этого языка превосходят возможности существующих аналогичных языков.
• Разработана инструментальная поддержка языка TreeDL, которая включает в себя расширяемый транслятор и модуль интеграции со средой разработки на платформе Eclipse.
Выносимые на защиту результаты опубликованы в работах [9,89,92,98,99].
В ходе работы над диссертацией были реализованы следующие программные модули:
• Библиотека компонентов АТР, облегчающая создание инструментов обработки специализированных языков.
• Инструмент treedl, который осуществляет анализ и обработку описания графовых структур и определений операций над ними, в том числе их трансляцию в используемый язык программирования.
• Модуль интеграции языка TreeDL с популярной средой разработки на платформе Eclipse.
Практическая ценность предложенного языка и инструментов доказана успешным применением в пяти промышленных проектах.
Разработанный метод описания структуры графов может использоваться при решении различных задач, в которых используются графовые структуры данных, в частности, при разработке трансляторов языков программирования, в задачах описания структуры и обработки объектных моделей документов, анализе и обработке моделей и сложных структур данных предметной области в прикладных задачах.
Благодарности
Эта работа возникла в рамках создания инструментальной поддержки технологии тестирования UniTESK, разрабатываемой в группе RedVerst Института Системного Программирования РАН. Автор выражает признательность своим коллегам, которые участвовали в апробации языка TreeDL, за энтузиазм, терпение и массу важных замечаний. Автор особо благодарен
• А.С.Косачеву, помог более широко взглянуть на проделанную работу;
• А.А.Монахову за отличные идеи по развитию языка;
• С.А.Зеленовой и С.В.Зеленову за расширение области применения языка;
• М.В.Архиповой за прототип, послуживший основой для реализации модуля интеграции языка TreeDL со средой разработки на платформе Eclipse.
Список литературы диссертационного исследования кандидат физико-математических наук Демаков, Алексей Васильевич, 2006 год
1. Д.Кнут, Исскуство программирования, том 1, Основные алгоритмы, Вильяме, 2000.
2. А.Ахо, Дж.Хопкрофт, Дж.Ульман, Структуры данных и алгоритмы, М.:Вильямс, 2001.
3. В.Н.Касьянов, В.А.Евстигнеев, Графы в программировании: обработка, визуализация и применение, СПб.: БХВ-Петербург, 2003.
4. В.А.Емеличев, О.И.Мельников, В.И.Сарванов, Р.И.Тышкевич, Лекции по теории графов, М.: Наука, 1990.
5. Р.Дистель, Теория графов, Новосибирск, Изд-во ИМ СО РАН, 2002.
6. M.A. Посыпкин, Применение формальных методов для тестирования компиляторов, Диссертация на соискание ученой степени к.ф.м.н., М., 2004.
7. М.В. Архипова, Генерация тестов для семантических анализаторов. Препринт ИСП РАН, 2005.
8. A.B. Демаков, С.В.Зеленов, С.А. Зеленова, Генерация тестовых данных сложной структуры с учетом контекстных ограничений, Труды ИСП РАН, т. 9, 2006.
9. O.Kenneth Slonneger, Barry L. Kurtz, Formal Syntax and Semantics of
10. Programming Languages: A Laboratory Based Approach, Addison-Wesley, 1995.
11. Visual Language Research Bibliography,http://web.engr.oreqonstate.edu/~burnett/vpl.html
12. A.Axo, Р.Сети, Дж.Ульман, Компиляторы: принципы, технологии и инструменты. М.: Издательский дом "Вильяме", 2001.
13. В. А. Серебряков, М. П. Галочкин, Основы конструирования компиляторов, Едиториал УРСС, 2001.http://www.citforum.ru/programming/theory/serebryakov/
14. F. Pfenning, С. Elliot, Higher-order abstract syntax, Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation, 1988. http: //www.cs.cmu.edu/~fp/papers/pldi88 .pdf
15. W3C Extensible Markup Language (XML), http://www.w3.org/XML
16. W3C XML Schema, http://www.w3.org/XML/Schema
17. RELAXNG, http://relaxng.org
18. Eddie Robertsson, Combining RELAX NG and Schematron,http://www.xml.com/pub/a/2004/02/11/relaxtron.html
19. UML™ Resource Page, http: //www.umi.orq
20. Буч Г., Объектно-ориентированный анализ и проектирование с примерами приложений на С++, Бином, 2001.
21. Мейер Б., Объектно-ориентированное конструирование программных систем, Интуит.ру, 2005.
22. Грэхем И., Объектно-ориентированные методы. Принципы и практика, 3-е издание, Вильяме, 2004.
23. James Gosling, Bill Joy, Guy Steele, Gilad Bracha, The Java™Language Specification (ThirdEdition), Addison-Wesley Professional, 2005.
24. Standard ECMA-334 C# Language Specification Third edition (June 2005) http://www.ecma-international.org/publications/standards/Ecma-334.htm
25. Джон Влиссидес, Ральф Джонсон, Ричард Хелм, Эрих Гамма, Приемы объектно-ориентированного проектирования. Паттерны проектирования. Питер, 2003.
26. ANTLR: ANother Tool for Language Recognition, http://www.antlr.org31 .Terence Parr, Translators should use tree grammars, 2004.http://www.antlr.org/article/11005698Q9276/use.tree.grammars.tml
27. D.H.H. Ingalls. A simple technique for handling multiple polymorphism. In Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages and Applications (OOPSLA '86), 1986.http://portal.acm.org/citation.cfm?id=28732
28. Joost Visser, Visitor Combination and Traversal Control, OOPSLA'Ol, Tampa Florida USA, 2001. http: //portal. acm. org/citation.cfm?id=504 302
29. Richard P. Gabriel and Linda DeMichiel, The Common Lisp Object System: An Overview, ECOOP'87, June 1987.
30. C.Chambers, Object-oriented multi-methods in Cecil. ECOOP '92, Utrecht, The Netherlands, 1992.ftp://ftp.cs.Washington.edu/homes/chambers/cecil-oo-mm.ps.Z
31. The MultiJava Project, http: //multij ava. sourceforqe. net
32. The Nice programming language, http: //nice, sourceforge.net
33. Etienne M.Gagnon, Laurie J.Hendren, SableCC, an Object-Oriented Compiler Framework, McGill University, Quebec, Canada, 1998. http: //sablecc.org
34. JavaCC, https: / / j avacc.dev.j ava.net
35. Bindmark, https://bindmark.dev.java.net
36. Hibernate, http://www.hibernate.org
37. J.Grosch, Ast a generator for abstract syntax trees. Report 15, GMD, Karlsrue,1990. http://www.cocolab.com/en/cocktail.html#Ast
38. GnAST, http://czt.sourceforge.net/documentation.html#gnast
39. R.Weatherley, Treecc: An Aspect-Oriented Approach to Writing Compilers, Free Software Magazine, Issue 2,2001.http://www.southern-storm.com.au/treecc.html
40. C. van Reeuwijk, Tm: a Code Generator for Recursive Data Structures. Software Practice and Experience 22(10), 1992.http://www.es.vu.nl/~reeuwij k/software/Tm/spe92.ps.gz-129
41. C. van Reeuwijk, Rapid and Robust Compiler Construction Using Template-Based Metacompilation, In Proceedings of the 12th International Conference on Compiler Construction, 2003.http://www.pds.ewi.tudelft.nl/pubs/papers/cc2003.pdf
42. GNU M4 macro processor, http://www.qnu.orq/software/m4/
43. W3CXSLTransformations (XSLT), http://www.w3.orq/TR/xsit
44. The extensible Java pre-processor EPP,http:I/staff.aist.qo.jp/y-ichisugi/epp/55.0MG IDL Syntax and Semanticshttp://www.omg.org/cgi-bin/doc?formal/02-06-39
45. John Levine, Tony Mason, Doug Brown, lex &yacc, Second Edition, O'Reilly, 1992.
46. Gilad Bracha, Pluggable Type Systems, OOPSLA'04 Workshop on Revival of Dynamic Languages, 2004. http://bracha.orq
47. Manuel Fähndrich K. Rustan M. Leino, Declaring and Checking Non-null Types in an Object-Oriented Language, OOPSLA'03, Anaheim, California, USA, 2003.http://research.microsoft.com/~leino/papers/krmll09.pdf
48. Adrian Birka, Michael D. Ernst, A Practical Type System and Language for Reference Immutability, OOPSLA'04, Vancouver, British Columbia, Canada, 2004.http://www.set.ethz.ch/teachinq/ws2004/semspecver/papers/ernst-ref-immutability-oopsla2004.pdf
49. Matthew S. Tschantz, Michael D. Ernst, Javari: Adding Reference Immutability to Java, OOPSLA'05, San Diego, California, USA, 2005.http://pag.csail.mit.edu/~mernst/pubs/ref-immutability-oopsla2005.pdf
50. John Boyland, Why we should not add readonly to Java (yet), 2005. http://www.cs.ru.nl/ftfjp/2005/Boyland.pdf
51. The TXLProgramming Language, http://www.txl.ca
52. J.Grosch, Puma-A Generator for the Transformation of Attributed Trees, technical report 26, GMD, Karlsruhe, 1991.http://www.cocolab. com/en/cocktail.html#Puma
53. Terence Parr, Enforcing Strict Model-View Separation in Template Engines, WWW2004, New-York, NY, USA, 2004. http: //www. stringtemplate. org
54. Warwick B. Mugridge, John Hamer, John G. Hosking, Multi-Methods in a Statically-Typed Programming Language, OOPSLA'91, New York, NY, 1991. http://portal.acm.org/citation.cfm?id=679202
55. Craig Chambers and Gerry T. Leavens. Typechecking and Modules for Multi-Methods, OOPSLA'94,1994.ftp://ftp.cs.Washington.edu/homes/chambers/mmtc.ps.Z
56. Todd Millstein, Craig Chambers, Modular Statically Typed Multimethods, ECOOP'99, Lisbon, Portugal, 1999.http://www.ifs.uni-linz.ac.at/~ecoop/cd/papers/1628/1628027 9.pdf
57. Gerald Baumgartner, Martin Jansche, Konstantin Laufer, Half & Half: Multiple Dispatch and Retroactive Abstraction for Java, 2002.
58. Erik Ernst. Family polymorphism. In Jorgen Lindskov Knudsen, editor, ECOOP 2001 Object-Oriented Programming, LNCS 2072, pages 303-326, Heidelberg,
59. Germany, 2001. Springer-Verlag.http://portal.acm.org/citation.cfm?id=680013
60. Kim B. Bruce. Some challenging typing issues in object-oriented languages. In Electronic notes in Theoretical Computer Science, volume 82(8), 2003.http://citeseer.ist.psu.edu/bruce03some.html
61. P. Jolly, S. Drossopoulou, C. Anderson, and K. Ostermann. Simple Dependent
62. Types: Concord (FTfJP accepted version). April 2004. URLhttp://myitcv.org.uk/papers/concord04.html.http://citeseer.ist.psu.edu/article/jolly04simple.html
63. Nathaniel Nystrom, Stephen Chong, and Andrew C. Myers. Scalable extensibility via nested inheritance. OOPSLA'04, Oct. 24-28, Vancouver,British Columbia,Canada, 2004.http://citeseer.ist.psu.edu/nystrom04scalable.html
64. М.Фаулер, Рефакторинг: улучшение существующего кода, СПб: Символ-плюс, 2005.
65. The Program Transformation Wiki,http://www.program-transformation.org
66. К.Чарнецки, У.Айзенекер, Порождающее программирование: методы, инструменты, применение, СПб: Питер, 2005.
67. Jack Herrington, Code Generation in Action, Manning Publications, 2003.
68. J.Bloch. Effective Java Programming. Addison-Wesley, Reading, Massachussetts, 2001
69. Tim Lindholm, Frank Yellin, The Java™ Virtual Machine Specification (2nd Edition), Addison-Wesley Professional, 1999.
70. JavaBeans Technology, http: // java. sun. com/products/j avabeans/
71. B.Stroustrup, The С++ Programming Language, Special Edition, Addison-Wesley, 2000.
72. Eclipseplatform, http://eclipse.org
73. GNU Make, http://www.gnu.org/software/make/.
74. Richard M. Stallman, Roland McGrath and Paul D. Smith, GNU Make: A Program for Directing Recompilation, Free Software Foundation, 2004.
75. The Apache Ant Project, http: //ant. apache. org.
76. Jesse E. Tilly, Eric M. Burke, Ant: The Definitive Guide, Second Edition, O'Reilly, 2005.
77. Apache Maven Project, http//maven. apache .org.
78. Vincent Massol, Jason van Zyl, Better Builds with Maven, Mergere, 2006.
79. А.Демаков, Исполнимое подмножество языка спецификации и его трансляция. Приложения системного программирования: Вопросы кибернетики, Научный совет по комплексной проблеме «Кибернетика» РАН, Москва, 1998, вып.4,17-28.
80. The RAISE Language Group. The RAISE Specification Language. The BCS Practioner Series. Prentice Hall, 1992.
81. D.G.Foxall, M.J.Joliat, R.F.Kamel, J.J.Miceli, PROTEL: A High Level Language for Telephony, Proc. 3rd Intl. Computer Software & Applications Conf. (November 1979), pp. 193-197.
82. B. Bourdonov, A. V. Demakov, A. A. Jarov, A. S. Kossatchev, V. V. Kuliamin, A. K. Petrenko, and S. V. Zelenov. Java Specification Extension for Automated Test Development. Proceedings of PSI'01. LNCS 2244, pp. 301-307. SpringerVerlag, 2001.
83. А.Демаков, Применение технологии UniTesK для тестирования .NET компонентов, доклад на конференции Технологии Microsoft в научных исследованиях и высшем образовании, Москва, 15-17 июня 2003.
84. С.В. Зеленов, С.А. Зеленова, А.С. Косачев, А.К. Петренко. Генерация тестов для компиляторов и других текстовых процессоров, Программирование, Москва, 2003.
85. V. Kuliamin, А. К. Petrenko. Applying Model Based Testing in Different Contexts. Proc. of Seminar on Perspectives on Model Based Testing, Dagstuhl, Germany, September 2004.
86. TreeDL home page http://treedl.sf.net
87. Е.Корныхин, Генерация структурных тестов с использованием логического программирования, дипломная работа, ВМиК МГУ, кафедра СП, 2006.
88. А.Демаков, Язык описания абстрактного синтаксиса TreeDL и его использование, Препринт ИСП РАН, №17,2006.
89. Демаков А.В. TreeDL: язык описания графовых структур данных и операций над ними. Вычислительные методы и программирование, Том 7,2006.
Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.