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

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

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

Введение./.

1 Поддержка языковыми конструкциями, эволюционного расширения и повторного использования.

1.1 Операции, обеспечивающие эволюционное расширение.

1.2 Эволюционное расширение языковых конструкций.

1.3 Эволюционно расширяемые языковые конструкции, удобные для повторного использования.

1.4 Место процедурно-параметрического программирования в эволюционной разработке программ.3,

1.5 Перегрузка процедур с одинаковой сигнатурой./

1.6 Выводы.

2 Применение обобщенных записей для эволюционного расширения и повторного использования.

2.1 Организация обобщений современных языков.

2.2 Организация и использование параметрического обобщения.

2.3 Особенности организации обобщенной записи.

2.4 Базовые операции с обобщенными записями.

2.5 Использование обобщенных записей с обобщающими у параметрическими процедурами./

2.6 Дополнительные возможности, связанные с использованием обобщенных записей.

2.7 Выводы.

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

3.1 Методы построения модульной структуры программы.

3.2 Распределение языков по характеристикам модулей.

3.3 Расширение программы на основе подключаемых модулей.

4 Особенности процедурно-параметрического программирования.

4.1 Типичные ситуации расширения написанного кода.

4.2 Использование ряда парадигм при простых расширениях кода.

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

4.4 Выводы.

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

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

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

1) Современные методологии разработки программного обеспечения (ПО) ориентированы на инкрементальное наращивание кода.

2) Современные системы программирования содержат средства, обеспечивающие поддержку эволюционного проектирования.

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

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

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

- объектно-ориентированное программирование (ООП) [ 1 -5];

- аспектно-ориентированное программирование (АОП) [6-9];

- порождающее программирование [10];

- процедурно-параметрическое программирование (1ИШ) [11, 12] и другие.

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

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

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

1) 111 111 обеспечивает гибкое эволюционное расширение типов данных и процедур, что позволяет безболезненно наращивать программу 'по различным направлениям. В частности, данная парадигма предоставляет гибкую инструментальную поддержку для расширения мультиметодов [1720]. Однако, возможности подхода, его достоинства и недостатки по сравнению с другими стилями написания кода до конца не исследованы.

2) Существуют различные способы организации программных объектов, обеспечивающих поддержку процедурно-параметрической парадигмы [21-25]. Однако внутренняя организация данных, используемых при ППП, окончательно не проработана. Не проанализированы особенности, связанные с построением более сложных структур данных, объединяющих воедино обычные записи и обобщения. Отсутствует анализ методов реализации таких типов данных.

3) Существующая на сегодня модульная организация процедурно-параметрических программ не является достаточно гибкой [20, 26, 27]. Она базируется на традиционной модульной структуре, применяемой в таких языках, как Оберон [29, 30], Оберон-2 [31, 32], Component Pascal [33, 34]. Эволюционная разработка предъявляет дополнительные требования к взаимодействию модулей, что вносит особенности в их реализацию и требует дополнительного анализа.

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

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

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

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

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

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

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

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

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

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

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

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

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

2) Проведена реализация образцов объектно-ориентированного проектирования с применением процедурно-параметрического подхода, что позволило избавиться от ряда недостатков присущих этим образцам.

Предложена реализация ряда образцов проектирования с использованием мультиметодов.

3) Полученные научные и практические результаты использованы в учебном процессе по дисциплине «Технология программирования» в ФГОУ ВПО «Сибирский федеральный университет».

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

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

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

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

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

- конференции «Технологии Microsoft в информатике и программировании», Новосибирск (2005);

- научной конференции молодых ученых «Наука, технологии, инновации», Новосибирск, 2006;

- международной конференции «Перспективы систем информатики» (рабочий семинар «Наукоемкое программное обеспечение»), Новосибирск, 2006.

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

Диссертация состоит из введения, четырех разделов, заключения, списка литературы и двух приложений. Работа содержит 150 страниц

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

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

4.4 Выводы

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

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

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

Заключение

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

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

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

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

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

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

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

Список литературы диссертационного исследования кандидат технических наук Легалов, Игорь Александрович, 2007 год

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

2. Издательства Бином", СПб: "Невский диалект", 1998 г. 560 с.

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

