Цялостност по Тюринг: Разлика между версии
Изтрито е съдържание Добавено е съдържание
Редакция без резюме |
Редакция без резюме |
||
Ред 56:
=== Езици за бази данни ===
Понятието за цялостност по Тюринг не се прилага за езици като XML, HTML, JSON, YAML и S-expressions, защото обикновено се използват за представяне на структурирани данни, а не за описване на изчисления. Понякога се наричат [[Маркиращ език|маркиращи езици]], или по-правилно като "контейнер езици" или " езици за описване на данни". Въпреки това, Rule 110, цялостен по Тюринг клетъчен автомат, е бил успешно приложена в CSS(Cascading Style Sheets), доказвайки по този начин (до определена степен) неговата цялостност по Тюринг (в действителност не всеки е съгласен с това, например Франсис Маккейб твърди, че CSS не е цялостен по Тюринг, тъй като няма опция за дефиниране на функции).
== Примери ==
Изчислителните системи (алгебрични, функции), които се смятат за цялостни по Тюринг са тези, които са предназначени за изучаване на теоретичните компютърни науки. Те са замислени да бъдат възможно най-прости, така че да е по-лесно да се разберат границите на изчисление. Ето някои от тях:
-Теория на автоматите
-Формална граматика (езикови генератори)
-[[Формален език]] (език за разпознаване)
-[[Анонимна функция|Ламбда функции]]
-Пост-Тюрингови машини
Повечето [[Език за програмиране|програмни езици]], конвенционални и неконвенционални, са Тюринг цялостни. Това включва:
-Всички езици с общо предназначение в широка употреба.
-Процедурни езици за програмиране като [[C (език за програмиране)|C]], [[Паскал (език за програмиране)|Pascal]].
-[[Обектно-ориентирано програмиране|Обектно-ориентирани]] езици като CIL, [[Java]], [[Smalltalk]].
-Мулти-[[Парадигма на програмиране|парадигмови]] езици като [[Ada]], [[C++]], Common Lisp, Object Pascal.
-Повечето езици, използващи по-малко разпространени парадигми
-[[Функционално програмиране|Функционални езици]] като [[Lisp (език за програмиране)|Lisp]] и [[Haskell]].
-Езици за [[логическо програмиране]] като [[Пролог (език за програмиране)|Prolog]].
-Декларативни езици като [[XSLT]].
-Езотерични езици за програмиране, като форма на математическо пресъздаване, в което програмистите работят за постигане на основни програмни конструкции в изключително труден, но математически цялостен по Тюринг език.
Презаписващите системи също са Тюринг-цялостни.
Цялостност по Тюринг е по-скоро абстрактно изявление за способност, отколкото определяне на специфичните особености на езика, използвани за осъществяването на тази способност. Характеристиките, използвани за постигането на тази способност могат да са доста различни; [[FORTRAN|Фортран]] системите биха използвали циклични конструкции или дори “goto” изявления за постигане на повторение; Haskell и Prolog, при които почти изцяло липсват цикли, ще използват [[рекурсия]]. Повечето програмни езици описват изчисления по структурирането на фон Нойман, което има памет (RAM и регистър) и блок за управление. Тези два елемента правят тази структура цялостна по Тюринг. Дори чисто [[Функционално програмиране|функционалните езици]] са цялостни по Тюринг.
Тюринг цялостност в декларативния [[SQL]] се постига чрез общи рекурсивни изрази. Не е изненадващо, че процедурните разширения на SQL (PLSQL и т.н.) също са цялостни по Тюринг. Това показва една от причините защо сравнително мощни не-цялостни по Тюринг езици са рядкост: колкото по-мощен е езикът първоначално, толкова по-сложни са задачите, за които се прилага и толкова по-скоро липсата му на завършеност се възприема като недостатък, което насърчава неговото разширяване, докато стане Тюринг цялостен.
Нетипизираните [[Анонимна функция|ламбда функции]] са цялостни по Тюринг, но много от типизираните, включително System F, не са. Стойността на типизираните системи се базира на умението им да представят повечето компютърни програми и едновременно с това да засичат повече грешки.
Rule 110 и [[Живот (игра)|Играта на живота на Конуей]], и двете клетъчни автомати, са Тюринг цялостни.
Игри
Много игри са цялостни по Тюринг по случайност.
Видео игри:
-[[Живот (игра)|Conway’s Game of Life]]
-[[:en:Dwarf_Fortress|Dwarf Fortress]]
-[[Minecraft]]
-[[Minesweeper (Windows)|Minesweeper]]
-[[:en:LittleBigPlanet|LittleBigPlanet]]
-[[:en:Pokémon_Yellow|Pokemon Yellow]]
Игри с карти:
-[[Magic: The Gathering]]
{{Превод от|en|Turing completeness|712483647}}
|