WWW.DISS.SELUK.RU

БЕСПЛАТНАЯ ЭЛЕКТРОННАЯ БИБЛИОТЕКА
(Авторефераты, диссертации, методички, учебные программы, монографии)

 

Министерство образования и науки Украины

Севастопольский национальный технический университет

МЕТОДИЧЕСКИЕ УКАЗАНИЯ

к выполнению лабораторно - вычислительного практикума

по дисциплине

“Операционные системы и системное программирование.

Часть II - системное программирование” для студентов, обучающихся по направлению 05.0101 Компьютерные науки” всех форм обучения Севастополь 2010 Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) УДК 004. Методические указания к выполнению лабораторно - вычислительного практикума по дисциплине “Операционные системы и системное программирование. Часть II - системное программирование” для студентов, обучающихся по направлению 05.0101 - “Компьютерные науки” всех форм обучения/ Разраб. В.Ю. Карлусов. - Севастополь: Изд-во СевНТУ, 2010. – 36 с.

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

Методические указания рассмотрены и утверждены на заседании кафедры Информационных систем, протокол № 07 от 17 марта 2010 г.

Допущено учебно-методическим центром СевНТУ в качестве методических указаний.

Рецензент Апраксин Ю.К., д.-р техн. наук, профессор кафедры кибернетики и вычислительной техники.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

СОДЕРЖАНИЕ

Введение 1. Лабораторная работа № 1. “Исследование детерминированного конечного автомата” 2. Лабораторная работа № 2. “Исследование сканера при анализе простых языковых конструкций” 3. Лабораторная работа № 3. “Исследование алгоритма простого нисходящего распознавателя” 4. Лабораторная работа № 4. “Исследование алгоритма нисходящего распознавателя языка LL(k) грамматики” 5. Лабораторная работа № 5. “Исследование алгоритма простого восходящего распознавателя” 6. Лабораторная работа № 6. “Исследование алгоритма восходящего анализатора языка грамматики простого предшествования” 7. Лабораторная работа № 7. “Исследование алгоритма восходящего анализатора языка грамматики операторного предшествования” 8. Лабораторная работа № 8. “Исследование алгоритмов трансляции арифметических выражений” Заключение Библиографический список Приложение А Приложение Б Приложение В Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

ВВЕДЕНИЕ

Одним из немаловажных компонентов информационных технологий является компьютерный анализ синтаксиса текстов. К настоящему времени элементы его присутствуют практически повсеместно: в трансляторах языков программирования – от ассемблеров до объектно-ориентированных алгоритмических языков, контроля орфографии редактора “Word”, с использованием которого набраны настоящие методические указания, разнообразных переводчиков типа Prompt, РУМП и им подобных, наконец, квинтэссенции информационных систем – системах искусственного интеллекта. Поэтому трансляторы являются важной практической областью научных исследований, связанных с изучением ЭВМ[4].

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

наряду со значительными объёмами текстов соответствующих программ, алгоритмы генерации и оптимизации [6, 13] кодов обладают известной степенью инвариантности и универсализма, что, в немалой степени, препятствует формированию нетривиальных заданий при их изучении и исследовании. Последнее обстоятельство, как известно, толкает студента на путь формалистики и поверхностного изучения дисциплины.

Варианты практических заданий сформулированы на основании [8, 10, 14], примеры аналитических преобразований и вычислений, необходимых в ходе выполнения работ, помещены в [10 – 12].

“ИССЛЕДОВАНИЕ ДЕТЕРМИНИРОВАННОГО КОНЕЧНОГО АВТОМАТА”

1.1. Научиться производить построение детерминированных конечных автоматов (ДКА), допускающих определённые цепочки символов языка.

1.2. Освоить приёмы описания конечных автоматов (КА) в виде графов, таблиц переходов и регулярных выражений.

1.3. Научиться выполнять построения ДКА по недетерминированным конечным автоматам (НКА).

1.3. Научиться проводить построение минимальных детерминированных конечных автоматов (МДКА).

Конечным автоматом (КА), под которым, в дальнейшем, будем понимать конечный автомат Мили, формально называют совокупность следующих объектов [15, 16, 19]:

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) где Q – конечное множество состояния автомата; - алфавит входных символов (букв или литер); - функция переходов КА, определяемая на декартовом произведении Q; q0 Q – начальное состояние КА; FQ – множество заключительных состояний КА. Автомат функционирует на основании следующих эмпирических правил [15].

1. Исходным состоянием КА является начальное состояние q0.

2. Цепочка, составленная из литер алфавита, по одной букве поступает на вход КА.

';

Возврат к начальным литерам цепочки не возможен.

3. Литера Sj допускается КА, находящимся в состоянии qi, если (qi, Sj){} – иными словами, образ функции переходов не пуст, определён переход из текущего состояния КА в 4. Если литера входной цепочки не допускается, то цепочка отвергается, признаётся не принадлежащей входному языку КА, сам автомат остаётся в текущем состоянии.

5. Цепочка литер допускается КА, если после поступления её последнего символа автомат оказывается в одном из заключительных состояний qrF. В противном случае цепочка отвергается.

Известны теоремы [16], устанавливающие соответствие между классами конечных автоматов и классами цепочек, называемыми регулярными, которые могут быть проверены на принадлежность языку, порождаемому определённой грамматикой, с помощью КА.

