Генерация наборов тестов для распараллеливающих и оптимизирующих преобразований в компиляторе тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат технических наук Алымова, Елена Владимировна

  • Алымова, Елена Владимировна
  • кандидат технических науккандидат технических наук
  • 2012, Ростов-на-Дону
  • Специальность ВАК РФ05.13.11
  • Количество страниц 130
Алымова, Елена Владимировна. Генерация наборов тестов для распараллеливающих и оптимизирующих преобразований в компиляторе: дис. кандидат технических наук: 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей. Ростов-на-Дону. 2012. 130 с.

Оглавление диссертации кандидат технических наук Алымова, Елена Владимировна

ВВЕДЕНИЕ.

ГЛАВА 1. МЕТОДИКА РАЗРАБОТКИ ТЕСТОВЫХ НАБОРОВ ДЛЯ ОПТИМИЗИРУЮЩИХ И РАСПАРАЛЛЕЛИВАЮЩИХ ПРЕОБРАЗОВАНИЙ ПРОГРАММ В КОМПИЛЯТОРЕ.

1.1. Необходимые сведения из теории преобразования программ.

1.2. Условия применимости оптимизирующих и распараллеливающих преобразований программ.

1.3. Формализация условий применимости преобразования с целью построения конфигурации для генератора тестов.

1.4. Язык описания конфигурации.

1.5. Критерий полноты тестового набора.

1.6. Запись конфигурационного файла.

1.7. Класс программ, задаваемый конфигурацией.

1.8. Организация тестирования преобразований в оптимизирующем компиляторе.

1.9. Выводы к первой главе.

ГЛАВА 2. ГЕНЕРАТОР ТЕСТОВ ПРЕОБРАЗОВАНИЙ В КОМПИЛЯТОРЕ.

2.1. Входная КС-грамматика и принцип генерации цепочек.

2.2. Древовидное представление КС-грамматики.

2.3. Графовое представление грамматики и автоматический вывод цепочек

2.4. Хранение данных об информационных зависимостях.

2.5. Моделирование информационных зависимостей в генераторе тестов

2.6. Режимы генерации тестовых наборов.

2.6.1. Режим нормального распределения.

2.6.2. Режим универсального распределения.

2.6.3. Режим перебора.

2.7. Выводы ко второй главе.

ГЛАВА 3. ПРИМЕНЕНИЕ ГЕНЕРАТОРА ТЕСТОВ.

3.1. Набор тестов для синтаксического анализатора конвертера С2ЬГОЬ.

3.2. Набор тестов для преобразования «Разрезание циклов».

3.3. Выводы к третьей главе.

ГЛАВА 4. СМЕЖНЫЕ ЗАДАЧИ.

4.1. Автоматизация тестирования графического интерфейса.

4.1.1. Дерево состояний графического интерфейса.

4.1.2. Тестирование графического интерфейса НРС-1ЧА818.

4.1.3. Генерация тестов для мастера Экспертной системы.

4.2. Автоматизация тестирования \уеЬ-приложений.

4.2.1. \¥еЬ-интерфейс автоматического распараллеливателя.

4.2.2. Тестовые сценарии для \¥еЬ-интерфейса автоматического распараллеливателя.

4.3. Система поддержки пользователя при редактировании скриптов на языке ЕаБуИош.

4.3.1. Особенности предметно-ориентированных языков программирования.

4.3.2. Основные функции системы поддержки пользователя.

4.4. Выводы к четвертой главе.

Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Введение диссертации (часть автореферата) на тему «Генерация наборов тестов для распараллеливающих и оптимизирующих преобразований в компиляторе»

Актуальность темы. В настоящее время наблюдается стремительное развитие параллельных вычислительных архитектур. Мощность параллельных компьютеров требуется для решения задач криптографии, радиолокации в оборонной промышленности, а так же при математическом моделировании сложных систем. В 2011 году введен альтернативный рейтингу Тор500 [105] мощнейших компьютеров рейтинг Graph500 [39] эффективности вычислительных комплексов, которые обрабатывают большие массивы разреженных данных, представленных в виде графа или базы данных.

