Помощь в учёбе, очень быстро...
Работаем вместе до победы

Автоматизация разработки трансляторов мультисинтаксических языков программирования мультиверсионных программных систем

ДиссертацияПомощь в написанииУзнать стоимостьмоей работы

Традиционный подход к созданию версий модулей мультиверсионных систем предполагает использование одной и той же среды программирования. С учетом требования разнообразия по используемым языкам это влечет за собой необходимость применения для них соответствующего количества трансляторов. Это в свою очередь влечет трудности по обеспечению совместимости модулей и версий, в том числе, по организации… Читать ещё >

Содержание

  • 1. ПРОБЛЕМЫ СОЗДАНИЯ НАДЕЖНОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
    • 1. 1. Проблемы, возникающие при проектировании надежных программных систем
    • 1. 2. Обнаружение ошибок
    • 1. 3. Проблемы проектирования программных систем
    • 1. 4. Методология мультиверсионного программирования как средство повышения надежности программного обеспечения
    • 1. 5. Критические замечания по современному состоянию методологии мультиверсионного программирования
    • 1. 6. Выводы по первой главе
  • 2. СОЗДАНИЕ МУЛЬТИВЕРСИОННОГО ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ С ПРИМЕНЕНИЕМ МУЛЬТИСИНТАКСИЧЕСКИХ ЯЗЫКОВ И ТЕХНОЛОГИЙ
    • 2. 1. Неформальное определение мультисинтаксического языка
    • 2. 2. Обзор современных мультисинтаксических средств
      • 2. 2. 1. Использование ассемблерных вставок при программировании на языках высокого уровня
      • 2. 2. 2. Скриптовые языки для создания динамических Web-страниц
      • 2. 2. 3. Встраивание языков запросов к базам данных в языки программирования
      • 2. 2. 4. Концепция Domain Specific Languages
      • 2. 2. 5. Синтаксис включений в программы на одном языке кода на другом языке
    • 2. 3. Формальное описание мультисинтаксического языка
    • 2. 4. Выводы по второй главе
  • 3. МОДЕЛИРОВАНИЕ РАСПОЗНАВАТЕЛЕЙ МУЛЬТИСИНТАКСИЧЕСКИХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ
    • 3. 1. Мультиавтоматы с магазинной памятью как средство распознавания мультисинтаксических языков
    • 3. 2. Формирование таблиц синтаксического анализа мультисинтаксических языков программирования
    • 3. 3. Лексический анализ мультисинтаксических языков программирования
    • 3. 4. Семантический анализ мультисинтаксических языков программирования и этап синтеза компилятора МСЯ
    • 3. 5. Выводы по третьей главе
  • 4. АВТОМАТИЗАЦИЯ РАЗРАБОТКИ ТРАНСЛЯТОРОВ МУЛЬТИСИНТАКСИЧЕСКИХ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ МУЛЬТИВЕРСИОННЫХ ПРОГРАММНЫХ СИСТЕМ
    • 4. 1. Система построения трансляторов мультисинтаксических языков программирования мультиверсионных систем MuYacc
    • 4. 2. Входная спецификация системы MuYacc
    • 4. 3. Применение трансляторов МСЯ при разработке мультиверсионного ПО
      • 4. 3. 1. Проект IntegrAsm — компилятор языка С, обеспечивающий вставки ассемблерного кода
      • 4. 3. 2. Проект MulQuery — компилятор языка С, обеспечивающий включение кода на языках запросов к СУБД
      • 4. 3. 3. Использование трансляторов MulQuery и IntegrAsm для разработки мультиверсионного ПО
    • 4. 4. Выводы по четвертой главе

Автоматизация разработки трансляторов мультисинтаксических языков программирования мультиверсионных программных систем (реферат, курсовая, диплом, контрольная)

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

Среди специалистов, занимающихся вопросами надежности вычислительных и программных систем, можно выделить таких отечественных и зарубежных ученых как В. В. Липаев, В. Г. Хорошевский, М.М. Горбунов-Посадов, В. В. Воеводин, А. Г. Мамиконов, Е. А. Микрин, A.M. Половко, И. В. Ковалев, A. Avizienis, R. Glass, В. Воет, С. Breshears, А. Moralez, Е. Lee.