Элементы КА могут быть построены и описаны несколькими способами [7 – 9, 15, 16], указанные процедуры излагаются и в методической литературе [10, с. 9 – 17; 11, с. 23 Одним из эффективных способов описания КА является регулярное выражение, особенно когда известен вид цепочек, подлежащих опознаванию.

Правила написания регулярных выражений для типовых конструкций таковы [10, 16], при этом фигурные скобки обозначают итерацию, то, что в них заключено, может повторяться от нуля до бесчисленного числа раз. круглые или квадратные – используют для объединения альтернатив, из которых одна обязательно присутствует.

Пусть имеется алфавит составленный из символов (букв, литер) VT = {x1,x2,...,xn}.

1. Множество всевозможных цепочек, составленных из букв xi VT :

2. Множество цепочек, составленных из литер xi VT и оканчивающихся литерой x1.

3. Множество цепочек, составленных из литер xi VT начинающихся цепочкой l1 и оканчивающихся l2.

4. Множество однолитерных цепочек (однобуквенных слов) совпадает c алфавитом 5. Множество двулитерных цепочек (двухбуквенных слов) С точки зрения техники реализации КА на ЭВМ, предпочтительнее является его описание в виде таблиц переходов и выходов, иногда совмещённых, первая из них есть табличный аналог, символам входного алфавита соответствуют строки, а состояниям – столбцы.

Иногда функция переходов определена неоднозначно, в этом случае КА будет недерминированным. При этом необходимо получить детерминированный конечный автомат (ДКА) по недетерминированному КА. Приёмы построения ДКА по недетерминированному Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) КА, иллюстрируются многочисленными примерами, приводимыми в [10, с. 10 – 13]. Известен [10, 16, 19] следующий алгоритм построения ДКА по НКА.

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

2. Для вновь введенного состояния строим функцию переходов; анализируя функцию переходов в состояниях, определяющих данное состояние.

3. Повторяем п.п. 1 – 2 до тех пор, пока множество состояний автомата не будет изменено, а функция переходов приобретёт однозначность.

Технически оправдано иметь таблицу переходов КА минимального размера. Очевидно, что число строк таблицы изменению не подлежит, как определяемое внешними условиями, а число состояний КА и, соответственно, количество столбцов, может быть уменьшено в соответствии с теоремой Майхилла – Нерода [16]. Примеры такого упрощения приводятся в [10, с. 15 – 21; 11, с. 23 - 27]. Программная реализация КА может быть различной [1, с. 60 – 61, 86; 10, с. 15; 11, с. 26 - 37], тем не менее, неизменно наличие следующих этапов.

1. Начальное состояние – нулевое, соответствующий столбец – первый, он же является текущим.

2. Выполнение действий, связанных с обработкой текущего состояния КА.

3. Определение строки управляющей таблицы, соответствующей поступившей литере.

4. Определение следующего состояния КА и соответствующего номера столбца.

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

Выполнение работы занимает два аудиторных занятия (4 академических часа) и предполагает интенсивную домашнюю подготовку.

3.1. Домашняя подготовка. На основании кода варианта в виде регулярного выражения, полученного у преподавателя, взять регулярное выражение из приложения А. Выполнить разметку регулярного выражения согласно [10], по необходимости минимизировать.

Если КА не является детерминированным, необходимо привести его к детерминированному виду. Построить таблицу переходов МДКА. Выполнить минимизацию по таблице переходов.

Построить граф конечного автомата для визуального определения недостижимых состояний, и, если таковые обнаружатся, окончательно минимизировать ДКА, построив окончательную таблицу МДКА. Написать черновой вариант программы на языке С (С++).

3.2. Занятие 1 (2 часа). Предъявить результаты домашней подготовки для проверки преподавателю, устранить ошибки согласно замечаниям преподавателя. Ввести программу, реализующую КА, довести её до успешной компиляции.

3.3. Домашняя подготовка. Разработать тестовые последовательности литер, допускаемые и отвергаемые КА. Найти допускаемые последовательности минимальной длины.

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

Подготовить пункты отчёта, касающиеся выполненной работы.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) 3.4. Занятие 2 (2 часа). Предъявление материалов тестирования преподавателю и отладка программы. Окончательное оформление отчёта и защита результатов выполнения лабораторной работы.

4.2. Аналитические выкладки по проведению минимизации и, по необходимости построения ДКА, управляющая таблица КА.

4.3. Тестовые примеры для отладки включая допускаемые последовательности минимальной длины.

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

4.5. Содержательные выводы, в которых отражено: изменение числа состояний КА в ходе выполнения лабораторной работы; анализ динамики выявленных ошибок; размер исходного модуля, размер исполнимого модуля.

5. Вопросы для самоконтроля и самоподготовки 5.1. Определение, способы описания и построения конечных автоматов.

5.2. Формулировки теорем о связи КА и формальной грамматики, соответствия недетерминированного КА и детерминированного КА.

5.3. Привести алгоритм построения ДКА по НКА.

5.5. Минимизация КА по регулярному выражению и таблицам переходов и выходов.

5.7. Какие гипотезы положены в основу функционирования КА?

5.8. Какой КА называется недетерминированным?

5.9. Правила написания регулярных выражений.

5.10. Какая цепочка входных литер допускается КА?

5.11. Какая цепочка входных литер не допускается КА?

5.12. В чём заключается отношение эквивалентности применительно к цепочкам, обрабатываемым конечным автоматом?

5.13. Почему для программной или схемной реализации КА необходимо его приведение к детерминированному виду?

5.14. Привести примеры задач, решаемых с применением КА[19].

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

“ИССЛЕДОВАНИЕ СКАНЕРА ПРИ АНАЛИЗЕ ПРОСТЫХ ЯЗЫКОВЫХ КОНСТРУКЦИЙ”

1.1. Изучить принципы построения и программирования лексического анализатора на языке С (С++) для простых языковых конструкций.