Параллельные вычисления становятся все доступнее для персональных компьютеров, в основном, в форме многоядерных процессоров [85]. В настоящее время персональные компьютеры могут быть оборудованы четырехъядер-ными процессорами Intel Core 2 Quad [37], AMD Phenom II [57]. Ведущие производители процессоров продолжают увеличивать количество ядер. В августе 2007 года на конференции Hot Chips компания Tilera Corporation представила многоядерный процессор для встраиваемых систем TILE64, архитектура iMesh которого позволяет использовать одновременно в одном процессоре сотни и тысячи ядер [104]. В октябре 2009 года компания NVIDIA представила суперкомпьютерную архитектуру Fermi, обеспечивающую более широкое применение гетерогенным вычислениям на GPU и CPU. Графические процессоры NVIDIA Tesla на базе архитектуры Fermi разработаны для высокопроизводительных вычислений при решении задач обработки сейсмических данных, моделирования погоды и климата, вычислений в области финансов [73]. В марте 2010 года компания AMD объявила о выходе новой серверной платформы AMD Opteron 6000 Series на базе 8-ядерных и 12-ядерных х86-совместимых процессоров AMD Opteron 6100 [55]. В ноябре 2011 года компания выпустила 16-ядерные процессоры AMD Opteron 6200 [56].

Повышение производительности параллельных вычислительных систем не может происходить только за счет усложнения архитектуры, необходима так же оптимизация программного обеспечения [22].

Эффективное исполнение программ без параллелизма на современном аппаратном обеспечении становится все более затруднительным [93]. Наличие готовых отлаженных библиотек последовательных программ, а так же высокая стоимость ручной оптимизации программного кода за счет повышенных требований к квалификации специалистов повышают интерес к разработке инструментов автоматизации распараллеливания программ. Одним из инструментов автоматизации распараллеливания являются оптимизирующие и распараллеливающие компиляторы [54]. Среди зарубежных оптимизирующих и распараллеливающих компиляторов можно выделить GNU Compiler Collection (GCC) [70], Microsoft Visual С++ [91], ROSE [103], Oracle Solaris Studio (OSS) [75], Intel С++ Compiler [77] и Glasgow Haskell Compiler (GHC) [69]. Разрабатываются системы автоматического распараллеливания: SUIF Compiler [71], PLUTO [61], Par4All [94]. Примерами отечественных разработок в области оптимизации и распараллеливания программ являются система ПРОГРЕСС [81, 82], DVM-система [7, 26], системы ОРС [35] и ДВОР [48].

Библиотека оптимизирующих и распараллеливающих преобразований является основой блока оптимизации в компиляторе. Неправильное применение преобразования приводит к нарушению эквивалентности результирующей и исходной программ, возможно нарушение синтаксической и семантической корректности. Кроме этого, преобразование может ухудшить свойства исходной программы. Своевременное обнаружение ошибок преобразования подразумевает проведение тестирования с помощью наборов тестов, наиболее полно проверяющих качество реализации преобразования. Разработка тестов вручную является достаточно трудоемким процессом, при этом есть вероятность пропуска некоторых тестовых случаев. Таким образом, для того чтобы использовать преимущества оптимизирующих и распараллеливающих компиляторов, требуется разработка средств автоматизации тестирования преобразований, которые позволяют генерировать наборы тестов, удовлетворяющих критерию полноты, что и определяет актуальность темы диссертации.

На данный момент исследователями в области автоматизации тестирования предложены методы генерации тестов как для компилятора в целом, так и для отдельных фаз компиляции.

Позитивным тестом для синтаксического анализатора является цепочка, принадлежащая целевому языку программирования. Формальное описание синтаксиса целевого языка может быть представлено в форме BNF [67]. Формальное описание позволяет автоматизировать процесс построения тестов, поэтому часто генерация тестов основывается на анализе формальных грамматик целевого языка программирования.

В работе П. Пардома [95] описан алгоритм вывода предложений языка по контекстно-свободным грамматикам. Набор предложений считается полным, если для каждого правила данной грамматики во множестве тестов присутствует предложение языка, в выводе которого используется это правило. Алгоритм позволяет генерировать минимальный набор коротких предложений, принадлежащих целевому языку. Данная работа стала основополагающей в дальнейших исследованиях [59], [100], [74]. Работа [15] посвящена способу генерации тестов на основе формального описания поведения тестируемого синтаксического анализатора. Работа [83] является продолжением предыдущего исследования. В ней рассматривается способ генерации тестов на основе абстрактной модели поведения тестируемой программы, критерии тестового покрытия формулируются в терминах построенной модели.

Тесты для семантического анализатора компилятора должны быть не только синтаксически корректны, но и соблюдать правила семантики целевого языка программирования. В работе [63] описана система генерации тестов, использующая алгоритм Пардома для генерации синтаксически корректных программ. Проверка контекстных условий и преобразование синтаксически корректных программ в семантически корректные происходит за счет вставки дополнительного кода в грамматику входного языка. Методы генерации тестов на основе атрибутных грамматик рассматриваются в работах [86] и [72]. В этих работах атрибутные грамматики используются в качестве описания спецификации семантики целевого языка. В работе [5] предлагается метод генерации позитивных и негативных тестов для семантических анализаторов, основанный на конструктивном описании статической семантики. Это описание заменяет и дополняет традиционные контекстные условия. Для конструктивного описания правил статической семантики используется специально разработанный язык SRL (Semantic Relation Language).

