И.А. Волкова, И.Г. Головин, Л.Е. Карпов - Системы программирования
Описание файла
PDF-файл из архива "И.А. Волкова, И.Г. Головин, Л.Е. Карпов - Системы программирования", который расположен в категории "". Всё это находится в предмете "практика расчётов на пэвм" из 3 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст из PDF
Московский Государственный Университетимени М. В. ЛомоносоваФакультет вычислительной математики и кибернетикиИ. А. Волкова, И. Г. Головин, Л. Е. КарповСистемы программированияУчебное пособиеМосква2009УДКББКПечатается по решению Редакционно-издательского советафакультета вычислительной математики и кибернетикиМГУ им. М.
В. ЛомоносоваРецензенты:проф., д.ф.-м.н. Машечкин И. В.доцент, к.ф.-м.н. Терехин А. Н.Волкова И. А., Головин И. Г., Карпов Л. Е.Системы программирования: Учебное пособие. – М.:Издательский отдел факультета ВМК МГУ (лицензия ИД № 05899от 24.09.2001), 2009 – 129 с.ISBN 978-5-89407-400-9Настоящее пособие является дополнением к ранее выпущенномунесколькими изданиями пособию (Волкова И. А., Руденко Т.
В. "Формальныеграмматики и языки. Элементы теории трансляции") по курсу “Системыпрограммирования”, который читается на факультете ВМ и К МГУ им. М. В.Ломоносова с середины 1990-х годов. В течение всего времени в курсе излагалисьосновы построения систем программирования и тенденции их развития, однако, в ранеевыпущенных пособиях эти темы, давшие название всему курсу, отражения неполучили. Настоящее пособие восполняет этот пробел.В основе курса – изучение комплексной системы программирования,обеспечивающей поддержку всего жизненного цикла программных продуктов, начинаяот их проектирования и заканчивая их сопровождением в процессе эксплуатации.УДКББКISBN 978-5-89407-400-9© Издательский отдел факультетавычислительной математики и кибернетикиМГУ им. М.
В. Ломоносова, 2009© Волкова И.А., Головин И.Г., Карпов Л.Е.,2009Оглавление1.Жизненный цикл программного продукта1.1. Этапы жизненного цикла1.2. Основные требования к системам программирования1.3. Основные компоненты систем программирования2. Классическая система программирования2.1. Общая схема работы систем программирования2.2. Интегрированная среда разработки3. Компоненты классической системы программирования3.1. Редакторы текстов3.1.1. Виды текстовых редакторов3.1.2. Лексический анализ “на лету”3.2. Трансляторы, компиляторы, интерпретаторы3.2.1. Схемы работы трансляторов3.3.3.4.3.5.3.6.3.2.2.
Смешанная стратегия трансляцииКомпилятор, как основной компонент системы программирования3.3.1. Общая схема работы компилятора3.3.1.1. Основные компоненты компилятора и фазы компиляции3.3.1.2. Однопроходный компилятор3.3.2. Задачи семантического анализа3.3.2.1. Проверка контекстных условий3.3.2.2. Дополнение внутреннего представления3.3.2.3. Проверка правил программирования3.3.2.4 Разнесение имен по пространствам именования3.3.3. Внутреннее представление программ3.3.4. Оптимизация в компиляторах3.3.4.1. Машинно-независимая оптимизация3.3.4.2. Машинно-зависимая оптимизация3.3.5. Основные методы динамического распределения памяти3.3.6.
Генерация кодаРедакторы связей: назначение, принципы работыЗагрузчики: основные функции, принципы работыТехника работы с библиотеками3.6.1. Статические библиотеки3.6.2. Динамически загружаемые библиотеки3.6.3. Основные типы библиотек3.6.3.1. Библиотеки функций, процедур и макроопределений3.6.3.2. Библиотеки классов3.6.3.3. Библиотеки компонентов3561112161717212121232425262727273033343535363741434851576062636364666667683.6.3.4. Критерии проектирования стандартных библиотек3.7. Средства конфигурирования3.8. Системы управления версиями программных комплексов3.9. Средства отладки и тестирования программ3.10.
Профилировщики3.11. Справочные системы4. Краткий обзор современных систем программирования4.1. Компонентный подход и визуальное программирование4.2. Системы программирования компании Borland4.2.1. Turbo Pascal4.2.2. Delphi4.2.3. C++ Builder4.3. Системы программирования компании Microsoft4.3.1. Visual Basic69717275798082828383858888894.3.2. VBA4.3.3. Visual C++4.3.4. Концепция .NET и C#4.4. Системы программирования ОС UNIX и Linux4.5. Проект GNU4.6.
Системы программирования компании IBM4.6.1. Комплексная система программирования Rational Software4.6.2. Интегрированная среда разработки Eclipse4.6.3. Системы программирования ЭВМ zSeries5. Разработка распределенных программ5.1. Системы клиент-сервер5.2. Технологии COM/DCOM5.3. Брокеры объектов CORBA5.4. Серверы приложений и сетевые службы90909193959898991001031031061081116.114114119124Средства автоматического грамматического разбора6.1.
Построение лексических анализаторов по регулярным выражениям6.2. Автоматизация построения синтаксических анализаторовЛитература4Авторы выражают глубокую признательностьТамаре Васильевне Руденко, советы которойпомогли им при подготовке настоящего пособия.1. Жизненный цикл программного продуктаВ иерархии программно-аппаратного обеспечения системам программированияотводится место между программами управления логическими ресурсами иприкладным программным обеспечением:прикладное программное обеспечениесистемы программированияпрограммы управления логическими ресурсамипрограммы управления физическими ресурсамиаппаратураОпределение:системойпрограммированияназываетсякомплекспрограммных средств, предназначенных для поддержки программного продукта напротяжении всего жизненного цикла этого продукта.Для обозначения результатов труда программистов обычно использованиеследующих терминов: программа, программный продукт и системный (илиинтегрированный) программный продукт.
Программа создается для решенияотдельной задачи автором программы и используется в некоторой конкретнойоперационной среде. Программа неотделима от ее автора. Программным продуктомназывается такая программа, которая работает без авторского присутствия в рамкахнекоторого набора операционных сред. Программный продукт может исполняться,тестироваться и модифицироваться без участия автора (он отчужден от автора).Качество программного продукта должно быть существенно выше качества обычнойпрограммы.
Для программных продуктов разрабатывается документация, необходимаядля пользователей, чтобы они могли работать с программным продуктом в целяхрешения собственных задач, и разработчиков, модифицирующих продукт.Программный продукт должен быть настраиваемым, причем эта настройка должнавыполняться путем задания некоторых параметров настройки.Системный (интегрированный) программный продукт есть комплекспрограммных продуктов (пакет). Примером интегрированного программного продуктаможет служить пакет Microsoft Office, включающий в себя около десятка программныхпродуктов, обладающих согласованными интерфейсами. Способы задания параметров,режимов работы и действий пользователя во всех компонентах одинаковы или похожи,хотя каждый компонент обладает собственными специализированными средствами.Между компонентами легко организовать передачу данных.
Например, подготовивсложную электронную таблицу (Excel), ее легко презентовать в наглядном виде(PowerPoint).51.1. Этапы жизненного циклаРабота с программой и над программой (а значит и использование системыпрограммирования) продолжается на протяжении всей жизни программ, которая улюбой из них состоит из трех фаз – фазы разработки, фазы использования и фазысопровождения:Фаза использованияФаза разработкиФаза сопровождения(продолжающейся разработки)Разработка может вестись коллективом разработчиков новых продуктов.Сопровождение может передаваться другому коллективу, может быть другойорганизации.
Использование программных продуктов часто ведется совсем другимилюдьми. Фаза разработки предшествует двум другим фазам, которые проходят вовремени параллельно друг другу. Для больших и длительно используемых программфазу сопровождения иногда называют фазой продолжающейся разработки.Необходимость сопровождения объясняется двумя причинами. Во-первых, в большойпрограмме всегда имеется некоторое количество ошибок, которые не выявляются притестировании. Во-вторых, программа должна развиваться: появляются новыепотребности, пожелания, к вычислительным машинам подключаются новые видывнешних устройств, с которыми программа должна научиться взаимодействовать.Неправильный подход к организации процесса разработки, применениенеподходящих для этого средств разработки и систем программирования можетпривести к искажению жизненного цикла получающихся программ, к возникновениюпатологического цикла с разрывом между разработкой и сопровождением:Фаза использованияФаза разработкиФаза сопровождения(продолжающейся разработки)Такого рода процессы часто возникают, если разработчики программногообеспечения пренебрегают правилами и стандартами разработки.
С этим можно былобы примириться, если бы разрывы между разработкой и сопровождением не приводилик разрыву между разработкой и использованием:Фаза использованияФаза разработкиФаза сопровождения(продолжающейся разработки)6Приведенные схемы соответствуют, так называемым, одноразовым разработкам.Гораздо интереснее и продуктивнее такие отступления от классической моделижизненного цикла, в которых фаза сопровождения становится непосредственнымпродолжением разработки, при этом разработчик сам сопровождает свои программы:Фаза использованияФаза сопровожденияФаза разработки(продолжающейся разработки)Процессы разработки и сопровождения включают в себя этапы:•••••••••Анализ (определение) требованийПроектированиеНаписание текста программ (программирование, “кодирование”)Компоновка или интеграция программного комплексаВерификация, тестирование и отладкаДокументированиеВнедрениеТиражированиеСопровождение, повторяющее все предыдущие этапыЭтап постановки задачи и определения и анализа требований во многом неформализован, но он влияет на всю разработку и качество конечного продукта.
На этомэтапе необходимо выяснить потребности конечного пользователя. Часто для этогоприходится создавать общий с заказчиком словарь терминов – систему понятий,посредством которой можно будет общаться с пользователями. Выработанная системапонятий должна использоваться для описания объектов автоматизации, их сходства сдругими объектами и их своеобразия, то есть отличий от объектов, остающихся зарамками осуществляемого проекта разработки программного обеспечения.На первом этапе создаются материалы различных видов: от простого текста дочастично формализованных описаний требований.