1.2. Получить навыки практического построения лексического анализатора (сканера) на основе теории конечных автоматов.

1.3. Освоить приёмы составления регулярных выражений для описания лексем.

1.4. Закрепить навыки построения минимального КА, осуществляющего сканирование текста программ.

Из общей структуры компилятора [3 – 4; 5, с. 19] видно, что лексический анализатор (сканер) занимает заметное место в аналитической части транслятора и является первой (по времени начала выполнения) системной программой, анализирующей исходный модуль пользователя.

Сканер получил свое наименование благодаря особенности обработки входной информации. В его задачу входит: анализ исходной программы на уровне лексем [7, 9, 18]; выдача диагностических сообщений об обнаруженных ошибках; построение информационных таблиц констант, идентификаторов, служебных слов, разделителей; перекодирование исходной программы в соответствии с построенными таблицами.

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

Построение сканера наиболее формально и точно можно осуществить по регулярному выражению, при этом творческая компонента присутствует при составлении регулярного выражения, уступая затем место строгим алгоритмам. Примеры построения регулярного выражения и конечного автомата на его основе, осуществляющего процедуру лексического анализа, приводятся в [10, с. 22 – 24; 11, с. 33 - 36].

Возможен подход к построению сканера на основании диаграммы состояний (графа) автомата. Указанный подход проектирования является, по сути, эмпирическим, его ясное и подробное изложение выполнено Д. Грисом [7]. За исключением построения управляющей таблицы КА сканера, в нём соблюдается вся методология проектирования программных систем[13, 17], что вполне может быть использовано студентами при выполнении настоящей лабораторной работы.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) Выполнение работы занимает два аудиторных занятия (4 академических часа) и предполагает интенсивную домашнюю подготовку.

3.1. Домашняя подготовка. Согласно выданному заданию составить регулярное выражение, описывающее КА, который осуществляет лексический анализ.

Структура такого выражения примерно такова L1 – лексема, состоящая в том, что текущая литера не буква и не цифра.

L2 – текущая литера не принадлежит к образующим константу или литерал.

L3 – литера, не принадлежащая алфавиту конечного автомата.

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

3.2. Занятие 1 (2 часа). Согласовать текст диагностических сообщений с преподавателем, сконструировать текст программы сканера на основании программы МДКА с учётом домашней подготовки. Выявить и устранить синтаксические ошибки.

3.3. Домашняя подготовка. Разработать тестовые примеры правильных и неправильных лексем языка, уточнить диагностические сообщения. Подготовить мероприятия по хронометрированию работы сканера. Продумать структуру выходной информации программы на предмет использования другими программными модулями компилятора. Подготовить 3.4. Занятие 2 (2 часа). Тестировать и окончательно отладить программу. Экспериментально определить время работы сканера для качественно различных структур строк и характера ошибок. Завершить оформление отчёта и защитить результаты выполнения лабораторной работы.

4.2. Регулярное выражение КА, осуществляющего лексический анализ; аналитические преобразования, выполненные при построении детерминированного минимального КА;

управляющая таблица КА.

4.3. Тестовые примеры и тексты диагностических сообщений.

4.4. Листинги сервисных процедур и результатов тестирования.

4.5. Статистика синтаксической и логической отладки программ, выполненная по аналогии п. 4.4. предыдущей работы.

4.6. Осмысленные выводы, в которых должно быть отражено: изменение объёмов (в символах) входной и выходной информации; результаты хронометража - среднее время, затрачиваемое на сканирование строки исходного текста; анализ динамики выявленных ошибок; размер исходного модуля, размер исполнимого модуля.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) 5. Вопросы для самоконтроля и самоподготовки 5.1. Назначение сканера и его место в схеме трансляции.

5.2. Типы лексем и система их кодирования.

5.3. Виды таблиц, создаваемых и используемых лексическим анализатором и способы их организации [7, 9, 18].

5.4. Характерные особенности функционирования лексического анализатора.

5.5. Методология построения лексических анализаторов.

“ИССЛЕДОВАНИЕ АЛГОРИТМА ПРОСТОГО НИСХОДЯЩЕГО РАСПОЗНАВАТЕЛЯ”

1.1. Приобрести навыки описания синтаксиса алгоритмических языков средствами формальных грамматик.

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

Простой нисходящий разбор является исторически одним из первых подходов к осуществлению автоматического синтаксического анализа. При выполнении алгоритма осуществляется попытка построения синтаксического дерева вывода [5; 7; 10, c. 6], и, если таковое удаётся построить, то анализируемая конструкция считается синтаксически корректной. Алгоритм обстоятельно описан в [7, c. 107 – 114], приводится программа на псевдоязыке [5, c.

95 - 108], отмечаются недостатки алгоритма и рассмотрена структура [7, c. 115 – 120] представления грамматики в виде синтаксического графа.

Функционирование алгоритма, в общих чертах, таково (смотри рисунок 3.1).

1. Используются два стека (магазина): магазин поставленных целей (МПЦ) для хранения нетерминальных символов, из которых, предположительно, выведена анализируемая конструкция языка, и магазин достигнутых целей (МДЦ) для хранения нетерминалов, для которых удалось установить такой вывод. Конструкция считается синтаксически корректной, если по окончании разбора в МДЦ будет находиться аксиома формальной грамматики.

2. В ходе обработки правил грамматики, в МПЦ помещаются нетерминальные символы, до тех пор, пока не будет достигнут терминальный.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) 3. Этот терминал сопоставляется с очередным символом программы. Если символы несопоставимы, проверяют возможную альтернативу терминалу. Когда все проверки окончатся неудачей, то текущая цель выталкивается из МПЦ, и проверяется нетерминальная альтернатива у глобальной цели.