В работе [19] представлен подход к динамической верификации компиляторов, основанный на декомпозиции общей задачи компилятора. Авторы предложили разбить общую задачу компилятора на подзадачи: синтаксический анализ, семантический анализ, оптимизация и генерация кода, а также предложено верифицировать библиотеки поддержки времени исполнения. Метод верификации состоит из нескольких этапов. На первом этапе происходит извлечение требований из нормативных документов, на втором этапе извлеченные требования формализуются и используются как формальная модель на следующих этапах. На основе построенной формальной модели автоматически строятся тесты. В результате исполнения тестов делается вывод о том, насколько поведение компилятора соответствует формальной модели. Работа [43] посвящена вопросу генерации исполняемых тестов для компилятора. Для генерации тестов выбран подход, основанный на использовании параметрической контекстно-свободной грамматики. Эти грамматики пишутся специально для выбранного языка программирования. Метод позволяет генерировать синтаксически и семантически корректные программы, которые могут быть скомпилированы в исполняемую программу.

В работе [36] изложены принципы автоматной парадигмы программирования, и описан подход к динамической проверке корректности автоматных программ. Подход основывается на возможности инструментальных средств, поддерживающих автоматное программирование, вести протокол выполнения программы в терминах автоматов. В протоколе содержится необходимая для проверки программы информация: последовательность состояний, в которых пребывал автомат, обработанные события, значения входных и выходных переменных. В качестве примера инструментального средства, которое позволяет осуществлять пошаговую отладку программы в терминах автоматов, можно привести расширение UniMod [38] интегрированной среды разработки Eclipse [20].

В данной диссертационной работе, в отличие от описанных выше подходов к тестированию, предлагается метод описания наборов тестов в терминах, близких разработчикам программного обеспечения. Формат конфигурации набора тестов разработан таким образом, чтобы задавать структуру программы и определять информационные зависимости между переменными. Конфигурация определяет подмножество текстов программ из множества текстов, задаваемых исходной КС-грамматикой. Это подмножество образует класс программ с заданной конфигурацией структурой и отличающихся возвращенными внутренними процедурами генератора фрагментами текстов, а также своими путями вывода из ограниченной конфигурацией КС-грамматики. Критерий полноты набора тестов формулируется на основе последовательностей операторов в программе. Тесты могут генерироваться на популярных промышленных языках программирования (в данной работе используется язык Си).

Предметом исследования являются оптимизирующие и распараллеливающие преобразования программ в компиляторе.

Целью работы является разработка метода генерации наборов тестов для оптимизирующих и распараллеливающих преобразований программ.

Задачи исследования. Достижение поставленной цели подразумевает решение следующих задач:

1. Формулирование требований к наборам тестов на основе данных о допустимых информационных зависимостях в программе (разделы 1.1 и 1.2);

2. Разработка языка описания условий применимости преобразования, связанных с информационными зависимостями в программе (раздел 1.4);

3. Формулирование критерия полноты набора тестов для преобразования (раздел 1.5);

4. Разработка алгоритма генерации синтаксически и семантически корректных программ на языке, заданном контекстно-свободной грамматикой (разделы 2.1, 2.2 и 2.3);

5. Разработка алгоритма моделирования информационных зависимостей в генерируемой программе (разделы 2.4 и 2.5);

6. Проектирование, программная реализация и отладка генератора тестовых программ на основе контекстно-свободной грамматики и конфигурационных файлов (разделы 2.6.1, 2.6.2 и 2.6.3);

7. Внедрение разработанной в диссертации технологии генерации наборов тестов посредством тестирования преобразований распараллеливающей системы (раздел 3.2);

8. Внедрение предложенной в диссертации технологии тестирования в разработанный интерфейс автоматического распараллеливателя программ, реализованного по технологии «клиент-сервер» (разделы 4.2.1 и 4.2.2).

Методы исследования включают в себя методы теории формальных языков и грамматик, теории графов, теории преобразования программ, элементы теории множеств и комбинаторного анализа. При реализации программного обеспечения использовались принципы объектно-ориентированного программирования.

Научную новизну результатов работы определяет: • Новый алгоритм генерации тестов для оптимизирующих и распараллеливающих преобразований, отличительной особенностью которого является использование конфигурационного файла для описания условий применимости тестируемого преобразования.

• Новый метод формулирования критериев полноты наборов тестовых программ для оптимизирующих и распараллеливающих преобразований в терминах целевого языка программирования.

