Инструментальная поддержка подключаемых модулей в языках процедурно-параметрического программирования тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат технических наук Бовкун, Александр Яковлевич

  • Бовкун, Александр Яковлевич
  • кандидат технических науккандидат технических наук
  • 2010, Красноярск
  • Специальность ВАК РФ05.13.11
  • Количество страниц 187
Бовкун, Александр Яковлевич. Инструментальная поддержка подключаемых модулей в языках процедурно-параметрического программирования: дис. кандидат технических наук: 05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей. Красноярск. 2010. 187 с.

Оглавление диссертации кандидат технических наук Бовкун, Александр Яковлевич

Содержание.

Введение.

1 Анализ методов эволюционного конструирования понятий.

1.1 Обзор общих методов трансформации понятий.

1.2 Трансформация понятий при эволюционной разработке программного обеспечения.

1.3 Модель трансформации понятий.

1.4 Пример фаз преобразования программы.

1.5 Модификация понятий в процессе трансформации исходной программы.

1.6 Модель зависимостей понятий.

1.7 Графическое представление модели зависимости понятий.

1.8 Описание элементов модели зависимостей понятий.

1.9 Описание исходных зависимостей для различных парадигм программирования.

1.10 Выводы.

2 Анализ методов реализации эволюционного конструирования модульной структуры программы.

2.1 Существующие методы организации модульных структур.

2.1.1 Модульное программирование.

2.1.2 Модульность в немодульных языках.

2.2 Трансформация понятий в модульных программах.

2.2.1 Трансформация понятий в языках программирования Оберон и Оберон-2.

2.2.2 Трансформация понятий в языке программирования 02М.

2.3 Особенности применения подключаемых модулей.

2.4 Анализ трансформации понятий процедурно-параметрической программы на основе подключаемых модулей.

2.4.1 Использование общего промежуточного представления.

2.4.2 Использование раздельной обработки.

2.4.3 Использование динамически загружаемых модулей.

2.5 Комбинированные методы организации фаз трансляции процедурно-параметрической программы.

2.6 Выводы.

3 Реализация процедурно-параметрического подхода при использовании подключаемых модулей.

3.1 Трансформация понятий процедурно-параметрической программы в языке Alien.

3.2 Трансформация модульной структуры.

3.3 Трансформация параметрических обобщений.

3.4 Трансформация обобщенных записей.

3.5 Трансформация обобщающих параметрических процедур и обработчиков специализаций.

3.6 Результирующая модель зависимостей.

3.7 Выводы.

4 Разработка процедурно-параметрического языка, использующего подключаемые модули.

4.1 Инструментальная поддержка процедурно-параметрического языка.

4.1.1 Транслятор с языка Alien.

4.1.2 Компоновщик параметрических отношений.

4.2 Объектная модель транслятора.

4.2.1 Объекты транслятора.

4.2.2 Промежуточная модель.

4.2.3 XML-представление.

4.3 Организация массивов.

4.3.1 Обычные массивы.

4.3.2 Открытые массивы.

4.4 Выводы.

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

Введение диссертации (часть автореферата) на тему «Инструментальная поддержка подключаемых модулей в языках процедурно-параметрического программирования»

Разработка программного обеспечения — это сложный процесс, при котором учитываются разнообразные критерии качества. Достижение таких критериев определяется как использованием соответствующей дисциплины программирования, так и применением языковых и инструментальных средств, ориентированных на поддержку избранной парадигмы. Одним из важных критериев качества является эволюционное расширение больших программных систем. Использование эволюционного расширения вносит дополнительную гибкость в создаваемые программные системы и дает возможность применять отлаженный код при разработке новых программ [1].