Одним из подходов к созданию современных отказоустойчивых систем является мультиверсионная методология избыточности (MVP — Multi-Version Programming). Данная методология позволяет добиться программной избыточности, которая нацелена на предупреждение случайных ошибок и сбоев. Кроме того, работа системы защищена от ошибок, которые могли быть получены еще при проектировании и реализации программного обеспечения. Фактически, чем больше глубина мультиверсионности, то есть чем больше количество версий, обеспечивающих выполнение программных модулей, тем выше вероятность правильной работы программного обеспечения, полученного в рамках данной методологии.

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

• языки программирования модулей;

• алгоритмы решения задач;

• средства программирования;

• методы тестирования.

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

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

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

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

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

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

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

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

• анализ современных методов повышения отказоустойчивости программного обеспечения и методик построения и повышения качества мультиверсионного программного обеспечения;

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

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

• модификация существующих алгоритмов трансляции мультисинтаксических языков программирования;

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

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

Научная новизна результатов работы:

• впервые получено формальное описание синтаксиса мультисинтаксического языка как совокупности универсального языка программирования и набора специализированных языков;

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

• модифицирован алгоритм восходящего синтаксического анализа ЬА1Л (1), на основе которого создан алгоритм тЬАЫ1(1) восходящего синтаксического анализа мультисинтаксических языков программирования;

• разработана система построения трансляторов мультисинтаксических языков программирования мультиверсионных систем.

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

Значение для практики. Разработанная методика автоматизированного построения трансляторов мультисинтаксических языков программирования мультиверсионных программных систем позволяет снизить негативный эффект от взаимного влияния мультиверсионных модулей и повысить качество их кода за счет применения автоматизированных средств. Это, в свою очередь, уменьшит степень зависимости сбоев, ошибок отказов отдельных модулей программных систем. Созданное таким образом программное обеспечение обладает высоким уровнем отказоустойчивости и позволяет эффективно реализовать новые программные средства защиты отказоустойчивых ИУС.

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

Апробация работы. Основные положения и результаты работы докладывались и обсуждались на X и XII Международных научных конференциях «Решетневские чтения» в 2006 и 2008 гг., Второй, Третьей и Пятой Всероссийских конференций «Молодежь и наука: начало 21-го века» в 2006, 2007 и 2009 гг. Докладывались на научно-технических семинарах кафедры информатики Сибирского федерального университета, НИИ Систем управления, волновых процессов и технологий (2005;2008 гг.).

При использовании созданной автором системы построения трансляторов мультисинтаксических языков программирования мультиверсионных систем были реализованы два компилятора для диалектов языка программирования С с возможностью включения кода на других языках, которые были внедрены в эксплуатацию, соответственно, в ОАО «Информационные спутниковые системы» имени академика М. Ф. Решетнева (г. Железногорск) и Центре разработки программного обеспечения компании «Астрософт» (г. Красноярск).

Материалы диссертационной работы также внедрены в учебный процесс и используются при чтении лекций студентам кафедры «Информатика» Сибирского федерального университета по дисциплине «Теория языков программирования и методы трансляции».

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

• Формальное описание синтаксиса мультисинтаксических языков программирования мультиверсионных систем на основе контекстно-свободных грамматик.

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

• Алгоритм восходящего синтаксического анализа мультисинтаксических языков программирования тЬАЫ1(1).

• Система построения трансляторов мультисинтаксических языков программирования для проектирования и реализации мультиверсионного программного обеспечения.

Публикации. По материалам диссертации опубликовано 8 печатных работ, из них: статей в рецензируемых изданиях по списку ВАК — 4- статей в сборниках научных работ — 4. Осуществлена регистрация программной разработки в Отраслевом фонде алгоритмов и программ.

Структура и объем работы. Диссертация состоит из введения, четырех глав, заключения, списка литературы и четырех приложений. Работа содержит 110 страниц текста, 20 рисунков и 3 таблицы.

Список литературы

содержит 118 наименований.

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

