Автоматне програмування
Автоматне програмування — парадигма програмування, відповідно до якої програма або її фрагмент розглядаються як модель деякого формального автомата, а вибір операції обробки вхідних даних визначається не тільки поточним значенням даних, але й поточним значенням стану автомата.
Залежно від конкретної задачі в автоматному програмуванні можуть використовуватися як кінцеві автомати, так і автомати більш складної структури.
Визначальними для автоматного програмування є наступні особливості:
- Послідовність операцій виконання програми розбивається на кроки автомата, кожен з яких являє собою виконання певної (однієї і тієї ж для кожного кроку) секції коду з єдиною точкою входу; така секція може бути оформлена, наприклад, у вигляді окремої функції і, в свою чергу, може бути розділена на підсекції, відповідно до окремих станів або категорій станів;
- Збереження інформації про стан між кроками автомата здійснюється виключно через явно визначений набір змінних, призначених для зберігання стану автомата, таких, що стан програми на будь-якому окремому моменті входу в крок автомата можуть різнитися між собою виключно значеннями цих і тільки цих змінних.
- Зміна станів автомата звичайно відбувається в циклі (можливо, неявно заданому) виконання кроків автомата.
Техніка автоматного програмування та сама назва є дискусійними[1].
Найбільш ранні випадки застосування парадигми автоматного програмування відносяться, мабуть, до предметних областей, в яких напрацьована алгоритмічна теорія, заснована на теорії автоматів, і насамперед — до аналізу текстів на формальних мовах. Одна з найбільш ранніх робіт на цю тему була представлена в статті 1968 року[2].
Примітки[ред. • ред. код]
- ↑ Изобретатель автоматного программирования
- ↑ Johnson W.L., Porter J.H. Automatic generation of efficient lexical processors using finite state techniques / 1968