4. Если альтернативы исчерпаны, то фиксируется ошибка, в противном (удачном) случае удаётся достичь конца правила, и текущая поставленная цель считается достигнутой и переписывается МДЦ.

5. Когда достигнут конец текста, то МДЦ и исходная конструкция образуют синтаксическое дерево.

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

Выполнение работы занимает два аудиторных занятия (4 академических часа) и предполагает интенсивную домашнюю подготовку.

3.1. Домашняя подготовка. Для Вашего варианта задания, согласно рекомендации [2, 4, 5, 7 – 12], по образу и подобию [1] описания языков программирования в форме Бекуса – Наура, выполнить построение формальной грамматики. Особое внимание следует на устранение явной левой рекурсии в правилах, паче таковая непременно возникнет:

Для большей устойчивости работы анализатора рекомендуется преобразовать грамматику в нормальную форму Грейбах [10, с. 37 – 41; 11, с.9 - 10; 16], правда, подобное преобразования приведёт к заметному увеличению количества правил грамматики и размера области хранения её синтаксического графа.

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

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

3.2. Занятие 1 (2 часа). Предъявить формальную грамматику преподавателю, обсудить диагностические сообщения. Ввести программу в компьютер устранить синтаксические ошибки, добиться успешной компиляции.

3.3. Домашняя подготовка. Модифицировать грамматику согласно результатам обсуждения с преподавателем. Подготовить информацию для занесения в синтаксический граф.

Продумать ход тестирования программы и разработать тесты [17]. Позаимствовать из предыдущей работы средства хронометража. Подготовить пункты отчёта.

3.4. Занятие 2 (2 часа). Согласовать тесты с преподавателем. Осуществить отладку логики нисходящего анализатора. Зафиксировать время, затрачиваемое анализатором на обработку тестов с разной синтаксической структурой. Предъявить материалы выполнения.

Окончательно оформить отчёт и защитить результаты выполнения лабораторной работы.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) 4.2. Формальная грамматика с правилами, свободными от левой рекурсии, порождающая фрагменты программы, соответствующие заданному варианту, дерево программы.

4.3. Разработанную структуру представления правил грамматики.

4.4. Тестовые примеры и тексты диагностических сообщений.

4.5. Листинг результатов тестирования.

4.5. Статистика синтаксической и логической отладки программ, аналогично предыдущим работам.

4.6. Осмысленные выводы, в которых должно быть отражено: минимальное, максимальное и среднее время, затрачиваемое на синтаксический разбор; размер исходного модуля, размер исполнимого модуля.

5. Вопросы для самоконтроля и самоподготовки 5.1. Назначение синтаксического разбора.

5.2. Принцип работы нисходящего распознавателя.

5.3. Основные недостатки простого нисходящего разбора.

5.4. Способы устранения левой рекурсии в правилах формальных грамматик.

5.5. Способы и особенности организации данных для осуществления нисходящего

“ИССЛЕДОВАНИЕ АЛГОРИТМА НИСХОДЯЩЕГО РАСПОЗНАВАТЕЛЯ ЯЗЫКА LL(к) ГРАММАТИКИ”

1.1. Изучить процедуру синтаксического анализа, основанную на осуществлении рекурсивного спуска.

1.2. Приобрести навыки в исследовании грамматики на принадлежность к классу 1.3. Освоить методы синтеза формальных грамматик класса LL(к) и, по необходимости, преобразования грамматики к этому классу В качестве основного недостатка алгоритма простого нисходящего разбора указывается [7, c. 115 – 120] отсутствие прогноза при выборе возможного правила формальной грамматики из множества альтернатив для построения дерева. Следствием неправильного определения правила, гипотетически использованного при выводе и ведущего к неудаче, поCreate PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) следующее восстановление правильного хода вывода, приводит к непроизводительным затратам ресурсов ЭВМ и времени выполнения трансляции, варьируемым в широких пределах.

Таким образом, проблемой решаемой на каждом шаге разбора является определение очередного правила подстановки. В этом случае, если по k проанализированным символам исходной программы можно однозначно определить, какую продукцию грамматики необходимо использовать, грамматика называется LL(к) - грамматикой и, в этом случае, применяют алгоритм рекурсивного спуска [5, 16], а сам алгоритм разбора называют иногда прогнозирующим.

Одной из особенностей данной схемы трансляции является её жёсткая ориентация на конкретную грамматику, поэтому метод относят к группе специализированных методов. При этом на каждый символ формальной грамматики, как терминальный, так и нетерминальный, разрабатывается алгоритм, и пишется процедура его распознавания. Порядок вызова процедур определяется местоположением распознаваемых символов в правилах исходной грамматики. Поэтому алгоритм относят к группе методов синтаксических функций [2, 9, 18].

Исследование грамматики на принадлежность к классу LL(к) состоит в отыскании уникальных цепочек терминальных символов, выводимых из головы правой части правила.

Изложение алгоритма, иллюстрация его применения и примеры для закрепления приводятся в [10, c. 24 – 26; 11, 38 – 40]. Там же приводится текст программы на С (С++). Заметим, что рекурсивные вызовы при работе распознавателя могут быть организованы как явным, так и неявным способами. При кажущейся простоте алгоритма, он весьма эффективен и широко распространён: достаточно отметить, что компилятор с алгоритмического языка Pascal построен по данной схеме на основании свойств LL(1) – грамматики. Как недостаток можно отметить однопроходовость такого транслятора: его работа завершается нахождением первой встреченной от начала программы ошибки. Обычно отдают предпочтение LL(1) – грамматике, что упрощает процедуру обработки анализируемого фрагмента строки, а LL(к) грамматики с большим индексом k используют вынужденно.