4. Якобсон, А. Унифицированный процесс разработки программного обеспечения. / А. Якобсон, Г. Буч, Дж.Рамбо СПб.: Питер, 2002. - 496 с.

5. Фридман, A.JI. Основы объектно-ориентированной разработки программных систем. / А.Л. Фридман М.: Финансы и статистика. - 2000. -192 с.

6. Иванова Г.С. Объектно-ориентированное программирование: Учеб.для вузов / Г.С. Иванова, Т.Н. Ничушкина, Е.К. Пугачев М.: Изд-во МГТУим. Н.Э. Баумана. 2001. - 320 с.

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

8. 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.

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

10. Павлов, В. Аспектно-ориентированное программирование // В. Павлов http://www.javable.com/columns/aop/workshop/01/

11. Чарнецки, К. Порождающее программирование: методы, инструменты, применение. Для профессионалов.: Пер. с англ. / К. Чарнецки, У.Айзенекер. СПб: Питер, 2005.

12. Легалов, А. И. Процедурно-параметрическое программирование. / А. И. Легалов // Проблемы информатизации региона. ПИР-99: Сб. научных трудов пятой Всероссийской научно-практической конференции. Красноярск. КГТУ. - 1999. - С. 13-27.

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

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

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

16. Appleton, В. Patterns and Software: Essential Concepts and Terminology. / B. Appleton http://www.enteract.com/~bradapp/docs/patterns-intro.html.

17. Buschmann, F. Pattern-Oriented Software Architecture: A System of Patterns. / F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, M. Stal Wiley, Chichester UK, 1996.

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

19. Легалов, А. И. Языковая поддержка эволюционного расширенияпрограмм. / А. И. Легалов, Д. А. Швец // Доклады СО АН ВШ 2003. - №2 (8), июль-декабрь. - С. 102-114.

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

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

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

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

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

25. Легалов, А. И. Средства программирования на языке Оберон-2М.'/ А.И. Легалов, Д. А. Швец // Проблемы информатизации региона. ПИР-2001: Сб. науч. трудов. Красноярск: ИПЦ КГТУ. 2002. - С. 61-67.

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

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

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

29. Moessenboeck, H. Object-Oriented Programming in Oberon-2. >1 Moessenboeck H. Springer-Verlag. (c) 1993.

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

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

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

33. Легалов, А.И. Язык программирования 02М. / А.И. Легалов, Д.А. Швец http://www.softcraft.ru/ppp/o2m/o2mref.shtml. '

34. Бек, К. Экстремальное программирование./ К. Бек. СПб, Пите^.2003.

35. Бек, К. Экстремальное программирование: разработка через тестирование. Библиотека программиста / К. Бек. СПб, Питер. - 2003. - 224 с.

36. Jeffries, R. Extreme programming installed. / R. Jeffries, A. Anderson, C. Hendrickson Addison Wesley. - 2001. - 265 p.

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

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

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

40. Meyer, В. Object-Oriented Software Construction. Second Edition. /'В. Meyer ISE Inc. Santa Barbara (California). - 1997.

41. Reiser, M. Programming in Oberon: steps beyond Pascal and Modula. / M. Reiser, N. Wirth Addison-Wesley, ACM Press. - 1992.

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

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

44. Цикритзис, Д. Модели данных.: Пер. с англ. / Д. Цикритзис, Ф. Лоховски М.: Финансы и статистика, 1985. - 344 с.

45. Wirth N. Type Extensions. / ACM Transactions on Programming Languages and Systems. Vol. 10, No 2, April 1988, p. 204-214.

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

47. Barnes, J. Programming in Ada 95, 2nd Edition. / J. Barnes Addison-Wesley. - 1998.

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

49. Hejlsberg, A. C# Language Reference. / A. Hejlsberg, W. Scott. -http://www.ishiboo.com/~nirva/csharp/C%23%20Language%20Reference.pdf.t

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

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

52. Легалов, А. И. Эволюционное расширение программ в функциональном языке параллельного программирования. / А. И. Легалов, Д. В. Привалихин // Вестник Красноярского государственного университета. -2004.-№5/2.-С. 40-48.

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

54. Кристиансен, Т., Программирование на Perl / Т. Кристиансен, Д.i

55. Орвант, Л. Уолл М.: Символ-Плюс, 2004. - 1145 с.

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

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

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

