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

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

Оглавление диссертации кандидат технических наук Швец, Дмитрий Александрович

Содержание.

Введение.

1 Методы разработки эволюционно-расширяемых программ.

1.1 Разделение систем программирования по парадигмам.

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

1.3 Факторы, определяющие построение расширяемых программ.

1.3.1 Модули с инициализирующими блоками.

1.3.2 Пространства имен, размещаемые в нескольких единицах компиляции.

1.3.3 Классы, содержащие конструкторы и деструкторы.

1.3.4 Технология вертикального слоения.

1.3.5 Наследование и виртуализация.

1.3.6 Технология вспомогательных классов.

1.3.7 Метапрограммирование.

1.3.8 Аспект ориентированное программирование.

1.3.9 Субъектно-ориентированное программирование.

1.3.10 Связывание через интерфейсы.

1.4 Моделирование методов формирования процедурно-параметрических отношений.

1.4.1 Алгоритмы, базирующиеся на объектно-ориентированной парадигме.

1.4.2 Использование процедурного подхода для построения эволюционно расширяемых мультиметодов.

1.4.3 Сравнение объектно-ориентированной и процедурно-параметрической реализаций полиморфизма.

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

1.6 Выводы по главе 1.

2 Методы организации программных объектов, поддерживающих процедурно-параметрическое программирование.

2.1 Используемые понятия и определения.

2.1.1 Данные обрабатываемые программой.

2.1.2 Значения данных.

2.1.3 Процедуры, используемые для обработки программных объектов.

2.1.4 Вызовы процедур.

2.2 Задача эволюционного расширения мультиметодов.

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

2.3.1 Расширение мультиметодов при процедурном подходе.

2.3.2 Расширение мультиметодов при объектно-ориентированном подходе.

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

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

2.4.1 Организация параметрических обобщений.

2.4.2 Организация обобщающих параметрических процедур.

2.4.3 Организация обработчиков параметрических специализаций.

2.4.4 Экземпляр параметрического обобщения.

2.4.5 Вызовы параметрических процедур.

2.5 Классификация механизмов параметрического обобщения.

2.5.1 Способы построения параметрических обобщений.

2.5.2 Методы включения специализаций в параметрическое обобщение.

2.5.3 Методы конструирования обобщений.

2.5.4 Способы построения параметрических отношений и их отображение на обобщающие и специализированные параметрические процедуры.

2.5.5 Способы формирования тел обработчиков специализаций.

2.5.6 Способы связывания комбинаций специализаций с конкретным обработчиком.

2.5.7 Фазы формирования параметрических обобщений.

2.6 Выводы по главе 2.

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

3.1 Языковые конструкции, поддерживающие процедурно-параметрическое программирование.

3.1.1 Организация параметрических обобщений.

3.1.2 Указатели на параметрические обобщения и специализации.

3.1.3 Обобщенные переменные.

3.1.4 Обобщающие процедуры и обработчики специализаций.

3.1.5 Вызовы обобщающих процедур.

3.1.6 Оператор WITH.

3.2 Организация трансляции процедурно-параметрических программ.

3.3 Использование языка для решения задачи эволюционного расширения.

3.3.1 Разработка основной части программы.

3.3.2 Проявление полиморфизма в клиентском модуле.

3.4 Выводы по главе 3.

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

4.1 Оценка эффективности реализации поддержки процедурно-параметрической парадигмы программирования.

4.2 Методы повышения эффективности реализации 111111.

4.3 Инструменты процедурно-параметрического программирования.

4.3.1 Транслятор с языка 02М.

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

4.3.3 Сборщик проектов.

4.3.4 Оболочка пользователя.

4.3 Выводы по главе 4.

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

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

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

Тем не менее, практическое использование ОО подхода позволило выявить ряд недостатков [16, 55], в частности, сложности при реализации мультиметодов [55, 64]. Преодоление данных недостатков осуществляется путем моделирования при помощи языковых средств объектов, решающих проблемы, связанные с использованием объектно-ориентированных средств. В качестве примера подобного решения можно привести разработку образцов проектирования [37]. Однако, использование моделирования вновь сдвигает процесс обнаружения ошибок на более поздние этапы.

