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