Описанное в предыдущих разделах инструментальное средство при соблюдении ограничений, названных в параграфе 4.1, обладает следующими преимуществами:

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

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

3. Уменьшение времени на отладку программ трансляции, созданных на основе существующих спецификаций flex и BYacc/bison/Zubr изза тесной взаимосвязи фаз лексического и синтаксического анализа процесса трансляции и за счет их объединения в одной входной спецификации.

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

5. Возможное совмещение схем компиляции и интерпретации в одном и том же трансляторе для разных частей программы, написанной на мся.

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

ЗАКЛЮЧЕНИЕ

.

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

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

• Модифицирован алгоритм восходящего синтаксического анализа ЬАЫ1(1) с учетом особенностей мультисинтаксического языка программирования. Получен и протестирован алгоритм тЬАЫ1(1) — его вычислительная сложность незначительно превышает ЬАЬЯ (1).

• Разработана и внедрена в эксплуатацию система МиУасс построения трансляторов мультисинтаксических языков программирования мультиверсионных систем.

• Экспериментально показано, что применение мультисинтаксических языков программирования мультиверсионных систем позволяет снизить количество ошибок на этапе эксплуатации до 50%.

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

Показать весь текст

Список литературы

  1. Abbott, RJ. Resourceful Systems for Fault Tolerance, Reliability, and Safety / RJ. Abbott //ACM Computing Surveys, Vol.22, No. l, March 1990. R 35−68.
  2. Avizienis, A. The Methodology of N-Version Programming, in R. Lyu, editor, Software Fault Tolerance, John Wiley & Sons, 1995. R 23−47.
  3. Aycock, J. Practical Earley Parsing. / J. Aycock, R.N. Horspool // Computer Journal, vol. 45, 6 (2002). P. 620−630.
  4. AT&T-Syntax электронный ресурс. http://sig9.com/articles/att-syntax.
  5. Backus, J.W. Revised Report on the Algorithmic Language ALGOL 60. / J.W. Backus et al., in P. Naur editions. // Commun. ACM, vol. 6, no. 1, p. 1−17, January 1960.
  6. Bell, J. Software design for reliability and reuse: a proof-of-concept demonstration. / J. Bell et al. // Proceedings of the Conference on TRI-Ada '94, ACM, ACM Press, New York, p. 396−404.
  7. Bell, C. Learn to Tango with D. / C. Bell, L. I. Igesund, S. Kelly, M. Parker. Berkeley, CA: Apress, 2008. 208 p.
  8. Boehm, B. Software Cost Estimation with COCOMO II. / B. Boehm, Ch. Abts,
  9. A. Brown et al. Boston, MA: Addison-Wesley. — 544 p.
  10. Boehm, B. Balancing Agility and Discipline: A Guide for the Perplexed. /
  11. B. Boehm, R. Turner. Boston, MA: Addison-Wesley. — 268 p.
  12. , D. «A Software Technology Evaluation Program». / D. Card // Information and Software Technology 29, no.6 (July/August), 1987. P. 291 300.
  13. Character sets электронный ресурс. http://www.iana.org/assignments/character-sets.
  14. Code Generation Network электронный ресурс. -http://www.codegeneration.net.
  15. DeMarco, Т. Peopleware: Productive Projects and Teams, 2d ed. / T. DeMarco, T. Lister. New York: Dorset House. — 246 p.
  16. DeRemer, F. Efficient Computation of LALR (l) Look-Ahead Sets./ R DeRemer, T.J. Pennello // ACM Trans. Program. Lang. Syst. Vol. 4 (1982). -№ 4.-P. 615−649.
  17. Standard ECMA-262. ECMAScript Language Specification электронный ресурс. http://www.ecma-international.org/publications/files/ECMA-ST7Ecma-262.pdf.
  18. Standard ECMA-334. C# Language Specification электронный ресурс. -http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-334.pdf.
  19. Evans, E. Domain-Driven Design: Tackling Complexity in the Heart of Software. / E. Evans. Boston, MA: Addison-Wesley. — 576 p
  20. Fowler, M. Domain Specific Languages электронный ресурс. — http://martinfowler.com/dslwip/.
  21. FreeBasic электронный ресурс. — http://www.freebasic.net.
  22. FreePascal электронный ресурс. — http://freepascal.ru/.
  23. Glass, R. Modern Programming Practices: A Report from Industry. / R. Glass. — Engleewood Cliffs, NJ: Prentice Hall, 1982. 304 p.
  24. Grady, R. Measuring and Managing Software Maintenance. / R. Grady // IEEE Software, Vol. 4 no 9 (September), 1987. P. 34−45.
  25. Grune, D. Parsing Techniques: a practical guide. / D. Grune, C. Jakobs. Ellis Horwood, Chichester, 1990. — 334 p.
  26. Hecht, H. Fault tolerant software. / H. Hecht // IEEE Trans. Reliability, Vol. R-28, 1979.-P. 227−232.
  27. Johnson, S.C. Language development tools / S.C. Johnson, M. Lesk // Bell System Technical J. 57:6, 1978. P. 2155−2175.
  28. Jones, C. Programming Productivity. / C. Jones. New York: McGraw-Hill, 1986−280 p.
  29. Jones, C. Software Assessments, Benchmarks, and Best Practices. Reading. -Boston, MA: Addison-Wesley. 688 p.
  30. Kasami, T. An efficient recognition and syntax analysis algorithm for context-free languages / T. Kasami // AFCRL-65−758, Air Force Cambridge Research Laboratory, Bedford, Mass, 1965.
  31. Knuth, D. E. Semantics of context-free languages/ D.E. Knuth // Mathematical Systems Theory 2:2, 1968.-P. 127−145.
  32. Korenjak, A.J. A practical method for constructing LR (k) processors/ A.J. Korenjak // Commun. ACM 12 (11), 1969. P. 613−623.
  33. Kovalev, I.V. System of Multi-Version Development of Spacecrafts Control Software/ I.V. Kovalev. Berlin: Pro Universitate Verlag Sinzheim, 2001.-80 p.
  34. , P.J. «The next 700 programming languages». / P.J. Landin // Commun. ACM 9 (3). P. 157−166.
  35. Lee, P.A. Fault Tolerance, Principles and Practice / P.A. Lee, T. Andreson. — Engleewood Cliffs, NJ: Prentice/Hall International, 1981. 370 p.
  36. Lesk, M.E. Lex a lexical analyzer generator. / M.E. Lesk // Computing Science Technical Report 39, AT&T Bell Laboratories, Murray Hill, NJ, 1975.
  37. Levine, J. lex & yacc, Second Edition / J. Levine, T. Mason, D. Brown. -Sebastopol, CA: O’Reilly Media, 1992.-384 p.
  38. McLean, Ph. A Faster Earley Parser. / Ph. McLean, R.N. Horspool // Proceedings of Intl. Conference on Compiler Construction (CC'96), Linkoping, Sweden, April 1996, LNCS vol. 1060, Springer-Verlag, p. 281−293.
  39. Mernik, M. When and How to Develop Domain-Specific Languages. / M. Mernik, J. Heering, A. Sloane. // ACM Computing Surveys, vol. 37, no. 4, p. 316−344, December 2005.
  40. Mills, H. Software Productivity. / H. Mills. Boston, MA: Little Brown, 1983. — 274 p.
  41. Nierstrasz, O. Squeak by Example. / O. Nierstrasz, S. Ducasse, D. Pollet,
  42. Parr, Т. The Definitive ANTLR Reference Building Domain-Specific Languages. / T. Parr. Sebastopol, CA: O’Reilly Media, 2007. — 376 p.
  43. Pradhan, D.K. Fault-tolerant computer system design. / D.K. Pradhan. Upper Saddle River, NJ: Prentice/Hall International, 1996. — 550 p.
  44. Ramming, J. C (ed.). In: Proceedings of the USENIX Conference on Domain-Specific Languages, USENIX, Santa Monica, CA, USA, October 1997.
  45. RFC 2278 IANA Charset Registration Procedures http://tools.ietf.org/html/rfc2278.
  46. Schutzenberger, M.P. On context-free languages and pushdown automata / M.P. Schutzenberger // Information and Control 6:3 (1963). P. 246−264.
  47. Shapiro, M. Purpose-Built Languages. / M. Shapiro //ACM Queue, Vol. 7, No. 1, January 2009. P. 18−24.
  48. Silayeva, T. An Innovative Method for Program Reliability Evaluation / T. Silayeva, K.-E. Grosspietsch. Euromicro '95. Como (Italy), September 1995.
  49. SQL Standard электронный ресурс. http://www.wiscorp.com/SQLStandards.html.
  50. Spinellis, D. Notable design patterns for domain-specific languages. / D. Spinellis // The Journal of Systems and Software 56 (2001). P. 91−99.
  51. , J. «A Summary of Software Measurement Experiences in the Software Engineering Laboratory». / J. Vallet, F.E. McGarry. // Journal of Systems and• Software 9 No 2 (February), 1989 P. 137−148.
  52. V6lter, M. Model-Driven Software Development: Technology, Engineering, Management. / M. Volter, T. Stahl, J. Bettin et al. John Wiley & Sons, 2006. -444 p.
  53. World Wide Web Consortium — Web Standards электронный ресурс. -http ://www. w3. org.
  54. Windows 1251 электронный ресурс. -http://www.microsoft.com/globaldev/reference/sbcs/1251 .htm.
  55. Wirth, N. The design of a Pascal compiler. / N. Wirth // Software Practice and Experience 1:4, 1971, p. 309−333.
  56. Weber, S. Open Source Software in Developing Economies. / S. Weber. -http://www.ssrc.org/programs/itic/publications/ITSTmaterials/webernote2.pdf.
  57. Yourdon, E. Modern Structured Analysis. / E. Yourdon. New York: Yourdon Press, 1989.-672 p.
  58. , A.B. Программно-аппаратное обеспечение отказо- и катастрофоустойчивых систем управления и обработки информации. / А. В. Аниконов, М. Ю. Слободин, Р. Ю. Царев. М.: Макс-пресс, 2006. -244 с.
  59. Ахо, А. Компиляторы: принципы, технологии и инструментарий, 2 издание. / А. Ахо, М. Лам, Р. Сети, Дж. Ульман. М.: Издательский дом «Вильяме», 2008. — 1184с.
  60. , И.Ю. Основы проектирования приложений баз данных. / И. Ю. Баженова. М.: «Бином. Лаборатория знаний», 2006. — 326 с.
  61. , Ф. Мифический человеко-месяц или Как создаются программные системы. / Ф. Брукс. СПб.: Символ-Плюс, 2006. — 304 с.
  62. , В.А. Технологии программирования СОМ и СОМ+ для распределенных компьютерных систем / В. А. Волков, А. С. Кузнецов, А. А. Чикизов // Вестник университетского комплекса: Сб. науч. трудов.
  63. Красноярск: НИИ СУВПТ, 2006. № 9(23). — С. 79−87.
  64. , В.Э. Конструкции языков программирования. Приемы описания / В. Э. Вольфенгаген. М.: АО «Центр ЮрИнфоР», 2001. — 276 с.
  65. , Р. Методы управления проектированием программного обеспечения: Пер. с англ/ Р. Гантер, Е. К. Масловский. М.: Мир, 1981. — 392 с.
  66. Гриффитс, A. GCC. Настольная книга пользователей, программистов и системных администраторов / А. Гриффите. Киев: ООО «ТИД «ДС», 2004. — 624 с.
  67. , C.B. Программирование Web-страниц. JavaScript. VBScript / C.B. Глушаков, И. А. Жакин, Т. С. Хачиров. Харьков: Фолио, 2002. -390 с.
  68. Горбунов-Посадов, М. М. Расширяемые программы. / М.М.Горбунов-Посадов. М.: Полиптих, 1999. — 336 с.
  69. , Ю.А. Обзор перспективных технологий Microsoft.NET: Учебный курс. / Ю. А. Губанов СПб.: СПбГУ, 2006. — 106 с.
  70. , А.Ю. Мультиасемблерна мова програмування. / А. Ю. Дорошенко, М. В. Котюк, С. С. Нжолаев // Проблеми програмування. — 2008.—N 1.—С. 26−36.
  71. , В.В. «Об одном методе построения LR(1) анализатора. / В. В. Игнатов. // Вестн. Моск. ун та. Сер. 15. N 1, 1987. С. 55−61.
  72. , К. Язык ассемблера для процессоров Intel. / К. Ирвин. М.: Издательский дом «Вильяме», 2005. — 912 с.
  73. , И.А. Принципы формирования мультиверсионного программного комплекса / И. А. Капчинский, A.C. Кузнецов, A.B. Штенцель // Вестник Сиб. гос. аэрокосмич. ун-та. 2008. — Вып. 1 (18).-С. 18−23.
  74. , Ю.Г. Теория и технология программирования. Основы построения трансляторов. / Ю. Г. Карпов. СПб.: БХВ-Петербург, 2005. — 272с.
  75. , Д. Ориентация на язык. / Д. Кириллов. // Компьютерра. 2006.-№ 10.-С. 33−38.
  76. , C.K. Представление событий в нервных сетях. / С. К. Клини // Сб. «Автоматы». -М.:ИЛ, 1956. С. 15−67.
  77. , И.В. Система мультиверсионного формирования программного обеспечения управления космическими аппаратами: Диссертация на соискание ученой степени доктора технических наук / И. В. Ковалев // Красноярск: КГТУ, 1997. 228 с.
  78. Кодовая страница — Википедия электронный ресурс. — http://ru.wikipedia.ore/wiki/KoflQBaH страница
  79. , A.B. Построение интерпретаторов и компиляторов. Использование программ Bizon, Вуасс, Zubr. / A.B. Костельцев. М.: Наука и техника, 2001. — 224 с.
  80. , A.C. Инструментальное средство разработки трансляторов мультисинтаксических языков программирования. / A.C. Кузнецов // Вестник университетского комплекса: Сб.научн.трудов- Красноярск: ВСФ РГУИТП, НИИ СУВПТ, 2006-Вып.7(21). С.227−230.
  81. , A.C. Автоматизация процесса генерации компиляторов мультисинтаксических языков программирования / A.C. Кузнецов, И. В. Ковалев, Е. А. Веретенников // Вестник Сиб. гос. аэрокосмич. ун-та. -2007. Вып. 3(16). — С. 73−75.
  82. , A.C. Генерация компиляторов мультисинтаксических языков программирования мультиверсионных систем / A.C. Кузнецов, И. В. Ковалев // Международный журнал «Программные продукты и системы». -2008.-Вып. 4 (84).-С. 101−103.
  83. , A.C. Разработка мультиверсионных программ с использованием мультисинтаксических языков и технологий Текст. / A.C. Кузнецов //
  84. Вестник НИИ СУВПТ: Сб. науч. трудов. Красноярск: НИИ СУВПТ, 2008. -№ 26.-С. 25−42.
  85. , A.C. Моделирование распознавателей мультисинтаксических языков программирования мультиверсионных систем Текст. / A.C. Кузнецов // Вестник Сиб. гос. аэрокосмич. ун-та. — 2009. — Вып. 3 (24). — С. 62−66.
  86. , А.И. Трансляторы: методы разработки. Методическое обеспечение учебных курсов по основам разработки трансляторов электронный ресурс. — http://www.softcraft.ru/translat.shtml.
  87. , В.В. Качество программного обеспечения. / В. В. Липаев. М.: Финансы и статистика, 1983. — 263 с.
  88. , В.В. Проектирование программных средств: Учеб. пособие для вузов по спец. «Автом. сист. обр. информ. и упр.». / В. В. Липаев. М.: Высшая школа, 1990. — 303 с.
  89. Лотт, Дж. ActionScript 3.0. Сборник рецептов. / Дж. Лотт, Д. Шалл, К. Питере. СПб.: Символ-Плюс, 2007. — 608 с.
  90. , Ю.С. Использование ассемблера для оптимизации программ на С++. / Ю. С. Магда. СПб.: BHV-Петербург, 2004. — 496 с.
  91. , Ю.С. Ассемблер для процессоров Intel Pentium. / Ю. С. Магда. -СПб.: Питер, 2006. 410 с.
  92. , С. Совершенный код. Мастер-класс. / С. Макконнелл. М. Издательско-торговый дом «Русская редакция" — СПб.: Питер, 2005. — 896 с.
  93. , А. Г. Проектирование АСУ. / А. Г. Мамиконов. М.: Высшая школа, 1987.-304 с.
  94. , Е.А. Бортовые комплексы управления космическими аппаратами и проектирование их программного обеспечения. / Е. А. Микрин. М.: Издательство МГТУ им. Н. Э. Баумана, 2003. — 336 с.
  95. , А.Ю. Системное программное обеспечение. / А. Ю. Молчанов. СПб.: Питер, 2006. — 400 с.
  96. Набор символов — Википедия электронный ресурс. — Ьйр://ги^1к1ре<11а.ог§/ш1к1/Наборсимволов
  97. Осипов, Д. Delphi. Профессиональное программирование. / Д. Осипов.- СПб.: Символ-Плюс, 2006. 1056 с.
  98. , В.А. Программирование на С++/С# в Visual Studio.NET 2003. / В. А. Понамарев. СПб.: BHV-Петербург, 2004. — 352 с.
  99. Популярные скрипты электронный ресурс. http://cgi.myweb.ru/.
  100. Разработка скриптов электронный ресурс. http://www.script-coding.info/.
  101. , В.А. Подход к реализации среды разработки для DSL / В. А. Рябко // Проблеми програмування. — 2007. — N 4. — С. 3−12.
  102. Сергеев, А.П. HTML и XML. Профессиональная работа. / А. П. Сергеев, — Киев: Диалектика, 2004. 880 с.
  103. , И. Инженерия программного обеспечения / И. Соммервилл. М.: Издательский дом «Вильяме», 2002. 624 с.
  104. Тейнсли, Д. Linux и UNIX: программирование в shell. Руководство разработчика. / Д. Тейнсли. СПб.: BHV-Петербург, 2001. — 464 с.
  105. , Б. Практическое программирование на Tel и Tk (+ CD), 4-е изд. / Б. Уэлш. М.: Издательский дом «Вильяме», 2002. — 1136 с.
  106. Фаулер, М. UML. Основы. / М. Фаулер, К. Скотт. СПб.: Символ-Плюс, 2002. — 192 с.
  107. , Р. Знакомство с Microsoft Visual Studio 2005 Team System. / P. Хандхаузен. M.: Издательство «Русская редакция" — СПб.: Питер, 2006. -416 с.
  108. , Р. Основные концепции компиляторов. / Р. Хантер. М.: Издательский дом «Вильяме», 2002. — 256с.
  109. , Н. «Три модели для описания языка». / Н. Хомский // Кибернетический сборник. М. ИЛ, 1961. — Вып. 2. — С. 237−266.
  110. , Дж.Э. Введение в теорию автоматов, языков и вычислений, 2-е изд. / Дж.Э. Хопкрофт, Р. Мотвани, Дж.Д. Ульман. М.: Издательский Jдом «Вильяме», 2002. 528 с.
  111. Центральный Javascript-pecypc электронный ресурс. -http ://www. i avascript.ru.
  112. , И.В. Самоучитель HTML4. / И. В. Шапошников. -М.СПб.: БХВ-Петербург, 2001. 288 с.
  113. , Е.А. Распределенные информационно-управляющие системы: кластерная архитектура и мультиверсионное программное обеспечение: Монография. / Е. А. Энгель, В. А. Морозов, Р. Ю. Царев. Красноярск: ИПЦКГТУ, 2006.- 160 с.
  114. , Дж. Эффективный алгоритм анализа контекстно-свободных языков. / Дж. Эрли // Сб. «Языки и автоматы». М.: Мир, 1975. — С. 47−70.
  115. , Д. Распознавание и анализ контекстно-свободных языков за время п3/ Д. Янгер // Сб. «Проблемы математической логики». М.:Мир, 1970.-С. 344−362.
Заполнить форму текущей работой