Существуют различные подходы, обеспечивающие поддержку эволюционной разработки программного обеспечения. Каждый из этих подходов акцентирует внимание на одном из аспектов разработки программного обеспечения и решает определенный круг задач, связанный с эволюционной разработкой. В частности, объектно-ориентированное программирование (ООП) обеспечивает за счет полиморфизма и виртуализации гибкое расширение программных объектов и построение альтернативных понятий, обладающих общим интерфейсом [2-6]. Аспектно-ориентированное программирование (АОП) ориентировано на использование сквозной функциональности [7, 8].

Процедурно-параметрическое программирование (111111) [9, 10], как и ООП, рассчитано на гибкое расширение существующих альтернативных структур данных и процедур, осуществляющих их обработку. Но в отличие от ООП оно эффективно поддерживает и множественный полиморфизм, что обеспечивает гибкое эволюционное изменение мультиметодов [11, 12].

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

Несмотря на проработку языковых конструкций и общих методов их создания [13-15], отсутствует сравнительный анализ различных методов наращивания базовых программных объектов. В частности, эволюционное расширение на основе подключаемых модулей [16] требует более подробного исследования приемов, обеспечивающих реализацию данного подхода. Отсутствует четкое понимание построения модульных программ в ✓ сочетании с процедурно-параметрическим подходом. Несмотря на детальную проработку концепции эволюционного расширения, недостаточно подробно исследованы приемы и алгоритмы генерации объектного кода и компоновки,. Не определено, на каких этапах процесса трансляции и каким образом осуществлять преобразование эволюционно написанной процедурно-параметрической программы в обычный процедурный код.

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

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

Для достижения указанной цели в работе решаются следующие задачи.

1) Исследование связи между способами эволюционного конструирования программных объектов и их преобразованием в машинный код на различных этапах процесса трансляции исходного текста программы.

2) Анализ методов формирования и использования модульной структуры программы в процедурно-параметрических языках программирования.

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

4) Разработка инструментальных средств, обеспечивающих использование предлагаемых методов и алгоритмов.

Методы исследования. В диссертационной работе использовались методы дискретной математики, теории алгоритмов, теории языков и формальных грамматик, теории разработки трансляторов. Для описания синтаксиса языка программирования применялись диаграммы Вирта и расширенные формы Бэкуса-Наура. Разработка языка программирования опиралась на методы объектно-ориентированного и процедурно-параметрического программирования.

Научная новизна.

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

2) При помощи модели трансформации понятий проведен анализ и выделены перспективные варианты реализации транслятора с языка процедурно-параметрического программирования.

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

Практическая ценность.

1) Уточнен и модифицирован язык процедурно-параметрического программирования, поддерживающий подключаемые модули.

2) Разработан транслятор с процедурно-параметрического языка, обеспечивающий апробацию на практике предлагаемых методов эволюционного расширения программ.

Результаты работы использованы в продолжающихся научных исследованиях, а также в учебном процессе по дисциплинам: «Технология программирования», «Методы программирования», «Формальные языки и трансляторы».

Положения, выносимые на защиту.

1) Использование модели трансформации понятий облегчает анализ методов преобразования эволюционно расширяемых исходных текстов программы в исполняемый код за счет выделения отдельных фаз преобразования и их независимого анализа.

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

3) Использование подключаемых модулей в сочетании с процедурно-параметрической парадигмой программирования повышает гибкость процесса разработки программного обеспечения.

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

Публикации и личный вклад в решение проблемы. По теме диссертации опубликовано десять научных работ, из которых одна статья в издании по списку ВАК.

Диссертация основана на теоретических, методологических и экспериментальных исследованиях, выполненных на кафедре «Вычислительная техника» ФГАОУ ВПО «Сибирский федеральный университет». Основные теоретические и практические результаты, изложенные в работе, получены либо непосредственно автором, либо с его участием. Автором предложена модель трансформации понятий, поддерживающая эволюционную разработку процедурно-параметрических программ. Им разработан транслятор языка процедурно-параметрического программирования, реализована поддержка основных методик процедурно-параметрического программирования, проведены исследования возможных способов реализации подхода с использованием подключаемых модулей и расширения модульных структур процедурно-параметрических программ.

