Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
teoria_algoritmov word2003.doc
Скачиваний:
9
Добавлен:
27.09.2019
Размер:
344.58 Кб
Скачать

4.2. Формальные грамматики

Терминальные символы – это символы алфавита Т. Нетерминальные символы образуют множество символов N, не входящих в Т и использующиеся на промежуточных шагах порождающего процесса.

Начальным символом называется нетерминальный символ, из которого выводятся все строки языка.

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

Формальная грамматика G есть четверка G=(N,T,E,P), где N – множество нетерминальных символов, T – множество терминальных символов, E – начальный символ, P – множество продукций , и

Каждая новая строка в процессе вывода должна получаться из уже выведенной строки применением продукции.

Предложение – это строка, состоящая только из терминальных символов, выводимая из начального символа.

Язык L, определяемый грамматикой G, есть множество предложений, выводимых в G из L: .

4.3. Иерархия языков

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

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

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

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

Третий тип ограничений, накладываемых на продукции, ограничивает число терминальных и нетерминальных символов на каждом шаге вывода.

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

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

5. Параллельные вычисления(Пьянков)

Быстродействие ЭВМ повышалось за счет увеличения скорости срабатывания логических элементов. За последние десятилетия скорость выполнения операций и взаимодействия с памятью возросла на несколько порядков. Дальнейшее увеличение скорости стало ограничиваться причинами физического характера.

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

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

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

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

За краткую историю параллельных вычислений выработалось эмпирическое правило, называемое эффектом Амдаля: для достаточной эффективности вычислений на параллельной машине с m процессорами вычисления должны распадаться на m потоков данных, причем нужно, чтобы последовательно выполнялась существенно меньшая, чем 1/m доля сегментов. Эффект Амдаля основан на отсутствии внутреннего параллелизма в большинстве современных программ.

Имеется много численных методов, которые нельзя эффективно реализовать ни на каких многопроцессорных системах.

Следующая идея повышения быстродействия – организация конвейера.

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

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

Л И Т Е Р А Т У Р А

1. Фор Р., Кофман А., Дени-Папен М. Современная математика. М.: Мир, 1966.

2. Новиков П.С. Элементы математической логики. М.: Наука, 1973.

3. Трахтенброт Б.А., Бардзинь Я.М. Конечные автоматы (Пове­дение и синтез). М.: Наука, 1970.

4. Берж К. Теория графов и её применения. М.: Изд. иностр.ли­тературы, 1962.

5. Юдин Д.Б., Гольштейн Е.Г. Линейное программирование. Тео­рия, методы и приложения. М.: Наука, 1969.

6. Донован Дж. Системное программирование. М.: Мир, 1975.

7. Клини С.К. Математическая логика. М.: Мир, 1973.

8. Минский М. Вычисления и автоматы. М.: Мир, 1971.

9. Трахтенброт Б.А. Алгоритмы и вычислительные автоматы. М.: Сов. радио, 1974.