Одним из возможных путей преодоления недостатков объектно-ориентированной методологии является применение процедурно-параметрической парадигмы программирования [54, 55, 57, 59, 60, 67]. Опираясь на процедурный подход, данная парадигма расширяет его механизмом, поддерживающим полиморфную обработку альтернативных данных без их явного описания в теле процедуры. Этот механизм похож на полиморфизм классов, используемый в ООП. Применение данного механизма обеспечивает как эволюционное расширение программ совместно с повторным использованием написанного ранее полиморфного кода [67], так и возможность использования старых процедурных подпрограмм путем их объединения в обобщенные процедуры, обрабатывающие полиморфные типы данных [70].

Использование программных объектов, поддерживающих процедурно-параметрическое программирование, позволяет расширить функциональные возможности существующих процедурных языков, сделать их более приспособленными для разработки больших программных систем. Процедурно-параметрическую парадигму можно использовать как в качестве альтернативы объектно-ориентированному подходу, так и совместно с ООП [55].

Полноценное использование возможностей процедурно-параметрического полиморфизма (111111) возможно только при наличии поддержки 111111 на уровне языка программирования [56, 58], что позволяет организовать проверку корректности связей между программными объектами на ранних этапах построения программы.

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

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

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

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

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

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

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

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

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

В работе получены следующие научные результаты:

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

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

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

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

К практическим результатам работы следует отнести:

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

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

3. Полученные научные и практические результаты использованы в учебном процессе по дисциплине «Технология программирования» в Красноярском государственном техническом университете и Красноярском государственном университете.

Достоверность и обоснованность результатов диссертации подтверждаются:

- Исследованием современного состояния методологий программирования.

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

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

Публикации и личный вклад в решение проблемы. По теме диссертации опубликовано 12 печатных работ, из которых 8 статей, 4 тезисов докладов.

Диссертация основана на теоретических, методологических и экспериментальных исследованиях, выполненных в лаборатории каф. НейроЭВМ КГТУ. Основные теоретические и практические результаты, изложенные в работе, получены либо непосредственно автором, либо с его участием. Автором разработана структура комплекса инструментальных средств, реализована поддержка основных методик процедурно-параметрического полиморфизма, проведены исследования возможных способов реализации 1111 методологии, разработан комплекс программных средств для трансляции программ, написанных с применением исследуемых методик.

Апробация работы.

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

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

- межвузовской научной конференции, Красноярск (2002);

- IV Всероссийской конференции молодых ученых по математическому моделированию и информационным технологиям, Красноярск (2003);

- 3-ей школе-семинаре «Распределенные и кластерные вычисления», Красноярск (2003).

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

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

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

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

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

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

4.3 Выводы по главе 4

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

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

3. Разработка дополнительных инструментальных средства и утилит обеспечила повышение эффективности разработки программ.

4. Показана эффективность поддержки множественного и одиночного полиморфизма в системах процедурно-параметрического программирования.

Заключение

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

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

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

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

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

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

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

- сборщик проектов, обеспечивающий генерацию скрипта для обработки объектного кода и сборки исполняемого файла;

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

Список литературы диссертационного исследования кандидат технических наук Швец, Дмитрий Александрович, 2004 год

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

2. Beck, К ent E xtreme P rogramming E xplained: E mbrace С hange / К ent Beck Addison Wesley, 2000. - 190 pages.

3. Bobrow, D. Perspectives on Artificial Intelligence Programming. / D.Bobrow, M.Stefik // Science vol. 231, p. 951, February 1986.

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

5. Component Pascal Language Report. Oberon Microsystems, Inc, 2001. -http://www.oberon.ch/prod/blackbox/

6. Czamecki, K. Generative Programming: Methods, Tools and Applications / K.Czarnecki, E.Ulrich Addisson-Wesley - 2000.

7. Goldberg, A. Smalltalk-80: The Language. / A.Goldberg, D.Robson -Reading, MA: Addison-Wesley 1989.

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. Kuzmin, D.A. Description of parallel-functional programming language. / D. A. Kuzmin, F. A. Kazakov, A. I. Legalov // Advances in Modeling & Analysis, A, AMSE Press, 1995. Vol.28. - No. 3. - pp. 1-17.

10. Leiberherr, K. Component Enhancement: An Adaptive Reusability Mechanism for Groups of Collaborating Classes / K. Leiberherr // In Information Processing'92, 12th World Computer Congress, Madrid, Spain, J. van Leeuwen (Ed.), Elsevier, 1992,-pp. 179-185.