Апробация работы. Основные положения диссертации докладывались и обсуждались на:

- межвузовских научных конференциях студентов, аспирантов и молодых ученых, Красноярск (2007, 2008, 2009, 2010);

- всероссийских научно-методических конференциях и выставках «Повышение качества высшего профессионального образования», Красноярск (2008, 2009, 2010);

- 3-й всероссийской конференции «Винеровские чтения», Иркутск,

2009;

- всероссийской конференции студентов, аспирантов и молодых ученых с международным участием «Молодежь и современные информационные технологии», Томск, 2010.

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

Диссертация состоит из введения, четырех разделов, заключения, списка литературы и четырех приложений. Работа содержит 124 страницы основного текста, 32 рисунка, 1 таблицу. Список литературы содержит 80 наименований.

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

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

4.4 Выводы

1) Для проведения практических экспериментов с подключаемыми модулями модифицирован язык программирования Alien, который поддерживает процедурно-параметрическое программирование, позволяющее гибко наращивать программу в ходе сопровождения.

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

Заключение

При выполнении работы получены следующие научные и практические результаты.

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

2) При помощи модели трансформации понятий проведен анализ и выделены перспективные варианты реализации транслятора с языка процедурно-параметрического программирования.

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

4) Уточнен и модифицирован язык процедурно-параметрического программирования, поддерживающий подключаемые модули.

5) Разработан транслятор с процедурно-параметрического языка, обеспечивающий апробацию на практике предлагаемых методов эволюционного расширения программ.

Список литературы диссертационного исследования кандидат технических наук Бовкун, Александр Яковлевич, 2010 год

1. Легалов, А. И. ООП, мультиметоды и пирамидальная эволюция / А. И. Легалов // Открытые системы. № 3 (март) 2002. С. 41—45.

2. Мейерс, С. Наиболее эффективное использование С++. 35 новых рекомендаций по улучшению ваших программ и проектов : пер. с англ. / С. Мейерс. М. : ДМК Пресс, 2000. - 304 с.

3. Буч, Г. Объектно-ориентированный анализ и проектирование с примерами приложений на С++, 2-е изд. : пер. с англ. / Г. Буч. М. : "Издательства Бином", СПб. : "Невский диалект", 1998. - 560 с.

4. Бадд, Т. Объектно-ориентированное программирование в действии / Т. Бадд. СПб.: Питер, 1997.

5. Гамма, Э. Приемы объектно-ориентированного проектирования. Паттерны проектирования : пер. с англ. / Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес. СПб. : Питер, 2001. - 368 с.

6. Kiczales, G. Aspect-Oriented Programming / G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. Loingtier, J. Irwin In proc. of ECOOP, 1997, LNCS 1241. - pp. 220-242.

7. Colyer, A. Eclipse AspecU: Aspect-Oriented Programming with AspecU and the Eclipse AspecU Development Tools / A. Colyer, A. Clement, G. Harley, M. Webster. Addison Wesley Professional. - 2004.

8. Легалов, А. И. Процедурно-параметрическая парадигма программирования. Возможна ли альтернатива объектно-ориентированномустилю? Красноярск, 2000. - Деп. рук. № 622-В00. Деп. в ВИНИТИ 13.03.2000.-43 с.

9. Особенности процедурно-параметрической парадигмы программирования // Радиоэлектроника. Информатика. Управление. № 1 (5), 2001.-С. 102-106.

10. Легалов, А. И. Методы реализации процедурно-параметрического полиморфизма / А. И. Легалов // Проблемы информатизации региона. ПИР-2000 : тез. докл. Шестой Всерос. науч.-практ. конф. Красноярск : КГТУ, 2000.-С. 69-71.

11. Легалов, А. И. Методы поддержки параметрического полиморфизма / А. И. Легалов // Научный вестник НГТУ. — 2004. — № 3 (18). -С. 73-82.