В качестве входной информации нисходящий рекурсивный распознаватель использует перекодированную программу [7, c. 19], принимаемую после работы сканера.

Выполнение работы занимает два аудиторных занятия (4 академических часа) и предполагает интенсивную домашнюю подготовку.

3.1. Домашняя подготовка. Для Вашего варианта построить формальную LL(1) – грамматику, свободную от левой рекурсии, либо позаимствовать её из предыдущей работы.

Если грамматика не является LL(1) – грамматикой, то её необходимо преобразовать к такому виду [7]. Типичной проблемой, препятствующей отнесению грамматики к классу LL(1), является наличие альтернативных правых частей правил с одинаковыми головами. Преобразование заключается во введении новых правил.

Рекурсия тоже препятствует причислению грамматики к этому классу. Преобразование заключается в использовании итерационного повторителя { }, который программно осуществляется итерационным циклом типа while или until.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) Составить текст программы, реализующей рекурсивный алгоритм разбора. Продумать диагностические сообщения, которые должны выдаваться при возникновении синтаксических ошибок.

3.2. Занятие 1 (2 часа). Предъявить формальную LL(1) – грамматику, совместно с доказательством её свойств, преподавателю. Ввести программу в компьютер, добиться успешной компиляции. В ходе отладки синтаксиса программы вести учёт синтаксических ошибок, выявляемых в ходе каждой компиляции.

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

3.4. Занятие 2 (2 часа). Согласовать тесты с преподавателем. Осуществить отладку логики рекурсивного анализатора. Зафиксировать время, затрачиваемое анализатором на обработку тестов с разной синтаксической структурой, сравнить временные характеристики с характеристиками простого нисходящего распознавателя. Предъявить материалы выполнения.

Окончательно оформить отчёт и защитить результаты выполнения лабораторной работы.

4.2. Формальная грамматика LL(1), порождающая фрагменты программы, соответствующие заданному варианту.

4.3. Текст программы рекурсивного нисходящего распознавателя.

4.4. Тестовые примеры и тексты диагностических сообщений.

4.5. Листинг результатов тестирования.

4.5. Статистика синтаксической и логической отладки программ, полученная по аналогии предыдущих работ.

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

5. Вопросы для самоконтроля и самоподготовки 5.1. Формулировка теорем о преобразовании формальной грамматики в нормальную форму Грейбах [16].

5.2 Приёмы преобразования грамматик, направленные на устранения левой рекурсии.

5.3. Процедура определения принадлежности грамматики к классу LL(к).

5.4. Сущность и особенности метода синтаксических функций.

5.5. Преимущества нисходящего разбора, основанного на свойствах LL(к) грамматик перед обычным нисходящим разбором.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com)

“ИССЛЕДОВАНИЕ АЛГОРИТМА ПРОСТОГО ВОСХОДЯЩЕГО РАСПОЗНАВАТЕЛЯ”

1.1. Изучение принципов построения и особенностей функционирования алгоритма простого восходящего разбора.

1.2. Закрепление навыков построения синтаксических анализаторов.

1.3. Оценка эффективности работы программы, реализующей алгоритм Термин “восходящий разбор” характеризует направление построения синтаксического дерева (дерева разбора), предполагая движение от сентенциальной формы (оператора) к вершине, которую представляет аксиома грамматики, предложения которой разбираются [2, 4 - 9, 13, 14, 16]. Простой восходящий разбор инвариантен, то есть обладает универсальностью по отношению к свойствам формальной грамматики, за исключением свойства однозначности. Так как при обработке предложения алгоритмического языка априори отсутствуют сведения о том, какие правила грамматики и в каком порядке использованы для его получения, то в ходе применения алгоритма не избежать использования проб и ошибок. Выбор простой фразы в качестве возможной основы разбора при неудаче обуславливает восстановление (полностью либо частично) исходного текста. Указанные действия в алгоритме соответствуют операциям подстановки и отхода, действие которых наглядно проиллюстрировано [5, с. 113]. Одним из удачных решений является алгоритм [5, с. 109 - 118]. Так же, как и все синтаксические анализаторы, он использует информацию, подготовленную сканером. Алгоритм простого восходящего разбора, изображённый на рисунке 5.1, включает следующие эвристики.

1. Языковая конструкция, проверяемая на правописание, анализируется “слева направо” посимвольно.

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

3. При совпадении осуществляется подстановка, состоящая в замене совпавшей подстроки с левой частью (корнем) соответствующего правила. Таким образом, последний нетерминальный символ строки определяет последнюю выполненную подстановку.

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

5. В противном случае, выполняется постепенный отход, состоящий в замене левого нетерминала, правой частью (аргументом) правила, его определяющего.

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

7. Если все подстановки не увенчались успехом, а исходная строка не содержит более основ, языковая конструкция признаётся ошибочной.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) 2. Поместить в стек ХРАНЕНИЕ символ из ВХОД’а, номер правила Nр положить равным нулю.

3. Поиск правила грамматики, номер которого больше Np, у которого правая 5. Формирование дерева разбора: ДЕРЕВО (разделитель фраз), перепись 12. Восстановить Np и аргумент правила, соответствующего нетерминалу В заключение заметим, что синтаксическое дерево, получаемое в результате разбора, помимо подтверждения правильности предложения, может быть, в случае ошибки, использовано для её нейтрализации [7, с. 353 -356], так, в частности, работали компиляторы PL/I Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) Выполнение работы занимает два аудиторных занятия (4 академических часа) и предполагает интенсивную домашнюю подготовку.