Практическая значимость работы состоит в том, что полученные результаты могут быть использованы для тестирования оптимизирующих и распараллеливающих преобразований в компиляторе. При этом практическую ценность составляют:

• Программно реализованный генератор тестов, который на вход получает грамматику целевого языка программирования и конфигурационный файл, а на выходе генерирует наборы тестов, удовлетворяющие критерию полноты.

• Сгенерированные наборы тестов для преобразования «Разрезание циклов» и синтаксического анализатора конвертера С2НОЬ, удовлетворяющие критерию полноты.

• Методика построения наборов тестов для графического интерфейса, удовлетворяющих критерию полноты.

На защиту выносятся:

1. Метод формализации условий применимости тестируемых оптимизирующих и распараллеливающих преобразований программ в компиляторе и метод построения критериев полноты наборов тестовых программ.

2. Метод и алгоритмы генерации тестовых программ для оптимизирующих и распараллеливающих преобразований по конфигурационному файлу, содержащему условия применимости тестируемого преобразования.

Достоверность научных результатов и выводов подтверждается математической строгостью определений и утверждений, а также программно реализованными моделями и вычислительными экспериментами.

Внедрение результатов работы.

Результаты работы используются в проекте «Диалоговый высокоуровневый оптимизирующий распараллеливатель программ и его приложения» [17] в рамках ФЦП «Научные и научно-педагогические кадры инновационной России» на 2009-2013 годы, государственный контракт № 02.740.11.0208 от 7 июля 2009 г. В процессе работы получено Свидетельство о государственной регистрации программ для ЭВМ: «Диалоговый высокоуровневый оптимизирующий распараллеливатель программ» (свидетельство №2011617205). Часть данной работы используется в проекте «Создание биоинформационной технологии поиска взаимосвязанных сценариев организации в геномах животных и человека некодирующей ДНК и кодирующей белок ДНК» в рамках ФЦП «Научные и научно-педагогические кадры инновационной России», государственный контракт № 14.740.11.0006 от 1 сентября 2010 г. Работа поддержана проектом «Создание высокотехнологичного производства комплексных решений в области предметно-ориентированных облачных вычислений для нужд науки, промышленности, бизнеса и социальной сферы» (шифр 2010-218-01-209) в рамках реализации постановления №218 Правительства РФ (по заказу НИУ ИТМО). Результаты работы использованы при выполнении ОКР «Разработка системной поддержки высокопроизводительного программного комплекса для квантово-механических расчетов и моделирования наноразмерных атомно-молекулярных систем и комплексов» по заказу НИУ ИТМО в рамках темы «Разработка высокопроизводительного программного комплекса для квантово-механических расчетов и моделирования наноразмерных атомно-молекулярных систем и комплексов», государственный контракт № 133с/380066/4005 от 19 ноября 2008 г. Полученные в данной работе результаты могут также использоваться в учебном процессе для изучения свойств формальных языков, описываемых контекстно-свободными грамматиками.

Во время работы над диссертацией при изучении теории тестирования программ рассматривались задачи, близкие к теме диссертации: участие в разработке шеЬ-интерфейса распараллеливающего конвертора (на оптимизирующие преобразования которого ориентирован разработанный в диссертации генератор тестов) и тестирование программных интерфейсов. При этом получены практически значимые результаты: автоматический распараллеливатель программ, реализованный по технологии «клиент-сервер» (созданный в составе группы программистов);

• выполнено тестирование сложного интерфейса высокопроизводительного программного комплекса НРС-МАБК;

• разработана система поддержки пользователя при редактировании скриптов на языке ЕазуР1о\у для среды облачных вычислений СЬАУЖЕ.

Часть исследований диссертации поддерживалась грантами:

• ОКР «Разработка системной поддержки высокопроизводительного программного комплекса для квантово-механических расчетов и моделирования наноразмерных атомно-молекулярных систем и комплексов» в рамках темы: ГК № 133с/380066/4005 «19» ноября 2008 г.

• ФЦП «Научные и научно-педагогические кадры инновационной России» на 2009-2013 годы по теме: «Диалоговый высокоуровневый оптимизирующий распараллеливатель программ и его приложения» ГК № 02.740.11.0208 от 7 июля 2009 г.

• ФЦП «Научные и научно-педагогические кадры инновационной России» на 2009-2013 годы по теме «Создание биоинформационной технологии поиска взаимосвязанных сценариев организации в геномах животных и человека некодирующей ДНК и кодирующей белок ДНК» ГК № 14.740.11.0006 от 1 сентября 2010.

• ФЦП «Кадры инновационной России на 2009-2013 гг.» по программе «Мобильность молодых учёных» 2009 г.