12. Легалов, А. И. Языковая поддержка процедурно-параметрического программирования / А. И. Легалов, Д. А. Швец, И. А. Легалов // Проблемы информатизации региона, ПИР-2005 : материалы девятой науч.-практ. конф. — Красноярск.-2005. -С. 169-175.

13. Легалов, И. А. Применение обобщенных записей в процедурно-параметрическом языке программирования / И. А. Легалов // Научный вестник НГТУ. 2007. - № 3 (28). - С. 25-38.

14. Бовкун, А. Я. Расширение модульной структуры программы за счет подключаемых модулей / А. Я. Бовкун, А. И. Легалов, И. А. Легалов // Доклады академии наук высшей школы Российской Федерации. — Новосибирск : НГТУ, 2010. С. 114-125.

15. Процедурное программирование. Материал из Википедии — свободной энциклопедии Электронный ресурс. — Режим доступа: http://ru.wikipedia.org/wiki/ Процедурноепрограммирование. — Загл. с экрана.

16. Легалов, А. И. Разнорукое программирование // А. И. Легалов. — http://www.softcraft.ru/paradigm/dhp/index.shtml

17. Филд, А. Функциональное программирование : пер. с англ. //

18. A. Филд, П. Харрисон. М. : Мир, 1993. - 637 с, ил.

19. Майерс, Г. Архитектура современных ЭВМ : В 2-х кн. / Г. Майерс. — М.: Мир, 1985.-364 с.

20. Браун, П. Макропроцессоры и мобильность программного обеспечения / П. Браун // Серия: Математическое обеспечение ЭВМ ; пер. с англ. М. : Мир, 1977. - 253 с.

21. Tom Swan. Mastering Turbo Assembler. Carmel, Indiana: Howard W. Sams & Company, Hayden Books division of Macmillan Computer Publishing, 1989.

22. Сван, Т. Освоение Turbo Assembler. 2-е изд. / Т. Сван. — Киев : Диалектика, 1996. 540 с.

23. American Standard FORTRAN. Approved March 7, 1966, N. Y., 1966.

24. Калдербенк, В. Дж. Курс программирования на фортране-IV /

25. B. Дж. Калдербенк. — М. : Энергия, 1976.

26. P. Naur, "Report on the Algorithmic Language ALGOL 60," Comm. ACM, May 1960, pp. 299-314.

27. Наур, П. Алгоритмический язык АЛГОЛ 60 / П. Ilayp. М. : Мир,1965.

28. Вирт, Н. Алгоритмы + структуры данных = программы / Н. Вирт. -М.: Мир, 1985.

29. Страуструп, Б. Язык программирования С++. Третье издание : пер. с англ. / Б. Страуструп. СПб. ; М. : "Невский диалект" - "Издательство БИНОМ", 1999.-991 с.

30. Нортон, П. Программирование на Java. Руководство П. Нортона (в 2-х т.) : пер. с англ. / П. Нортон. "СК-Пресс", 1998. - 900 с.

31. Троелсен, Э. С. С# и платформа .NET. Библиотека программиста : пер. с англ. / Э. С. Троелсен. СПб. : Питер, 2003. — 800 с.

32. Голуб, А. И. С, С++. Правила программирования / А. И. Голуб. -М. : Бином, 1996.

33. Фуксман, A. JI. Технологические аспекты создания программных систем / A. JI. Фуксман. М. : Статистика, 1979. - 184 с.

34. Дал, У. Структурное программирование : пер с англ. / У. Дал, Э. Дейкстра, К. Хоор. М. : Мир, 1975. - 247 с.

35. Горбунов-Посадов, M. М. Система открыта, но что-то мешает / M. М. Горбунов-Посадов // Открытые системы. — 1996. — № 6. С. 36-39.

36. Горбунов-Посадов, M. М. Конфигурационные ориентиры на пути к многократному использованию / M. М. Горбунов-Посадов. ИПМ им. М. В. Келдыша РАН. Препринт № 37, 1997 г.

