Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ekzamen kozak .docx
Скачиваний:
27
Добавлен:
20.12.2018
Размер:
280.44 Кб
Скачать

7. Трансляція програмного коду. Етапи та фази.

Процес компіляції складається з двох основних етапів – аналізу та синтезу (див. рис.). На етапі аналізу розпізнається текст початкової програми, створюються та заповнюються таблиці ідентифікаторів. Результатом є деяке внутрішнє, зрозуміле компілятору, представлення програми. На етапі синтезу із внутрішнього представлення програми й інформації із таблиці ідентифікаторів генерується результуюча об’єктна програма.

З точки зору теорії формальних мов компілятор виконує дві основні функції:

1) розпізнає мову початкової програми – отримує на вхід послідовність символів, перевіряє їх на приналежність мові та виявляє правила, за якими ця послідовність побудована;

2) генерує результуючу програму – на виході за певними правилами формується послідовність символів вихідної мови, яку розпізнає обчислювальна система.

Розглянемо функції однієї з основних фаз компіляції – лексичного аналізу. Цю частину компілятора виконує «сканер» (лексичний аналізатор), який читає символи програми, написаною початковою мовою, і будує із них слова (лексеми) початкової мови. Для реалізації цієї фази компіляції зручним інструментом слугують регулярні вирази (regular expression).

8. Регулярні вирази: призначення і галузі застосування.

Регулярний вислів — це рядок, що описує або збігається з множиною рядків, відповідно до набору спеціальних синтаксичних правил. Порівняння РВ із текстовою стрічкою дає або успішний результат, або невдалий. Іноді отримання такого чи іншого результату і є метою використання РВ, а іноді задача полягає у заміні знайденого за шаблоном тексту іншим фрагментом тексту. РВ знаходять своє застосування у багатьох програмах та технологіях. РВ – це зразок, одні частини якого позначають окремі символи, інші – відповідають групам символів.

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

Оскільки регулярні вирази є потужним інструментом для роботи із текстом, то область застосування у них досить широка. Для простих користувачів це, наприклад, пошук та заміна тексту. Для програмістів це може бути перевірка чи відповідає введена інформація певному шаблону, заміна по певному шаблону і т.д.

9. Методології і парадигми програмування. Моделі, що зумовили розвиток методологій.

Методологія програмування це сукупність методів, які використовуються в життєвому циклі ПЗ і об’єднані загальним філософським підходом. Методології визначають мови та програми які будуть використані при розробці ПО.

З кожною методологією можна зв’язати такі атрибути:

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

  • Узгоджена, зв’язана множина моделей методів через які реалізується дана методологія.

  • Концепції що підтримуючі методи та дозволяють більш чітко їх визначити.

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

Коли методологія використовується на початкову рівні її часто називають парадигмою. Парадигма це спосіб мислення і програмування не зв’язаний з конкретною мовою.

Визначені методології програмування підтримуються визначеними мовами програмування, проте це не значить що, мови не властиві даній методології не можна використовувати.

Розвиток методологій зумовили дані моделі:

  • Абстрактна обчислювальна машина Тюрінга визначає методологію імперативного програмування

  • Рекурсивні функції Гільберта та Аккермана породили методологію структурного програмування

  • Лямбда числення Черча , Шейнфінкеля, Каррі далі дало ідеї методології функціонального програмування

  • Нормальні алгоритми Маркова дали поштовх для розвитку методології логічного програмування (ось хто винен, що банан має таку дебільну 3 лабу)

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