Автоматизация разработки трансляторов мультисинтаксических языков программирования мультиверсионных программных систем тема диссертации и автореферата по ВАК РФ 05.13.11, кандидат технических наук Кузнецов, Александр Сергеевич
- Специальность ВАК РФ05.13.11
- Количество страниц 136
Оглавление диссертации кандидат технических наук Кузнецов, Александр Сергеевич
ВВЕДЕНИЕ.
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 Выводы по четвертой главе.
Рекомендованный список диссертаций по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК
Компонентная программная архитектура мультиверсионных систем обработки информации и управления2006 год, кандидат технических наук Поздняков, Дмитрий Александрович
Инструментальные средства формирования мультиверсионной архитектуры отказоустойчивых программных систем2008 год, кандидат технических наук Штенцель, Артем Владимирович
Мультиверсионная среда исполнения для отказоустойчивых программных комплексов систем управления2009 год, кандидат технических наук Котенок, Андрей Владимирович
Компонентная распределенная архитектура мультиверсионного программного обеспечения отказоустойчивых систем управления2007 год, кандидат технических наук Чикизов, Алексей Александрович
Методы и средства формирования промежуточного языка при разработке программного обеспечения информационно-аналитических систем газовой отрасли2006 год, кандидат технических наук Евстифеев, Андрей Александрович
Введение диссертации (часть автореферата) на тему «Автоматизация разработки трансляторов мультисинтаксических языков программирования мультиверсионных программных систем»
Как показали исследования последних лет, качество работы любой технической системы напрямую зависит от надежности и отказоустойчивости применяемого программного обеспечения. Для современных критичных по надежности информационно-управляющих систем (ИУС), учитывая рост сложности и размеров их математического и программного обеспечения, существенно повысились требования со стороны заказчика и пользователей к их качеству, надежности функционирования и безопасности применения. По мере расширения применения и увеличения сложности ИУС выделились области (например, авиация и космос, связь, атомная промышленность, и т. п.), в которых ошибки или недостаточное качество программного обеспечения могут нанести ущерб, значительно превышающий положительный эффект от их использования. В этих критических случаях недопустимы аномалии и дефекты функционирования математического и программного обеспечения ИУС при любых искажениях исходных данных, сбоях, частичных отказах аппаратуры и других ситуацияхт
Среди специалистов, занимающихся вопросами надежности вычислительных и программных систем, можно выделить таких отечественных и зарубежных ученых как В.В. Липаев, В.Г. Хорошевский, М.М. Горбунов-Посадов, В.В. Воеводин, А.Г. Мамиконов, Е.А. Микрин, 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 наименований.
Похожие диссертационные работы по специальности «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», 05.13.11 шифр ВАК
Исследование и разработка метода графического программирования для ЭВМ1984 год, кандидат физико-математических наук Мощицкий, Александр Викторович
Система анализа архитектурной надежности программного обеспечения2011 год, кандидат технических наук Новой, Александр Валерьевич
Модели и реализация транслирующих компонентов системы функционального программирования2009 год, кандидат физико-математических наук Стасенко, Александр Павлович
Система мультиверсионного формирования программного обеспечения управления космическими аппаратами1997 год, доктор технических наук Ковалев, Игорь Владимирович
Герт-анализ мультиверсионных программных архитектур информационно-управляющих систем2010 год, кандидат технических наук Ковалев, Павел Владимирович
Заключение диссертации по теме «Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей», Кузнецов, Александр Сергеевич
4.4 Выводы по четвертой главе
Описанное в предыдущих разделах инструментальное средство при соблюдении ограничений, названных в параграфе 4.1, обладает следующими преимуществами:
1. Улучшение качества программного кода как следствие использования стандартных спецификаций и типовых алгоритмических и программных средств, прошедших апробацию десятилетиями практического использования.
2. Уменьшение времени на разработку трансляторов мультисинтаксических языков программирования за счет повторного использования готовых отлаженных спецификаций.
3. Уменьшение времени на отладку программ трансляции, созданных на основе существующих спецификаций flex и BYacc/bison/Zubr изза тесной взаимосвязи фаз лексического и синтаксического анализа процесса трансляции и за счет их объединения в одной входной спецификации.
4. Снижение вероятности появления ошибок проектирования и выявление их на раннем этапе благодаря использованию автоматизированного средства вместо ручного построения трансляторов.
5. Возможное совмещение схем компиляции и интерпретации в одном и том же трансляторе для разных частей программы, написанной на мся.
Два описанных в параграфе 4.3 мультиверсионных проекта позволяют говорить об уместности практического использования как мультисинтаксических языков программирования для реализации мультиверсионных программных систем, так и разработанной автоматизированной системы построения средств трансляции МСЯ.
ЗАКЛЮЧЕНИЕ
• Создан инструментарий разработки мультиверсионных программных систем, реализующий концепцию мультисинтаксических языков программирования и, в отличие от традиционного подхода, не требующий запуска нескольких трансляторов множества языков.
• Для построения трансляторов мультисинтаксических языков синтезировано устройство их распознавания - мультиавтомат с магазинной памятью, содержащий множество МП-автоматов, по одному на каждый включаемый распознаваемый язык.
• Модифицирован алгоритм восходящего синтаксического анализа ЬАЫ1(1) с учетом особенностей мультисинтаксического языка программирования. Получен и протестирован алгоритм тЬАЫ1(1); его вычислительная сложность незначительно превышает ЬАЬЯ(1).
• Разработана и внедрена в эксплуатацию система МиУасс построения трансляторов мультисинтаксических языков программирования мультиверсионных систем.
• Экспериментально показано, что применение мультисинтаксических языков программирования мультиверсионных систем позволяет снизить количество ошибок на этапе эксплуатации до 50%.
Результаты выполнения тестов подтвердили целесообразность применения мультисинтакисческих языков программирования при создании мультиверсионных программных систем при условии использования разработанной автоматизированной системы построения трансляторов.
Список литературы диссертационного исследования кандидат технических наук Кузнецов, Александр Сергеевич, 2009 год
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. Card, D. "A Software Technology Evaluation Program". / D. Card // Information and Software Technology 29, no.6 (July/August), 1987. P. 291300.
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. Landin, 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. Vallet, 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.
Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.