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

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

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

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

  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
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.