11. Leroy, X. The Objective Caml system release 3.04/ Documentation and user's manual / X .Leroy Institut National de Recherche en Informatique et en Automatique. December 10,2001.

12. Meyer, M. Object-Oriented Software Construction. Second Edition. / M. Meyer ISE Inc. Santa Barbara (California).

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

14. Moessenboeck, H. The Programming Language Oberon-2. / H. Moessenboeck, N. Wirth Institut fur Computer-systeme, ETH Zurich July 1996.

15. Plasmeijer, R. Concurrent Clean. Language Report / R. Plasmeijer, M. van Eekelen www.cs.kun.nl/~clean

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

17. Tempi, J. Metaprogramming in Oberon. / J. Tempi Diss ETH Zurich, 1994.-№ 10655,-148 p.

18. Wirth, N. The Programming Language Oberon. ftp.V/ftp.inf.ethz.ch/pub/software/Oberon/OberonV4/Docu/OberonReport.Text

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

20. Аммерааль, JI. STL для программистов на С++ / Л. Аммерааль -Пер. с англ. М.: ДМК, 1999. - 240 с.

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

22. Бек, Кент Экстремальное программирование / Кент Бек // Открытые системы, №1-2, 2000. -http://www.osp.ru/os/2000/l-2/059.htm

23. Бен-Ари, М. Языки программирования. Практический сравнительный анализ / М. Бен-Ари Пер. с англ. - М.: Мир, 2000. - 366 с.

24. Бердж, В. Методы рекурсивного программирования. / В. Бердж -Пер. с англ. М.: Машиностроение, 1983. - 248 с.

25. Боэм, Б. Характеристики качества программного обеспечения. / Б. Боэм, Дж. Браун, X. Каспар Пер. с англ. М.: Мир, 1981. - 208 е., ил.

26. Буч, Г. Объектно-ориентированное проектирование с примерами применения. / Г. Буч Пер. с англ. - М.: Конкорд, 1992. - 519 е., ил.

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

28. Вандэвурд, Д. Д. С++: справочник разработчика / Д. Д. Вандэвурд, Н. М. Джосаттис Пер. с англ. - М.: Издательский дом «Вильяме», 2003. -544 с.

29. Васкевич, Д. Стратегии клиент/сервер. Руководство по выживанию для специалистов по реорганизации бизнеса / Д. Васкевич К.: "Диалектика", 1996.-384 с.

30. Вендров, А. М. CASE технологии. Современные методы и средства проектирования информационных систем. - Сервер информационных технологий - http://www.citforum.ru/

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

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

33. Вирт, Н. Алгоритмы и структуры данных / Н. Вирт М.: Мир,1989.

34. Вирт, Н. Долой "жирные" программы / Н. Вирт // Открытые системы. №6 (20), 1996. С. 26-31.

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

36. Горбунов-Посадов, М. М. Система открыта, но что-то мешает / М. М. Горбунов-Посадов // Открытые системы. 1996. № 6. С. 36-39. -http.V/www.osp.ru/os/l 996/06/36.htm

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

38. Горбунов-Посадов, М. М. Облик многократно используемого компонента / М. М. Горбунов-Посадов // Открытые системы. 1998. № 3. С. 45-49. - http://www.osp.ru/os/1998/03/45.htm

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

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

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

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

43. Дейкстра, Э. Дисциплина программирования / Э. Дейкстра Пер. с англ. -М.: Мир, 1978.

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

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

46. Зиглер, К. Методы проектирования программных систем / К. Зиглер Пер. с англ. - М.: Мир, 1985. - 328 с.

47. Йордон, Э. Путь камикадзе. Как разработчику программного обеспечения выжить в безнадежном проекте / Э. Йордон Пер. с англ. - М.: Издательство "ЛОРИ", 2000. - 256 с.

48. Катленд, Н. Вычислимость. Введение в теорию рекурсивных функций. / Н. Катленд Пер. с англ. - М.: Мир, 1983. - 256 с.

49. Кауфман, В. Ш. Языки программирования. Концепции и принципы / В. Ш. Кауфман М.: Радио и связь, 1993. - 432 с.

50. Крюков, А. П. Программирование на языке R-Лисп / А. П. Крюков, А. Я. Родионов, А. Ю. Таранов М.: Радио и связь, 1991. - 192 с.