59. Басько A.JL, Легалов А.И. Поддержка мультиметодов в .NET. / А.Л.

60. Басько, А.И. Легалов. // Информатика и системы управления: межвузовский сборник научных трудов. Красноярск. ГУ НИИ ИПУ КГТУ. Вып. 9 2003. -С. 47-54.

61. Игнатов, В. Эффективное использование GNU Make. / В. Игнатов -http://www.geocities.com/SiliconValley/Office/6533/gm.htm

62. Митчелл, М. Программирование для Linux. Профессиональный подход: Пер. с англ. / М. Митчелл, Д. Оулдем, Самьюэл А. М.: Издательский дом «Вильяме», 2003. - 288 с.

63. Шлее, М. Qt. Профессиональное программирование на С++. / М.

64. Шлее. СПб.: БХВ-Петербург, 2005. - 544 с.

65. Легалов, И. А. Использование паттернов проектирования в компонентном языке. / И. А. Легалов // Информатика и информационные технологии. Межвузовский сборник научных трудов. Красноярск. 2004. -С. 74-78.

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

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

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

69. Легалов, А. И. Об особенностях реализации обобщений припроцедурно-параметрической парадигме программирования. / А. И. Легалов,

70. Д. А. Швец, И. А. Легалов // Шестая международная конференция

71. Перспективы систем информатики». Рабочий семинар «Наукоемкоепрограммное обеспечение». Информационный бюллетень. Новосибирск. 2006.-С. 82-85.

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

73. Легалов, И. А. Процедурно-параметрический язык программирования. / И. А. Легалов // Наука, технологии, инновации. Материалы Всероссийской научной конференции молодых ученых. Часть 1. Новосибирск. 2006. - С. 244-246.t

74. Легалов, И. А. Язык программирования, поддерживающий процедурно-параметическую парадигму. / И. А. Легалов // Технологии

75. Microsoft в теории и практике программирования. Конференция-конкурс работ студентов, аспирантов и молодых ученых. Тезисы докладов. Новосибирск. 2006. - С. 201 -202.

76. Grogono, P. Why One Source File Is Better Than Two. / P. Grogono, M. Sakkinen http://oberon2005.ru/paper/pg2000.pdf

77. Parnas, D.L. On the Criteria To Be Used in Decomposing Systems into Modules / D.L. Parnas // Communications of the ACM, Vol. 15, No. 11 -December- 1972.-pp. 1053-1058.

78. Duchier, D. A Higher-order Module Discipline with Separate Compilation, Dynamic Linking, and Pickling. / D. Duchier, L. Kornstaedt, C. Schulte, G. Smolka http://oberon2005.ru/paper/ddl998.pdf

79. Crelier R. Separate Compilation and Module Extension. / R. Crelier // A dissertation submitted to the Swiss Federal Institute of Technology Zurich for the degree of Doctor of Technical Sciences. http://oberon2005.ru/paper/ethl0650.pdf

80. Radensky, A. Module embedding. / A. Radensky // http://www.europrog.ru/paper/ar1998.pdf

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

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

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

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

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

86. Секунов, Н. Ю. Самоучитель Visual С++ .NET. / Н. Ю. Секунов -СПб., БХВ-Петербург. 2002. - 736 с.

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

88. Рамодин, Д. IDL заклинания эпохи распределенных вычислений./ Д. Рамодин // Мир ПК. - 1999. - № 9. , -http://www.osp.ru/pcworld/1999/09/160894/

89. Легалов, А.И. Технология программирования. Процедурная и объектно-ориентированная парадигмы. Метод, указания по выполнению лабораторной работы № 1. / А.И. Легалов Красноярск: ИПЦ КГТУ. - 2006. -43 с.

90. Гофман, В. Delphi 5 в подлиннике. / В. Гофман, А. Хомоненко -СПб.: "BHV-Санкт-Петербург", 1999. 800 с.

91. Элджер, Дж. С++: библиотека программиста.: Пер. с англ. / Дж. Элджер. СПб.: ЗАО "Издательство Питер", 1999. - 320 с.

92. Гранд, М. Шаблоны проектирования в Java. Пер. с англ. / М. Гранд. М.: Новое знание. - 2004. - 559 с.1. Ul-CAUtpS 1У./.

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