. p align="justify"> Машина Тьюринга називається детермінованою, якщо кожної комбінації стану і стрічкового символу в таблиці відповідає не більше одного правила. Якщо існує пара В«стрічковий символ - станВ», для якої існує 2 і більше команд, така машина Тьюринга називається недетермінованої. Можна сказати, що машина Тьюринга являє собою найпростішу обчислювальну машину з лінійною пам'яттю, яка згідно формальним правилам перетворює вхідні дані за допомогою послідовності елементарних дій. p align="justify"> Елементарність дій полягає в тому, що дія змінює лише невеликий шматочок даних у пам'яті (у разі машини Тьюринга - лише одну клітинку), і число можливих дій звичайно. Незважаючи на простоту машини Тьюринга, на ній можна обчислити все, що можна обчислити на будь-який інший машині, що здійснює обчислення за допомогою послідовності елементарних дій. Це властивість називається повнотою. p align="justify"> Парадигма програмування
Своїм сучасним значенням у науково-технічній галузі термін В«парадигмаВ» зобов'язаний, мабуть, Томасу Куну і його книзі В«Структура наукових революційВ» (див. парадигма). Кун називав парадигмами усталені системи наукових поглядів, в рамках яких ведуться дослідження. Згідно з Куном, в процесі розвитку наукової дисципліни може статися заміна однієї парадигми на іншу (як, наприклад, геоцентрична небесна механіка Птолемея змінилася геліоцентричної системою Коперника), при цьому стара парадигма ще продовжує якийсь час існувати і навіть розвиватися завдяки тому, що багато її прихильники виявляються з тих чи інших причин нездатні перебудуватися для роботи в іншій парадигмі.
Термін В«парадигма програмуванняВ» вперше застосував Роберт Флойд у своїй лекції лауреата премії Тьюринга.
Параді ? ДМА програмуванн ? < span align = "justify"> вання - це сукупність ідей і понять, що визначають стиль написання програм. Парадигма в першу чергу визначається базової програмної одиницею і самим принципом досягнення модульності програми. В якості цієї одиниці виступають визначення (декларативне, функціональне програмування), дія (імперативне програмування), правило (продукційне програмування), діаграма переходів (автоматне програмування) та ін сутності. У сучасній індустрії програмування дуже часто парадигма програмування визначається набором інструментів програміста, а саме, мовою програмування і використовуваними бібліотеками.
Парадигма програмування визначає те, в яких термінах програміст описує логіку програми. Наприклад, в імперативному програмуванні програма описується як послідовність дій, а у функціональному програмуванні представляється у вигляді вираження і безлічі визначень функцій (слово визначення (англ. definition) слід розуміти в математичному сенсі). У популярному об'єктно-орієнтованому програмуванні (надалі О...