51. Легалов, А.И. Сочетание процедурного и объектного подходов при разработке программ / А. И. Легалов // Вестник Красноярскогогосударственного технического университета. Сб. научных трудов. Вып. 10. -Красноярск, 1997.-С. 102-109.

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

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

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

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

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

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

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

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

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

61. Легалов, А. И. На пути к переносимым параллельным программам / А. И. Легалов, Ф. А. Казаков, Д. А. Кузьмин, Д. В. Привалихин // Открытые системы. 2003. - № 5. - С. 36-42.

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

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

64. Лингер, Р. Теория и практика структурного программирования / Р. Лингер, X. Миллс, Б. Уитт М.: Мир, 1982. - 406 с.

65. Льюис, Ф. Теоретические основы проектирования компиляторов / Ф. Льюис, Д. Розенкранц, Р. Стирнз М.: Мир, 1979.

66. Маккиман, У. Генератор Компиляторов / У. Маккиман М.: Статистика, 1980.

67. Маклаков, С. В. BPwin и ERwin. CASE-средства разработки информационных систем / С. В. Маклаков М.: ДИАЛОГ-МИФИ, 1999. -256 с.

68. Маслов, В.В. Основы программирования на языке Перл / В. В. Маслов М.: Радио и связь, Горячая линия - Телеком, 1999. - 144 с.

69. Маурер, У. Введение в программирование на языке ЛИСП / У. Маурер М.: Мир, 1976. - 104 с.

70. Мейерс, С. Эффективное использование С++. 50 рекомендаций по улучшению ваших программ и проектов / С. Мейерс Пер. с англ. - М.: ДМК, 2000.-240 с.

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

72. Мейерс, С. Эффективное использование STL. Библиотека программиста / С. Мейерс СПб.: Питер, 2002. - 224 с.

73. Немюгин, С. Изучаем Turbo Pascal / С. Немюгин, Л. Перколаб -СПб., Питер, 2000.

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

75. Остераут, Дж. Сценарии: высокоуровневое программирование для XXI века / Дж. Остераут // Открытые системы. №3,1998.

76. Пешио К. Никлаус Вирт о культуре разработки ПО / К. Пешио // Открытые системы. №1,1998. С. 41-44.

77. Райтингер, М. Visual Basic 6: полное руководство / М. Райтингер -Киев: "BHV-Киев", 1999. 720 с.

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

79. Роджерсон, Д. Основы СОМ / Д. Роджерсон Пер. с англ. - М.: Издательский отдел "Русская редакция" ТОО "Channel Trading Ltd.", 1997. -376 с.

80. Сибуя, М. Алгоритмы обработки данных / М. Сибуя, Т. Ямамото -Пер. с япон. М.: Мир, 1986. - 218 с.

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

82. Стерлинг, Л. Искусство программирования на языке Пролог / Л. Стерлинг, Э. Шапиро Пер с англ. - М.: Мир, 1990. - 235 с.

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

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

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

86. Фокс, Дж. Программное обеспечение и его разработка / Дж. Фокс -М.: Мир, 1985.-368 с.

87. Фролов, Г.Д. Практический курс программирования на языке PL/1 / Г. Д. Фролов, В. Ю. Олюнин М.: Наука, 1983.

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

89. Хендерсон, П. Функциональное программирование. Применение и реализация / П. Хендерсон Пер. с англ. - М.: Мир. - 1983. - 349 с.

90. Хиллер, С. Microsoft Visual Basic, Scripting Edition в действии. / С. Хиллер Пер. с англ. - СПб.: Питер, 1997. - 448 с.

91. Холстед, М. X. Начала науки о программах. / М. X. Холстед Пер. с англ. - М.: Финансы и статистика, 1981. - 128 с.

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

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

94. Ю1.Шалыто, А. А. SWITCH-технология. Алгоритмизация и программирование задач логического управления / А. А. Шалыто СПб.: Наука, 1998. - 628 с.

95. Шалыто, А. А. Преобразование итеративных алгоритмов в автоматные / А. А. Шалыто, Н. И. Туккель // Программирование, 2002, №5. -С.12-26.

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

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

98. ПО.Шлеер, С. Объектно-ориентированный анализ: моделирование мира в состояниях / С. Шлеер, С. Меллор Пер. с англ. - Киев: Диалектика, 1993.-240 с.

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

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

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

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