• Российский государственный проект «Создание высокотехнологичного производства комплексных решений в области предметно-ориентированных облачных вычислений для нужд науки, промышленности, бизнеса и социальной сферы», Шифр № 2010-218-01-209.

Апробация работы. Основные результаты диссертации докладывались и обсуждались на научно-технических конференциях. Всероссийские конференции:

• Всероссийская суперкомпьютерная конференция «Научный сервис в сети Интернет: масштабируемость, параллельность, эффективность», Новороссийск, 21-26 сентября 2009 г;

• IV сессия научной школы-практикума молодых ученых и специалистов «Технологии высокопроизводительных вычислений и компьютерного моделирования» в рамках VIII Всероссийской межвузовской конференции молодых ученых, СПбГУ ИТМО, Санкт-Петербург, 12-15 апреля 2011 г.

Международные конференции:

• THE 7th IEEE EAST-WEST DESIGN & TEST SYMPOSIUM (EWDTS 2009), Moscow, Russia, September 18-21, 2009;

• Международная суперкомпьютерная конференция «Научный сервис в сети Интернет: суперкомпьютерные центры и задачи», Новороссийск, 20-25 сентября 2010 г;

• V Международная конференция «Параллельные вычисления и задачи управления» (РАСО'2010), ИПУ РАН, Москва, 26-28 октября 2010 г.

В 2008 году сделан доклад по теме диссертации в ОАО «Научно-конструкторское бюро вычислительных систем» города Таганрога. Кроме того, результаты работы многократно докладывались на семинаре «Автоматическое распараллеливание программ» мехмата Южного федерального университета.

Публикации. По результатам выполненных исследований опубликовано 9 печатных работ. Из них 2 статьи в журналах перечня ВАК: «Информационные технологии» [2] и «Известия высших учебных заведений. СевероКавказский регион. Естественные науки» [3], 4 статьи в сборниках трудов конференций [48], [49], [101] и [102], 2 тезисов докладов [4], [49] и 1 свидетельство о государственной регистрации программы [51].

Личный вклад. Постановка задачи генерации тестов для оптимизирующих и распараллеливающих преобразований принадлежит научному руководителю. Все результаты диссертации, а так же программная реализация генератора тестов и разработка описания условий применимости преобразований с помощью конфигурационного файла получены автором лично.

Структура диссертации.

Диссертационная работа состоит из введения, четырех глав, заключения, списка литературы (110 наименований) и одного приложения. Содержит 129 страниц текста, включая 41 рисунок и 5 таблиц. Результаты диссертации иллюстрируются 23 примерами.

Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК

Заключение диссертации по теме «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», Алымова, Елена Владимировна

Основные результаты, полученные в ходе диссертационной работы:

• Разработан язык описания условий применимости преобразования программ в компиляторе;

• Предложен новый метод формулирования критериев полноты набора тестов для преобразования программ в компиляторе;

• Разработан алгоритм генерации синтаксически и семантически корректных программ на языке, заданном контекстно-свободной грамматикой;

• Разработан алгоритм моделирования информационных зависимостей в генерируемой программе;

• Программно реализован генератор тестовых программ на основе контекстно-свободной грамматики и конфигурационных файлов, содержащих описание условий применимости тестируемого преобразования программы в компиляторе;

• С помощью разработанного генератора получены набор тестов для преобразования «Разрезание циклов», реализованного в распараллеливающей системе, и получен набор тестов для конвертера С2НТ)Ь.

• Разработан \уеЬ-интерфейс автоматического распараллеливателя и построен полный набор тестовых сценариев для мастера, входящего в состав \veb-интерфейса автоматического распараллеливателя программ.

Таким образом, цель диссертационной работы автором достигнута, а ее результаты могут служить основой для дальнейших исследований в области автоматизации тестирования оптимизирующих и распараллеливающих преобразований в компиляторе.

ЗАКЛЮЧЕНИЕ

Список литературы диссертационного исследования кандидат технических наук Алымова, Елена Владимировна, 2012 год

1. Автоматический web-распараллеливатель программ. URL: http://ops.opsgroup.ru

2. Алымова Е. В. Критерий полноты тестовых наборов, ориентированных на проверку распараллеливающих преобразований программ. Информационные технологии. М.: «Новые технологии», 2011, №9, сс. 19 22.

3. Алымова Е.В. Автоматическая генерация тестов на основе конфигурационных файлов для оптимизирующих преобразований компилятора // Известия вузов. Северо-Кавказский регион. Естеств. науки. № 3, 2010.

4. Архипова М.В. Генерация тестов для семантических анализаторов, б.м. : Вычислительные методы и программирование, 2006.

5. Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции. Том 1. Синтаксический анализ. М.: Мир, 1978.

