Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
бАКАЛАВР_РАБОТА.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
2.13 Mб
Скачать

1.2 Практический пример

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

Рассматривается система одномерных уравнений реакции-диффузии:

(1.1)

Дискретизации производных первого и второго порядков по пространственной переменной соответственно имеют вид:

.

Значения и получены из граничных условий, они имеют вид и . Полагая и , эта задача записывается в виде:

, (1.2)

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

(1.3)

где

(1.4)

Функция задана следующим образом:

Подходящими значениями для параметров , и являются , и .

Из-за требований к точности результатов моделирования, задача имеет высокую размерность. Так для случая , система (1.2) состоит из 400 уравнений.

1.3 Понятие и структура языкового процессора

Языковой процессор (транслятор) – это программа, которая считывает текстпрограммы, написанной на одном языке – исходном, и транслирует (переводит) его в эквивалентный текст на другом языке – целевой (рис.1.1) . С практической точки зрения в языковых процессорах можно выделить отдельные фазы анализа и синтеза.

Рисунок 1.1 –Языковой процессор

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

Синтез строит требуемую целевую программу на основе промежуточного представления и информации из таблиц символов. Типичное разложение простого языкового процессора на фазы приведено на рис. 1.2.

Рисунок 1.2 – Фазы языкового процессора

Первая фаза анализа называется лексическим анализом или сканированием. Лексический анализатор читает поток символов, составляющих исходную программу, и группирует эти символы в значащие последовательности, называющиеся лексемами. Для каждой лексемы анализатор строит выходной токен (token) вида:

< имя_токена, значение атрибута >

Он передаётся последующей фазе, синтаксическому анализу. Первый компонент токена, имя_токена, представляет собой абстрактный символ (терминал), использующийся во время синтаксического анализа, а второй компонент, значение_атрибута , указывает на запись в таблице символов, соответствующую данному токену. Информация из записи в таблице символов необходима для семантического анализа и генерации кода.

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

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

Генератор кода получает в качестве входных данных промежуточное представление исходной программы и отображает его в целевой язык [2].