Автоматне програмування

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

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

Залежно від конкретної задачі в автоматному програмуванні можуть використовуватися як кінцеві автомати, так і автомати більш складної структури.

Визначальними для автоматного програмування є наступні особливості:

  1. Послідовність операцій виконання програми розбивається на кроки автомата, кожен з яких являє собою виконання певної (однієї і тієї ж для кожного кроку) секції коду з єдиною точкою входу; така секція може бути оформлена, наприклад, у вигляді окремої функції і, в свою чергу, може бути розділена на підсекції, відповідно до окремих станів або категорій станів;
  2. Збереження інформації про стан між кроками автомата здійснюється виключно через явно визначений набір змінних, призначених для зберігання стану автомата, таких, що стан програми на будь-якому окремому моменті входу в крок автомата можуть різнитися між собою виключно значеннями цих і тільки цих змінних.
  3. Зміна станів автомата звичайно відбувається в циклі (можливо, неявно заданому) виконання кроків автомата.

Техніка автоматного програмування та сама назва є дискусійними[1].

Найбільш ранні випадки застосування парадигми автоматного програмування відносяться, мабуть, до предметних областей, в яких напрацьована алгоритмічна теорія, заснована на теорії автоматів, і насамперед — до аналізу текстів на формальних мовах. Одна з найбільш ранніх робіт на цю тему була представлена в статті 1968 року[2].

Примітки[ред.ред. код]

  1. Изобретатель автоматного программирования
  2. Johnson W.L., Porter J.H. Automatic generation of efficient lexical processors using finite state techniques / 1968