6. Белоусов А. И., Ткачев С. Б. Дискретная математика. Серия: Математика в техническом университете. М.: МГТУ им. Н. Э. Баумана, 2004.

7. Бухановский А. В., Васильев В. Н., Виноградов В. Н., Смирнов Д. Ю., Су-хоруков С. А., Яппаров Т. Г. CLAVIRE: перспективная технология облачных вычислений второго поколения. // Известия вузов. Приборостроение. №10, 2011.

8. Бухановский A.B., Ковальчук C.B., Марьин C.B. Интеллектуальные высокопроизводительные программные комплексы моделирования сложных систем: концепция, архитектура и примеры реализации. // Известия вузов. Приборостроение. т. 52, №10, 2009.

9. Векторизация программ. // Векторизация программ: теория, методы, реализация. / Сборник переводов статей М.: Мир, 1991. С. 246 267.

10. Воеводин В.В. Воеводин Вл.В. Параллельные вычисления, С-Петербург «БХВ-Петербург», 2002.

11. Дал У., Дейкстра Э., Хоор К. Структурное программирование. М.:МИР, 1975.

12. Демаков A.B., Зеленова С.А., Зеленов C.B. Тестирование парсеров текстов на формальных языках. Программные системы и инструменты (тематический сборник факультета ВМиК МГУ), 2001. стр. 150-156.

13. Деундяк В. М., Элементы теории формальных грамматик. Ростов-на-Дону, 1997.

14. Диалоговый высокоуровневый оптимизирующий распараллеливатель программ (ДВОР). URL: http://www.ops.rsu.ru.

15. Зандстра. М., PHP: объекты, шаблоны и методики программирования, 3-е издание = PHP Objects, Patterns and Practice, Third Edition. — M.: «Вильяме», 2010.

16. Зеленов C.B., Пакулин H.B. Верификация компиляторов систематический подход. Труды Института системного программирования РАН, 2007.

17. Интегрированная среда разработки Eclipse. URL: http://www.eclipse.org/

18. Калинов А .Я., Косачёв A.C., Посыпкин М.А., Соколов A.A. Автоматическая генерация тестов для графического пользовательского интерфейса по UMLдиаграммам действий. Труды института Системного Программирования РАН, 2005.

19. Касперский К. Техника оптимизации программ. Эффективное использование памяти. СПб.: БХВ-Петербург, 2003. - 456 с.

20. Касьянов В.Н. Оптимизирующие преобразования программ. М.: Наука, 1988.

21. Касьянов В.Н., Мирзуитова H.J1. Реструктурирующие преобразования: Алгоритмы распараллеливания циклов. В кн.: Программные средства и математические основы информатики.,- Новосибирск: ПСИ СО РАН, 2004.

22. Керниган Б., Ритчи Д. Язык программирования Си.\Пер. с англ., 3-е изд., испр. — СПб.: "Невский Диалект", 2001.

23. Клинов М.С., Крюков В.А. Автоматическое распараллеливание Фортран-программ. Отображение на кластер. Вестник Нижегородского университета им. Н.И. Лобачевского, 2009, № 2, с. 128-134.

24. Князьков К. В., Ларченко А. В. Предметно-ориентированные технологии разработки приложений в распределенных средах. // Известия вузов. Приборостроение. №10, 2011.

25. Котляров В.П., Основы тестирования программного обеспечения: Уч. Пособие / В.П. Котляров, Т.В. Коликова М.: Интернет-Университет Информационных Технологий; БИНОМ. Лаборатория знания, 2006.

26. Криспин Л., Грегори Д., Гибкое тестирование: практическое руководство для тестировщиков ПО и гибких команд = Agile Testing: A Practical Guide for Testers and Agile Teams. — M.: «Вильяме», 2010.

27. Можаев П. Средства автоматизированного тестирования // Открытые системы. №3, 2009.

28. Набор тестов для конвертера C2HDL. URL: http://ops.rsu.ru/tests/C2HDL-tests.zip.

29. Набор тестов для преобразования «Разрезание циклов». URL: http://ops.rsu.ru/tests/testsBv4LoopDistr tests.zip.

