Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
theory-2009-2010.docx
Скачиваний:
5
Добавлен:
05.09.2019
Размер:
5.41 Mб
Скачать

3. Дублювання.

Копії всіх даних знаходяться на кожному вузлі мережі. Об’єм даних в мережі обмежується найменшим об’ємом пам’яті вузла, надійність мережі найвища. Інтенсивність роботи в мережі при запиті читання низька, але дуже висока при оновленні та синхронізації.

В цьому випадку також зростає надійність програмного забезпечення (на всіх вузлах одне і теж).

4. Змішана.

Різноманітні варіанти об’єднання трьох вище вказаних стратегій.

2. Системне програмування

1. Поняття мовного процесора. Типи мовних процесорів. Основні фази мовного процесора.

Мовний процессор – це програмний комплекс, що реалізує мову програмування. При розробці мовних процесорів беруться до уваги три аспекти: прагматичний, семантичний, синт`аксичний.

Прагматичний аспект в мовному процесорі визначає область адекватного використання системи: транслятори та інтерпретатори. Транслятор - на вхід якого подається текст (програма) на вхідний мові, а на виході подається текст на вихідній мові. Інтерпретатор - на вхід якого подається програма, на виході отримуємо результат роботи програми по вхідним даним.

В залежності від того, яка вхідна мова використовується при трансляції, існує дві спеціалізації трансляторів: компілятори і асемблери. Якщо вихідною мовою є об’єктний код, то такі транслятори - компілятори. Якщо вхідна мова транслятора - асемблер, а вихідна - машинний код, то такі транслятори - асемблери.

Архітектура ЕОМ в певній мірі впливає на структуру мовного процесора. В залежності від структури ЕОМ мовні процесори поділяють на: 1) однопрохідні мовні процесори (він отримує результат за один перегляд вхідної програми, як приклад Pascal); 2) багатопрохідні мовні процесори (він отримує результат за багато переглядів вхідної програми, як приклад Assembler). Кількість переглядів мовним процесором вхідної програми залежить від структури мови програмування.

С труктура мовного процесора типу ТРАНСЛЯТОР

Структура мовного процесора типу ІНТЕРПРЕТАТОР

2. Системне програмування

2. Скінченні автомати. Методика побудови лексичного аналізатора на основі скінченного автомата.

Недетмінований ск. автомат – це п‘ятірка M=(Q, , , q0, F), де Q – ск. множ. станів,  - ск. множ. дозволених вх. симв., : Q x  -> B(Q) - функція переходів, q0Q– початковий стан, F Q – множ. заключних станів.

Роботою скін. авт. є деяка послід. кроків, або тактів. Такт задається поточним станом автомату та вхідним символом, який він бачить на зараз на вхідній ленті. Сам такт складається із зміни стану та здвигу вхідної головки на одну ячейку праворуч.

Пара (q, w) Qx* - є конфігурація автомату. (q0, w) – початкова конфігурація, (q, e), qF – заключна конфігурація (або допустима). Такт автомату є бінарне відн. M заданих на конфігураціях: якщо  (q, a)  q’, то (q, aw)  M (q’, w) для  w* .

Мова, яку задає (розпізнає) автомат M: L(M) = {w | w* та (q0, w)  * (q,e) для деякого qF}

Засоби завдання ск. автоматів:

  • табличний – задаємо таблицею ф‑ю ,

  • графічний – малюємо стані авт.та напрямлені стрілки між станами з поміткою символом з  по якому здійснюється перехід,

  • матричний – будуємо вектори 1:n [вхідні компоненти 1:k + вихідні компоненти k:n], цим задаємо зв‘язок вхідних даних з вихідними.

Методика побудови лексичного аналізатора: Нехай є ск. автомат M=(Q, , , q0, F, Err), де Err Q – мн. помилкових станів. При своїй роботі авт. (зпочатку знах. в поч. стані q0) читає з вхідної стрічки символи поки не потрапить в деякий стан q (порожні символи пропускаються, тобто існує перехід по порожньму символу зі стану q0 в стан q0): якщо q  F, то розпізнана деяка лексема (яка саме – залежить від стану, який відповідає лексемі), передаємо її синтаксичному аналізатору та переводимо автомат в стан q0; якщо q  Err, то розпізнувана лексема є помилковою -> кінець роботи. Спрощена (!) схема:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]