3.1. Домашняя подготовка. Алгоритм простого восходящего разбора является универсальным, поэтому к формальной грамматике не предъявляются иные требование, кроме непустоты порождаемого языка [16, 18] и однозначности самой грамматики [7,9]. Поэтому целесообразно переработать или разработать заново грамматику, составленную в ходе выполнения предыдущих работ, чтобы минимизировать число правил и объём синтаксического Взяв за основу алгоритм [5, с. 109 - 118], разработайте программу, его реализующую.

Продумайте структуры хранения данных, поисковые процедуры, взаимодействие с лексическим анализатором (сканером).

3.2. Занятие 1 (2 часа). Обсудить грамматику с преподавателем, ввести программу в компьютер, добиться успешной компиляции.

3.3. Домашняя подготовка. Если необходимо, внести корректуры в правила формальной грамматики. Разработать тестовые примеры, диагностические сообщения. Позаимствовать из предыдущей работы средства хронометража. Подготовить пункты отчёта.

3.4. Занятие 2 (2 часа). Согласовать тесты с преподавателем. Осуществить отладку логики восходящего анализатора. Зафиксировать время, затрачиваемое анализатором на обработку тестов разной синтаксической структуры, сравнить временные характеристики простого восходящего анализатора с характеристиками простого и рекурсивного нисходящих распознавателей. Предъявить материалы выполнения. Окончательно оформить отчёт и защитить результаты выполнения лабораторной работы.

4.2. Формальная грамматика, порождающая фрагменты программы, соответствующие заданному варианту.

4.3. Текст программы простого восходящего распознавателя.

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

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

5. Вопросы для самоконтроля и самоподготовки 5.1. Преимущества и недостатки простого восходящего разбора.

5.3. Каким образом осуществляется поиск основы в ходе анализа.

Create PDF files without this message by purchasing novaPDF printer (http://www.novapdf.com) 5.4. Особенности структур данных, обеспечивающих функционирование алгоритма.

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

“ИССЛЕДОВАНИЕ АЛГОРИТМА ВОСХОДЯЩЕГО АНАЛИЗАТОРА ЯЗЫКА

ГРАММАТИКИ ПРОСТОГО ПРЕДШЕСТВОВАНИЯ”

1.1. Изучить синтаксические анализаторы, базирующиеся на свойствах простого предшествования.

1.2. Освоить описание синтаксиса языков программирования грамматиками предшествования.

1.3. Получить исследовательские навыки построения отношений предшествования.

1.4. Освоить правила преобразования произвольной грамматики в грамматику предшествования 1.5. Исследовать временные показатели программы, реализующие алгоритм разбора предложений языка грамматики простого предшествования.

Отношение простого предшествования между рядом стоящими символами алфавита (объединённого словаря) R и S позволяет определить аргумент продукции при поиске основы синтаксического разбора, так как указывает на одну из четырёх ситуаций: а) R и S стоят рядом в каком либо правиле; б) R – конец правила; в) S - начало правила; г) R и S несовместимы в синтаксически правильной программе [2, 5 – 9, 14].

Однозначные отношения существуют для класса грамматик простого предшествования, прилагательное “простой” нередко опускается. Если грамматика принадлежит к такому классу, то возможно построить эффективный распознаватель её языка, который, по отношению к обычному распознавателю, будет обладать повышенными скоростными характеристиками. Иногда представляется возможным построить функции предшествования (когда последние существуют) [7, параграф 5.4.]. В этом случае удаётся минимизировать размеры матрицы, которой представлены отношения предшествования, с размера nn до 2n. Идеи, положенные в основание алгоритма разбора (рисунок 6.1), просты.

1. Символы последовательно просматриваются слева направо до выполнения отношения >. Его выполнение означает, что предпоследний символ является концевым в каком-то правиле формальной грамматики.

2. Правая часть правила определяется отношением эквивалентности между символами, входящими в него, включая и предпоследний символ. Слева она ограничивается выполнением отношения S?



Похожие работы:

«СПб ГБОУ СПО Медицинский колледж № 1 Методические рекомендации по написанию КР Методические рекомендации по написанию курсовой работы 1 СПб ГБОУ СПО Медицинский колледж № 1 Методические рекомендации по написанию КР ББК 74.5 М 56 Рассмотрено на заседании методического совета. Методические рекомендации по написанию курсовой работы / М 56 Составитель: И.А. Котова. – ГБОУ СПО СПб МК №1, 2014. – 26 с. Методические рекомендации составлены с целью подготовки студентов к написанию курсовой работы....»

«ОБОУ СПО Курский техникум связи_ Обеспечение образовательного процесса учебной и учебно-методической литературой по заявленным к лицензированию образовательным программам № Уровень, ступень Автор, название, место издания, издательство, год издания учебной и Количес Число п\ образования, вид учебно-методической литературы тво обучающих п образовательной экземпл ся, программы яров воспитанни (основная/дополнительная ков, ), направление подготовки, одновремен специальность, профессия, но...»

«ЗАЯВКА на размещение информации в образовательном портале КЭУ Структура/Кафедра: Товароведение, экспертиза товаров и технологии Автор(ы). Джаманкулова Гульнара Мухамедовна Название материала(работы) : Товароведение и экспертиза сырья и товаров легкой промышленности (обувные товары, мех и изделия из него) Вид (тип) материала: Учебно-методический комплекс Для направления/специальности : Товароведение и экспертиза товаров Профиль/ специализация Для размещения в базе данных портала: Краткое...»