30. Нис 3. Я. Автоматизация проверок семантической корректности распараллеливающих преобразований. / Труды III международной конференции «Параллельные вычисления и задачи управления» (РАСО'2006).

31. Открытая распараллеливающая система (ОРС). URL: http://www.ops.rsu.ru.

32. Поликарпова H.H., Шалыто А. А. Автоматное программирование. — СПб.: Питер, 2009.

33. Процессоры Intel® Core™2 Quad. Обзор. URL: http://www.intel.com/cd/products/services/emea/rus/processors/core2quad/33391 7.htm.

34. Расширение UniMod для IDE Eclipse. URL: http://unimod.sourceforge.net/intro.html

35. Рейтинг Graph500. URL: http://www.graph500.org.

36. Серебряков B.A., Галочкин М.П., Гончар Д.Р., Фуругян М.Г. Теория и реализация языков программирования //М.: МЗ-Пресс, 2006 г., 2-е изд.

37. Силаков Д.В., Автоматизация тестирования web-приложений, основанных на скриптовых языках // Труды Института системного программирования РАН. Подход UniTESK: итоги и перспективы. Т. 14, Ч. 2, 2008.

38. Спельников Д. М., Гуськов А. А., Маслов В. Г., Бухановский А. В. Учебно-научный комплекс „Компьютерное моделирование в нанотехнологиях" на основе Грид-среды. // Известия вузов. Приборостроение. №10, 2011.

39. Стасенко А.П. Генерация исполняемых тестов для компилятора. Новосибирск : Конструирование и оптимизация параллельных программ, 2008.

40. Фаулер М. Предметно-ориентированные языки программирования. М.: Вильяме, 2011.

41. Холзнер С. XML. Энциклопедия, 2-е изд. СПб.: Питер, 2004.

42. Штейнберг Б.Я. Математические методы распараллеливания рекуррентных циклов для суперкомпьютеров с параллельной памятью. Ростов н/Д: Изд-во Рост, ун-та, 2004.

43. Штейнберг Б.Я. Распараллеливание программ для суперкомпьютеров с параллельной памятью и Открытая распараллеливающая система. Диссертация на соискание ученой степени доктора технических наук. РГУ, 2004.

44. Электронное обучающее средство «Тренажер параллельного программиста» (ТПП) 2007 г. URL: http://www.ops.rsu.ru.

45. Эндрюс Грегори Р. Основы многопоточного, параллельного и распределенного программирования. М: Вильяме, 2003.

46. Allen R., Kennedy К. Optimizing compilers for Mordern Architetures. Morgan Kaufmann Publisher, Academic Press, USA, 2002.

47. AMD Opteron™ 6100 Series Processors. URL: http://www.amd.com/us/products/server/processors/600Q-series-platform/6100/Pages/6100-series-processors.aspx#5.

48. AMD Opteron™ 6200 Series Processors. URL: http://www.amd.com/us/products/server/processors/600Q-series-platform/6200/Pages/6200-series-processors.aspx.

49. AMD Phenom™ II Key Architectural Features. URL: http://www.amd.com/us/products/desktop/processors/phenom-ii/Pages/phenom-ii-key-architectural-features.aspx.

50. Apache JMeter. URL: http://jmeter.apache.org/

51. Bazzichi F., Spadafora I. An automatic generator for compiler testing. IEEE Transactions on Software Engineering, стр. 343-353, 1982.

52. Bennett J. Autolt Documentation // Autolt Online Documentation. URL: http://www.autoitscript.com/autoit3/docs (дата обращения: 24.05.2011)

53. Bondhugula Uday, Hartono A., Ramanujan J., Sadayappan P. A Practical Automatic Polyhedral Parallelizer and Locality Optimizer. ACM SIGPLAN Programming Languages Design and Implementation (PLDI), Jun 2008.

54. Bray T., Paoli J., Sperberg-McQueen C. M., Maler E., Yergeau F. Extensible Markup Language (XML) 1.0 (Fifth Edition). W3C Recommendation. URL: http://www.w3.org/TR/2008/REC-xml-20081126/. 2008.

55. Celentano A., Reghizzi S., Delia Vigna P., Ghezzi C. Compiler testing using a sentence generator, б.м. : Software Practice and Experience, стр. 897-913, 1980.

56. CMMI for Development, v. 1.3, November 2010, p. 466.

57. CSE HTML Validator. URL: http://www.htmlvalidator.com/

58. Dustin, Rashka, Paul. "Automated Software Testing -Introduction, Management, and Performance". Addison-Wesley 1999, p. 43-44.

59. Garshol L.M. BNF and EBNF: What are they and how do they work? URL: http://www.garshol.priv.no/download/text/bnf.html

60. Geb. URL: http://www.gebish.org/

61. Glasgow Haskell Compiler (GHC). URL: www.haskell.org/ghc.

62. GNU Compiler Collection (GCC). URL: http://gcc.gnu.org.

63. Hall M. W., Anderson J. M., Amarasinghe S. P., Murphy B. R., Liao S. W., Bug-nion E., Lam M. S. Maximizing Multiprocessor Performance with the SUIF Compiler. IEEE Computer, Dec 1996.

64. Harm J., Lammel R. Two-dimensional Approximation Coverage // Informatica Journal. 24. 2000. № 3.

65. High Performance Computing Supercomputing with Tesla GPUs. URL: http://www.nvidia.com/obiect/teslacomputingsolutions.html.

66. Homer W., Schooler R. Independent testing of compiler phases using a test case generator. Software Practice and Experience, стр. 53-62, 1989.

67. How Oracle Solaris Studio Optimizes Application Performance. An Oracle Technical White Paper. Dec. 2011. 10 p.

68. HPC-NASIS, http://hpc-nasis.ifmo.ru/

69. Intel С++ Compiler. URL: http://software.intel.com/ru-ru/intel-compilers/.

70. ISO (1994). International Standard ISO/IEC 8402. Quality Management and Quality Assurance Vocabulary, International Organization for Standardization, Geneva.

71. Kanglin Li, Mengqi Wu. Effective GUI Test Automation: Developing an Automated GUI Testing Tool. Sybex Inc, 2004.

72. Kasyanov V.N., Evstigneev V.A. The PROGRESS program manipulation system // Parallel Computer Technologies/ Proc. Intern. Conf., Obninsk, 1993. — Vol. 3. — P. 651-656.

73. Kasyanov V.N., Evstigneev V.A., Gorodniaia L. The system PROGRESS is a tool for parallelizing compiler prototyping // Proc. of Eighth SIAM Conf. on Parallel Processing for Scientific Computing (PPSC-97), Minneapolis, 1997. — P. 301-306.

74. Kragen Sitaker. С BNF Grammar, 30 Oct 1999. URL: http://lists.can0nical.0rg/pipermail/kragen-hacks/l999-October/000201 .html.

75. Krste Asanovic et al. The Landscape of Parallel Computing Research: A View from Berkeley. University of California, Berkeley. Technical Report No. UCB/EECS-2006-183. Dec. 18,2006.

76. Lammel R, J. Harm. Testing attribute grammars. Proceedings of the Third Workshop on Attribute Grammars and their Applications (WAGA'2000), 2000. стр. 79-98.

77. Lamport L. The parallel execution of DO loops // Comm. Acm, 1974.

78. LoadZen. URL: http://loadzen.com/

79. Maydanchik A., "Data Quality Assessment", Technics Publications, LLC, 2007.

80. Microsoft Domain-Specific Language (DSL) Tools. Overview. URL: http://msdn.microsoft.com/ru-ru/library/bbl26327.aspx (дата обращения: 19.12.2011)

81. MSDN Library. Visual C++. URL: http://msdn.microsoft.com/en-en/librarv/60kl 461 a.aspx.

82. Muchnick S. Advanced Compiler Design and Implementation. Morgan Kaufmann Publishers, 1997.

83. Mycroft, A. Programming Language Design and Analysis motivated by Hardware Evolution (Invited Presentation) Proc. SAS'07, Springer-Verlag LNCS vol. 3634: 18-33, August 2007.

84. Par4All. URL: http://www.par4all.org/features/.

85. Purdom P. A sentence generator for testing parsers. 2, BIT, pp. 336-375, 1972.

86. Richard Gronback (Borland), Ed Merks (IBM). Eclipse Modeling Project as a DSL Toolkit. Eclipse Foundation Webinar, 2008

87. Robinson R. Automation test tools. URL: http://www.vcaa.com/tools/Rav%20Robinson.pdf, 2001.

88. SandStorm. URL: http://sandstorm.impetus.com/

89. Selenium WebDriver. URL: http://seleniumhq.org/proiects/webdriver/

90. Shyamasundar, V. Murali and R. K. A sentence generator for a compiler for PT, a pascal subset. Software Practice and Experience, CTp. 857-869, 1983.

91. Steinberg B., Alimova E., Bagliy A., Morilev R., Nis Z., Petrenko V., Steinberg R. The System for Automated Program Testing // Proceedings of 7th IEEE EAST-WEST DESIGN & TEST SYMPOSIUM (EWDTS 2009). Moscow, Russia, September 18-21, 2009. P. 218-221.

92. The ROSE Source-to-Source Compiler Infrastructure. URL: http://rosecompiler.org/.

93. TILE64 Processor. URL: http://www.tilera.com/products/processors/TILE64.

94. Top500. URL: http://www.top500.org.

95. W3C Markup Validation Service. URL: http://validator.w3.org

96. W3C standards. URL: http://www.w3.org/standards/

97. Websecurify. URL: http://www.websecurifV.com/

98. XHTML 1.0. The Extensible HyperText Markup Language (Second Edition), http://www.w3 .org/TR/xhtml 1/

99. Zhu H., Hall P. A. V., May J. H. R. Software Unit Test Coverage and Adequacy. ACM Computing Surveys, pp. 366-427, Dec. 1997.

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.