37. Горбунов-Посадов, M. М. Облик многократно используемого компонента / M. М. Горбунов-Посадов // Открытые системы. — 1998. — № 3. — С. 45-49.

38. Горбунов-Посадов, M. М. Расширяемые программы / M. М. Горбунов-Посадов. -М. : Полиптих, 1999.

39. Горбунов-Посадов, M. М. Эволюция программы: структура транзакции / M. М. Горбунов-Посадов // Открытые системы. 2000. - № 10. -С. 43-47.

40. Шукла, Д. АОП: Более эффективная инкапсуляция и повторное использование кода / Д. Шукла, С. Ф. К. Селлз // MSDN Magazine / Русская редакция. 2002. - Спецвыпуск № 1.

41. Ческис, В. Л. Динамическое формирование объектов / В. JI. Ческис // Программист. № 10. - 2002.

42. Александреску, А. Современное проектирование на С++ : пер. с англ. / А. Александреску М. : Издательский дом «Вильяме», 2002. — 336 с.

43. Abrahams, D. С++ Template Metaprogramming: Concepts, Tools and Techniques from Boost and Beyong. / D. Abrahams, A. Gurtovoy — Boston, Addison-Wesley. 2005. - 373 pp.

44. Vlissides John. Pattern hatching: design pattern applied. / Addison Wesley, 172 pages, 1998.

45. Влиссидес, Дж. Применение шаблонов проектирования. Дополнительные штрихи : пер. с англ. / Дж. Влиссидес. М. : Издательский дом «Вильяме», 2003. - 144 с.

46. Steele, G. L. Common Lisp the Language, 2nd Edition. / G. L. Steele — Digital Press, Bedford, Massachusetts, 1990. http://www.cs.cmu.edu/.

47. Страуструп, Б. Дизайн и эволюция С++ : пер. с англ. / Б. Страуструп. М. : ДМК Пресс, 2000. - 448 с.

48. Легалов, А. И. Мультиметоды и парадигмы / А. И. Легалов // Открытые системы. № 5 (май), 2002. - С. 33-37.

49. Керниган, Б. В. Язык С / Б. В. Керниган, Д. М. Ричи. Невский Диалект, 2000. - 352 с.

50. Полиморфизм (программирование). Материал из Википедии — свободной энциклопедии Электронный ресурс. Режим доступа: http://ru.wikipedia.org/wiki/Пoлимopфизм(пpoгpaммиpoвaниe). — Загл. с экрана.

51. Кристиансен, Т., Программирование на Perl / Т. Кристиансен, Д. Орвант, Л. Уолл. М. : Символ-Плюс, 2004. - 1145 с.

52. Сузи, Р. А. Язык программирования Python / Р. А. Сузи. БИНОМ. Лаборатория знаний, Интернет-университет информационных технологий. ИНТУИТ.ру. - 2006. - 328 с.

53. Рогаткин, Д. Borland Pascal в среде Windows / Д. Рогаткин, А*. Федоров. Киев : Диалектика, 1993. — 511 с.

54. Затуливетер, Ю. С. ПАРСЕК язык компьютерного исчисления древовидных структур с открытой интерпретацией. Стендовый вариант системы программирования / Ю. С. Затуливетер, Т. Г. Халатян. - М., 1997 (Препринт/Институт проблем управления РАН).

55. Вирт, Н. Алгоритмы и структуры данных. Новая версия для Оберона : пер. с англ. / Н. Вирт. М. : ДМК-Пресс, 2010. - 272 с.

56. Модуль (программирование). Материал из Википедии — свободной энциклопедии Электронный ресурс. — Режим доступа: http://ru.wikipedia.org/wiki/Moдyль(пpoгpaммиpoвaниe). — Загл. с экрана.

57. Grogono P. Why One Source File Is Better Than Two. / SEA 2000 -Software Engineer-ing and Applications (Las Vegas, Nevada, USA, November 2000), Proceedings of the IASTED International Conference. ACTA Press. -2000. - pp. 243-249.

