Усовершенствование языка и компилятора Для системы фрагментированного программирования Крупин Сергей ФИТ НГУ 3 курс Руководитель: Перепёлкин Владислав.

Презентация:



Advertisements
Похожие презентации
Разработка и оптимизация исполнительной системы фрагментированного программирования Руководители: Перепёлкин В.А. Щукин Г.А. Студенты: Беляков С.А. гр.ПМИ-81.
Advertisements

Система фрагментированного программирования Перепелкин В.А. Всероссийская молодежная школа по параллельному программированию МО ВВС ИВМиМГ 2009 г.
Технология Фрагментированного Программирования Летняя школа по параллельному программированию Отдел МО ВВС ИВМиМГ СО РАН 2009 г.
Разработка GRID-системы с использованием современных мобильных устройств в качестве вычислителей Мустаков Р.Н. НГУ ФИТ 3 курс Руководители: Перепелкин.
Интерактивная языконезависимая система поиска шаблонов и дубликатов в программном коде Куделевский Евгений Валерьевич, 545 группа Научный руководитель:
Реализация фрагментированных алгоритмов Выполнили:Кулагина Р. Кудрявцев В. Руководитель: Киреев С.
П РЕОБРАЗОВАНИЕ ПРОГРАММ НА ЯЗЫКЕ C-DVM В ПРОГРАММЫ ДЛЯ КЛАСТЕРОВ выполнила: студентка 527 группы Коваленко Алина Игоревна научный руководитель: профессор,
Зимняя Школа Параллельного Программирования 2011 Проект «Фрагментированное Программирование» : генератор графа фрагментированной программы для алгоритма.
ЗИМНЯЯ СТУДЕНЧЕСКАЯ ШКОЛА ПАРАЛЛЕЛЬНОГО ПРОГРАММИРОВАНИЯ Реализация метода частиц в ячейках FPIC (PIC – Particle In Cell) Исполнитель: Хасина Женя, ФИТ,
Поддержка разработки Parallels Business Automation в среде Eclispe Научный руководитель: Сергушенков Ю. А. Рецензент: доцент кафедры системного программирования,
Системы программирования Системы программирования обеспечивают создания новых программ для компьютера. Современные системы программирования обычно представляют.
Информационные технологии Литература Керниган Б., Ритчи Д. Язык программирования Си. М.И. Болски. Язык программирования Си. Справочник. 2.
М.Ю. Харламов, ВНУ им. В.Даля, Семантический анализатор Семантический анализатор выполняет следующие основные действия: проверку соблюдения во входной.
Текстовый язык автоматного программирования В. С. Гуров, М. А. Мазин, А. А. Шалыто.
«Поиск шаблонов в программном коде» Автор: студент 445 группы Евгений Куделевский Руководитель: к.ф.-м.н., ст. разработчик компании JetBrains Максим Мосиенко.
«Все наше достоинство – в способности мыслить» Блез Паскаль.
Язык высокого уровня компилятор Программа компиляторов Сделал:Студент группы:Ис-2о(очная)Воротов Валентин.
Работа по дисциплинеТехнологии программирования Тема: Метапрограммирование Выполнили: Савельев А. Л. Воробьев Д. Н. Проверил: Куприянов Ю.
Вперёд ЯЗЫКИ ПРОГРАММИРОВАНИЯ ЦЕЛИ: ЦЕЛИ: 1. Средство для задания действий, которые должны быть выполнены машиной.(Машинный язык) 1. Средство для задания.
ЛКШ. Зима.09. С + В. М. Гуровиц,
Транксрипт:

Усовершенствование языка и компилятора Для системы фрагментированного программирования Крупин Сергей ФИТ НГУ 3 курс Руководитель: Перепёлкин Владислав Летняя Школа по параллельному программированию 2010 г.

Цели и задачи Необходимо было создать удобную среду разработки программ, модифицировав уже существующую. Для лексического и синтаксического анализа использовались утилиты Bison и Lex. программаКомпиляторпланирование Исполнительная система Lex+yacc

Старый и новый синтаксис Для описания реальных задач требуется описывать множества фрагментов данных и вычислений df x(100); df y_1(100); df y_2(100); df y_3(100); df y_4(100); cf a = func(out: x); cf b_1 = norm(in x;out:y_1); cf b_2 = norm(in x;out:y_2); cf b_3 = norm(in x;out:y_3); cf b_4 = norm(in x;out:y_4); b_1 < a; b_2 < a; b_3 < a; b_4 < a; const N = 10*10; const M = 2; df x(N); ar[M] df y(N); cf a = func(out:x); cf b = for(i=1..M*M;)norm(in:x; out:y[i-1]); b[i-1] < a (i=1..4;);

Были добавлены: Константы Разбор выражений из констант и итераторов Массивы Циклические описания фрагментов вычислений Циклическое задание порядка исполнения фрагментов вычислений

Константы const N = 100; const N = 10*10; const M = 2; df x(N); ar[M] df y(N); cf a = func(out:x); cf b = for(i=1..M*M;)norm(in:x; out:y[i-1]); b[i-1] < a (i=1..4;);

Разбор выражений из констант и итераторов const N = 10*10; const M = 2; df x(N); ar[M] df y(N); cf a = func(out:x); cf b = for(i=1..M*M;)norm(in:x; out:y[i-1]); b[i-1] < a (i=1..4;);

Массивы const N = 10*10; const M = 4; df x(N); ar[M] df y(N); cf a = func(out:x); cf b = for(i=1..M;)norm(in:x; out:y[i-1]); b[i-1] < a (i=1..4;);

Циклические описания фрагментов вычислений const N = 10*10; const M = 4; df x(N); ar[M] df y(N); cf a = func(out:x); cf b = for(i=1..M;)norm(in:x; out:y[i-1]); b[i-1] < a (i=1..4;);

Циклическое задание порядка исполнения фрагментов вычислений const N = 10*10; const M = 4; df x(N); ar[M] df y(N); cf a = func(out:x); cf b = for(i=1..M;)norm(in:x; out:y[i-1]); b[i-1] < a (i=1..4;);

Способ реализации I (неэффективный) Был добавлен препроцессор который разворачивал циклы. Довольно неплохой способ за исключением того, что генерировался огромный объем кода. Программа с циклами препроцессор Программа без циклов

Способ реализации II (эффективный) Были изменены функции препроцессора – теперь он стал только подставлять константы и упрощать по возможности выражения. Циклы передаются в систему в свернутом виде. Программа с константами препроцессор Программа без констант

Итог Был разработан, протестирован и интегрирован в исходную систему удобный язык для разработки фрагментированных программ.