«МИНИСТЕРСТВО ЗДРАВООХРАНЕНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РОССИЙСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ МЕДИЦИНСКИЙ УНИВЕРСИТЕТ ИМЕНИ Н.И. ПИРОГОВА МИНИСТЕРСТВА ЗДРАВООХРАНЕНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ (ГБОУ ВПО РНИМУ им. Н.И.Пирогова Минздрава России) УТВЕРЖДАЮ Декан медико-биологического факультета, профессор _ Ю.В.Балякин 2013г. ПРОГРАММА ЭЛЕКТИВНОГО КУРСА ГЕНЕТИЧЕСКИЕ ОСНОВЫ ЦЕЛЕНАПРАВЛЕННОЙ ТЕРАПИИ ЛЕЙКОЗОВ – ПУТЬ К...»

«ФЕДЕРАЛЬНАЯ СЛУЖБА ГЕОДЕЗИИ И КАРТОГРАФИИ РОССИИ ЕДИНЫЕ НОРМЫ ВЫРАБОТКИ (ВРЕМЕНИ) НА ГЕОДЕЗИЧЕСКИЕ И ТОПОГРАФИЧЕСКИЕ РАБОТЫ Часть II КАМЕРАЛЬНЫЕ РАБОТЫ Москва, 2003 г. 1 Единые нормы выработки (времени) на геодезические и топографические работы. Часть II. Камеральные работы разработаны взамен Единых норм выработки (времени) на геодезические и топографические работы. Часть II. Камеральные работы, утвержденных Государственным комитетом СССР по труду и социальным вопросам и ВЦСПС (постановление №...»

«Схемотехника ЧЗТЛ (3 этаж), ЧЗО-1(2 этаж) Безуглов Д. А. Цифровые устройства и микропроцессоры : [учебное пособие для студентов вузов направления 210300(654200) Радиотехника] / Д. А. Безуглов, И. В. Калиенко. - Ростов-н/Д : Феникс, 2006. - 480 с. : ил.; 21 см. - (Высшее образование). Библиогр.: с. 464-465 (18 назв.) ISBN 5-222-08211-3 ОГЛАВЛЕНИЕ - >> http://www.library.ugatu.ac.ru/pdf/diplom/Besuglov_Cifrovie_ustroistva.pdf Белов А. В. Конструирование устройств на микроконтроллерах : учебник /...»

«Министерство образования Российской Федерации Южно-Уральский государственный университет Кафедра автоматизации механосборочного производства 681.5(07) O – 363 Огарков С.Ю., Виноградова Н.В. ОФОРМЛЕНИЕ КУРСОВЫХ И ДИПЛОМНЫХ ПРОЕКТОВ ПО СПЕЦИАЛЬНОСТИ 210200 АВТОМАТИЗАЦИЯ ТЕХНОЛОГИЧЕСКИХ ПРОЦЕССОВ И ПРОИЗВОДСТВ Учебное пособие Челябинск Издательство ЮУрГУ 2003 УДК 681.51.001.2(076.5) Огарков С.Ю., Виноградова Н.В. Оформление курсовых и дипломных проектов по специальности 210200 “Автоматизация...»

«Министерство образования и науки, молодежи и спорта Автономной Республики Крым Крымское республиканское учреждение Научно-методический центр профессионально-технического образования Методическая работа в профессионально-технических учебных заведениях: основные аспекты методическое пособие г. Симферополь 2013 Методическая работа в профессионально-технических учебных заведениях: основные аспекты / Методическое пособие. – Симферополь: КРУ НМЦ ПТО, 2013г. - 72с Методическое пособие предназначено...»

«Шиктыбаев Токсан Тлеубаевич, профессор кафедры, доктор юридических наук, член Диссертационного совета по защите докторских диссертаций по специальности 12.00.03 – гражданское право; предпринимательское право, семейное право, международное честное право; гражданский процесс; арбитражный процесс. Является членом Научного консультационного совета центральных государственных органов, неправительственных организаций, имеет большой опыт работы в государственной службе, в том числе в Администрации...»

«ИНСТИТУТ ЭКОНОМИКИ И ПРЕДПРИНИМАТЕЛЬСТВА (ИНЭП) Юридический факультет А.И. Зубков В.И. Зубкова УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ ПО КУРСУ УГОЛОВНО-ИСПОЛНИТЕЛЬНОЕ ПРАВО для студентов всех форм обучения (очное, заочное, первоначальное, на базе высшего образования) по специальности 021100 Юриспруденция Москва 2011 г. Авторы: А.И. Зубков – Заслуженный деятель науки РСФСР, доктор юридических наук, профессор. В.И. Зубкова – доктор юридических наук, доцент Рецензенты: О.В. Филимонов – заслуженный юрист РФ,...»

«Государственное автономное образовательное учреждение среднего профессионального образования Республики Коми Усинский политехнический техникум Методические указания по подготовке курсовых работ по архивоведению Автор: О.Е. Лыжова – преподаватель специальных дисциплин Усинск 2012 2 ПОЯСНИТЕЛЬНАЯ ЗАПИСКА Методические указания подготовлены для студентов, обучающихся по специальности 032002 Документоведение и документационное обеспечение управления и архивоведение Методические указания содержат...»

«Утверждено приказом Росгидромета от 06 07 2009 г. № 170 Согласовано: Федеральная служба по надзору в сфере транспорта: исх. № ГК21/81723 от 07.07.2008 г. Федеральная аэронавигационная служба: исх. № ДС447 от 18.07.2008 г. Межгосударственный авиационный комитет: исх. № 0511184 от 11.07.2008 г. РАССЛЕДОВАНИЕ АВИАЦИОННЫХ ПРОИСШЕСТВИЙ И ИНЦИДЕНТОВ, СВЯЗАННЫХ С МЕТЕОРОЛОГИЧЕСКИМИ ФАКТОРАМИ Методическое пособие Издание третье, переработанное и дополненное МОСКВА АННОТАЦИЯ Третье издание Методического...»

«МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ ТАГАНРОГСКИЙ ГОСУДАРСТВЕННЫЙ РАДИОТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ В.С. Плаксиенко УСТРОЙСТВА ПРИЕМА И ОБРАБОТКИ СИГНАЛОВ Учебное пособие Часть 2 ТАГАНРОГ 2000 2 621.391.262(075.8)+621.391.24(075.8) Плаксиенко В.С. Устройства приема и обработки сигналов: Учебное пособие. Часть 2. Таганрог: Изд-во ТРТУ, 2000. 102 с. Учебное пособие написано на основе прочитанных курсов лекций: ”Устройства приема и обработки сигналов”, “Радиоприемные устройства”, “Методы и...»

«Институт государства и права Российской Академии Наук Академический правовой университет В.А.ЧЕТВЕРНИН ВВЕДЕНИЕ В КУРС ОБЩЕЙ ТЕОРИИ ПРАВА И ГОСУДАРСТВА Учебное пособие Москва, 2003 Четвернин В.А. Введение в курс общей теории права и государства. Учебное пособие. – М.: Институт государства и права РАН, 2003. – 204 с. В учебном пособии излагаются концептуальные положения курса лекций по теории права и государства, который автор читает в Академическом правовом университете при Институте...»

«СЕМИНАР 3 Дискретные модели популяций с неперекрывающимися поколениями. Дискретное логистическое уравнение. Лестница Ламерея. Модели, основанные на аппарате дифференциальных уравнений, применимы для описания динамики достаточно многочисленных популяций (например, микробных), у которых процессы рождения и гибели особей можно считать непрерывными, или у которых нет ярко выраженной сезонности периодов размножения. Если же мы имеем дело с организмами, для которых сезонность — важная характеристика...»

«Е. С. Мельников О. И. Григорьева Н. В. Беляева ВВЕДЕНИЕ В СПЕЦИАЛЬНОСТЬ. ЛЕСНОЕ ХОЗЯЙСТВО Учебное пособие Санкт-Петербург 2009 ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образования САНКТ-ПЕТЕРБУРГСКАЯ ГОСУДАРСТВЕННАЯ ЛЕСОТЕХНИЧЕСКАЯ АКАДЕМИЯ им. С.М. Кирова Кафедра лесоводства Е. С. Мельников, доктор сельскохозяйственных наук, профессор О. И. Григорьева, кандидат сельскохозяйственных наук, доцент Н. В. Беляева, кандидат...»

«Министерство образования и науки РФ Сочинский государственный университет туризма и курортного дела Филиал Сочинского государственного университета туризма и курортного дела в г. Нижний Новгород Кафедра реабилитологии ВВЕДЕНИЕ В СПЕЦИАЛЬНОСТЬ УЧЕБНО-МЕТОДИЧЕСКОЕ ПОСОБИЕ для студентов всех форм обучения специальности Физическая культура для лиц с отклонениями в состоянии здоровья (Адаптивная физическая культура). Нижний Новгород 2010 ББК 75.1 В 24 Введение в специальность: учебное пособие для...»

«государственное бюджетное образовательное учреждение среднего профессионального образования (среднее специальное учебное заведение) Челябинский автотранспортный техникум (ГБОУ СПО (ССУЗ) ЧАТТ) УТВЕРЖДАЮ Директор ГБОУ СПО (ССУЗ) ЧАТТ Е.П.Гонтарев _ 2014 г. ОТЧЕТ О РЕЗУЛЬТАТАХ САМООБСЛЕДОВАНИЯ ГБОУ СПО (ССУЗ) ЧЕЛЯБИНСКИЙ АВТОТРАНСПОРТНЫЙ ТЕХНИКУМ Челябинск 2014 Содержание 1 Организационно-правовое обеспечение деятельности образовательной организации и система управления.. 1.1...»

«3 СОДЕРЖАНИЕ ПРОГРАММЫ 1. ОРГАНИЗАЦИОННО-МЕТОДИЧЕСКИЙ РАЗДЕЛ. 4 1.1. Цель дисциплины.. 4 1.2. Задачи дисциплины.. 4 1.3. Требования к уровню освоения дисциплины.. 4 1.4. Связь дисциплины с другими дисциплинами специальности. 4 5 2. РАСПРЕДЕЛЕНИЕ ОБЪЕМА ДИСЦИПЛИНЫ ПО ФОРМАМ ОБУЧЕНИЯ И ВИДАМ УЧЕБНОЙ РАБОТЫ.. 3. СОДЕРЖАНИЕ ДИСЦИПЛИНЫ.. 5 3.1. Распределение разделов дисциплины по видам учебной работы. 3.2. Содержание разделов и тем лекционного курса.. 3.3. Лабораторные работы.. 3.4. Практические...»

«ВЕТЕРИНАРНАЯ ХИРУРГИЯ Учебно-методический комплекс ММIX МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Государственное образовательное учреждение высшего профессионального образования ГОРНО-АЛТАЙСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ Сельскохозяйственный университет Кафедра хирургии, терапии и акушерства ВЕТЕРИНАРНАЯ ХИРУРГИЯ Учебно-методический комплекс для студентов, обучающихся по специальности 111201 Ветеринария Горно-Алтайск РИО Горно-Алтайского...»






 
2014 www.av.disus.ru - «Бесплатная электронная библиотека - Авторефераты, Диссертации, Монографии, Программы»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.