Рубріки: Решения

Кот-компьютинг: разработчица проверила кошку на полноту по Тьюрингу

Богдан Мирченко

А ваша кошка полная по Тьюрингу? Не в курсе? А вот разработчица Хлоя Лурсейр проверила это условие на своей и теперь знает наверняка. Своими действиями специалистка хотела показать, что не все функции обязательно полезны. Что из этого вышло — читайте далее.

Что такое полнота по Тьюрингу

Исполнитель называется Тьюринг-полным, если на нем можно реализовать любую вычислимую функцию, и наоборот. Это означает, что любая единица, реализующая восемь приведенных ниже команд, — это компьютер, который может выполнять любые вычисления: 

  • . и , — ввод и вывод значения;
  • + и - — увеличение и уменьшение значения;
  • > и < — сдвиг текущей ячейки памяти влево или вправо;
  • [ и ] — выполнение циклов.

Итак, если исполнитель, кошка по имени Пелуче, сможет выполнить эти операции, можно считать ее Тьюринг-полной. 

Доказательство полноты по Тьюрингу

Ввод и вывод

Сначала Хлоя попыталась потыкать Пелуче, чтобы получить ответную реакцию. 

Ввод и вывод_1
Ввод и вывод_2

Кошка отреагировала, а потом свернулась в клубок. 

Ввод и вывод_3
Ввод и вывод_4

Вывод: Присутствует реакция на внешнее воздействие. Значит, кошка может обрабатывать входные данные и выдавать выходные. 

Ввод/вывод подтвержден! 

Увеличение и уменьшение значения памяти

Однажды Хлоя вернулась с работы и увидела следующее: 

Корм! Везде был разбросан корм! 

Но потом она присмотрелась и поняла, что это очень на ленту памяти, поэтому решила пронумеровать плитку вот так: 

Вывод: если Пелуче может разбрасывать по плитке корм, а затем есть его прямо с пола, она может увеличивать и уменьшать значения, содержащиеся в ячейках памяти. 

Увеличение и уменьшение значения памяти подтверждено! 

Сдвиг текущей ячейки памяти влево или вправо

Когда Хлоя мыла посуду, она нечаянно пролила воду на Пелуче. Та начала бегать по кухне и учинила беспорядок: 

Если присмотреться, можно заметить, что во время суматохи Пелуче случайно передвинула свою миску. 

Вывод: смещение стало причиной того, что из миски на плитку рассыпался корм. Это в свою очередь свидетельствует о перемещении головки для редактирования другой ячейки памяти. 

Сдвиг текущей ячейки памяти подтвержден! 

Выполнение циклов

После того как Пелуче рассыпала корм, Хлое пришлось прибраться, но не прошло и пяти минут, как на полу появилось это: 

Вывод: Пелуче снова рассыпала корм. Это говорит о том, то она может выполнять циклы. 

Выполнение циклов подтверждено! 

Вот и все! Пелуче — полная по Тьюрингу. Другой вопрос в том, как теперь использовать ее для выполнения высокопроизводительных вычислений? 

Доказав полноту по Тьюрингу можно делать с исполнителем, в данном случае с кошкой, все, что угодно. Например, Хлоя дала Пелуче для выполнения следующий «код». 

😾😾😾😾😾😾😾😾
😿
🐈😾
🐈😾😾
🐈😾😾😾
🐈😾😾😾😾
🐈😾😾😾😾😾
🐈😾😾😾😾😾😾
🐈😾😾😾😾😾😾😾
🐈😾😾😾😾😾😾😾😾
🐈😾😾😾😾😾😾😾😾😾
🐈😾😾😾😾😾😾😾😾😾😾
🐈😾😾😾😾😾😾😾😾😾😾😾
🐈😾😾😾😾😾😾😾😾😾😾😾😾
🐈😾😾😾😾😾😾😾😾😾😾😾😾😾
🐈😾😾😾😾😾😾😾😾😾😾😾😾😾😾
🐈😾😾😾😾😾😾😾😾😾😾😾😾😾😾😾
🐈😾😾😾😾😾😾😾😾😾😾😾😾😾😾😾😾
😻😻😻😻😻😻😻😻😻😻😻😻😻😻😻😻🐾
😸
🐈🐈🐈🐈🐈🐈🐈🐈🐈🙀😻😻😻😻😻😻😻😻😻
🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐾🐾🐾🙀😾😾😾😻😻😻😻😻😻😻😻😻😻😻😻😻
🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐾🐾🐾🐾🙀😾😾😾😾😻😻😻😻😻😻😻😻😻😻😻😻😻😻
🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐾🐾🐾🐾🙀😾😾😾😾😻😻😻😻😻😻😻😻😻😻😻😻😻😻
🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐾🙀😾😻😻😻😻😻😻😻😻😻😻😻😻😻😻
🐈🐈🐈🐈🙀😻😻😻😻
🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐾🙀😾😻😻😻😻😻😻😻😻😻😻😻😻😻😻😻
🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐾🙀😾😻😻😻😻😻😻😻😻😻😻😻😻😻😻
🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈😾😾🙀🐾🐾😻😻😻😻😻😻😻😻😻😻😻😻😻😻
🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐾🐾🐾🐾🙀😾😾😾😾😻😻😻😻😻😻😻😻😻😻😻😻😻😻
🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐾🐾🐾🐾🙀😾😾😾😾😻😻😻😻😻😻😻😻😻😻😻😻😻
🐈🐈🐈🐈🐈🐈🐾🐾🙀😾😾
😻😻😻😻😻😻🙀

Что с ним сделала Пелуче? Ничего! Хотя, вероятно, могла. Но, может, кошки все-таки не предназначены для выполнения кода? 

Пару слов о «кошачьих вычислениях»

Кот-компьютинг — так Хлоя назвала свою практику. По ее словам, часто, когда кто-то открывает для себя новую возможность языка, он начинает злоупотреблять ее использованием, просто потому что может и хочет. 

Чисто теоретически вы можете выполнить код с помощью кошки, но не должны этого делать, но не должны делать это не потому, что просто можете использовать какую-то функцию, которую должны. 

«Они были слишком заняты вопросом, могут ли они это сделать, вместо того чтобы думать о том, должны ли они это делать», — доктор Иан Малкольм «Парк Юрского периода»

Заключение

Описанная практика может показаться ошибкой новичка (и это так), но даже самые опытные разработчики иногда совершают ошибки новичка. И в этом нет ничего постыдного. 

Каждые три года выходит новая версия C++. И это всегда вызывает желание сразу как можно больше использовать новые возможности. Это не только хороший шанс накопить опыт, но и благоприятная почва для приобретения плохой практики. Всегда спрашивайте себя, нужна ли та или иная функция, прежде чем использовать ее, иначе увязните в кот-компьютинге. 

Кроме того, кот-компьютинг можно рассматривать как жестокое обращение с животными, так что не делайте этого!

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023