58. Moessenboeck, H. Object-Oriented Programming in Oberon-2 / H. Moessenboeck. Springer-Verlag. (c) 1993.

59. Moessenboeck, H. The Programming Language Oberon-2 / H. Moessenboeck, N. Wirth. Institut fur Computersysteme, ETH Zurich July. -1996.

60. Component Pascal Language Report. Oberon Microsystems, Inc, 2001.

61. BlackBox. Электронный ресурс. — Режим доступа: http://www.oberon.ch/blackbox. html. — Загл. с экрана.

62. Сайт компании Oberon Microsystems, посвященный языку программирования Component Pascal http://www.oberon.ch/

63. Саммерфильд, М. Программирование на Python 3. Подробное руководство : пер. с англ. / М. Саммерфильд. — СПб. : Символ-Плюс, 2009. -608 с.

64. Radensky, A. Module embedding Электронный ресурс. / A. Radensky ' Режим доступа: http://wwwl.chapman.edu/~radenski/research/papers/module.pdf. . Загл. с экрана.

65. Легалов, А. И. Процедурный язык с поддержкой эволюционного проектирования / А. И. Легалов, Д. А. Швец // Научный вестник НГТУ. — 2003. № 2 (15). - С. 25-38.

66. Wirth, N. The Programming Language Oberon. / N. Wirth -ftp://ftp.inf.ethz.ch/pub/software/Ober0n/OberonY4/Docu/OberonReport.Text/.

67. Wirth, N. Programming in Oberon. A derivative of Programming in Modula-2 (1982). /N. Wirth- http://www.oberon.ethz.ch/wirthPiO/.

68. Швец, Д. А. Система программирования на языке 02М / Д. А. Швец // В кн. : IV Всерос. конф. молодых ученых по математическому моделированию и информационным технологиям: Программа и тезисы докладов. Красноярск, 2003. - С. 67.

69. Платт, Д. С. Знакомство с Microsoft .NET / Д. С. Платт ; пер. с англ. -М. : Издательско-торговый дом "Русская Редакция", 2001. — 240 е.: ил.

70. Швец, Д. А. Инструментальная поддержка языка программирования 02М / Д. А. Швец // В кн. : Технологии Microsoft в информатике и программировании : тезисы докладов. Новосибирск : НГУ, 2004. — С. 41-42.

71. Рихтер, Дж. CLR via С#. Программирование на платформе Microsoft .NET Framework 2.0 на языке С#. Мастер-класс / Дж. Рихтер ; пер. с англ. -М. : Издательство «Русская редакция» ; СПб. : Питер, 2007. 656 стр.: ил.

72. Гуннерсон, Э. Введение в С#. Библиотека программиста / Э. Гуннерсон. СПб. : Питер, 2001.-304 с.

73. Вирт, Н. Программирование на языке Модула-2 / Н. Вирт ; пер. с англ. М. : Мир, 1987. - 244 с.

74. Джехани, Н. Язык Ада / Н. Джехани ; пер. с англ. — М. : Мир, 1988.-522 с.

75. Джехани, Н. Программирование на языке Си / Н. Джехани ; пер. с англ. М. : Радио и связь, 1988. - 272 с.

76. Леоненков, А. В. Самоучитель UML / А. В. Леоненков. СПб. : БХВ-Петербург, 2001.-304 с.

77. Ларман, К. Применение UML 2.0 и шаблонов проектирования. Введение в объектно-ориентированный анализ и проектирование / К. Ларман. -М. : Издательский дом «Вильяме». — 2008. 736 с.

78. Лешек А. Мацяшек. Анализ и проектирование информационных систем с помощью UML 2.0. Третье изд. / А. Лешек Мацяшек. — М. : Издательский дом «Вильяме». 2008. - 816 с.

79. Спенсер, П. XML. Проектирование и реализация / П. Спенсер. -М. : Лори, 2001.-509 с.

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