Кот-компьютинг: разработчица проверила кошку на полноту по Тьюрингу
А ваша кошка полная по Тьюрингу? Не в курсе? А вот разработчица Хлоя Лурсейр проверила это условие на своей и теперь знает наверняка. Своими действиями специалистка хотела показать, что не все функции обязательно полезны. Что из этого вышло — читайте далее.
Исполнитель называется Тьюринг-полным, если на нем можно реализовать любую вычислимую функцию, и наоборот. Это означает, что любая единица, реализующая восемь приведенных ниже команд, — это компьютер, который может выполнять любые вычисления:
.
и ,
— ввод и вывод значения;+
и -
— увеличение и уменьшение значения;>
и <
— сдвиг текущей ячейки памяти влево или вправо;[
и ]
— выполнение циклов.Итак, если исполнитель, кошка по имени Пелуче, сможет выполнить эти операции, можно считать ее Тьюринг-полной.
Сначала Хлоя попыталась потыкать Пелуче, чтобы получить ответную реакцию.
Кошка отреагировала, а потом свернулась в клубок.
Вывод: Присутствует реакция на внешнее воздействие. Значит, кошка может обрабатывать входные данные и выдавать выходные.
Ввод/вывод подтвержден!
Однажды Хлоя вернулась с работы и увидела следующее:
Корм! Везде был разбросан корм!
Но потом она присмотрелась и поняла, что это очень на ленту памяти, поэтому решила пронумеровать плитку вот так:
Вывод: если Пелуче может разбрасывать по плитке корм, а затем есть его прямо с пола, она может увеличивать и уменьшать значения, содержащиеся в ячейках памяти.
Увеличение и уменьшение значения памяти подтверждено!
Когда Хлоя мыла посуду, она нечаянно пролила воду на Пелуче. Та начала бегать по кухне и учинила беспорядок:
Если присмотреться, можно заметить, что во время суматохи Пелуче случайно передвинула свою миску.
Вывод: смещение стало причиной того, что из миски на плитку рассыпался корм. Это в свою очередь свидетельствует о перемещении головки для редактирования другой ячейки памяти.
Сдвиг текущей ячейки памяти подтвержден!
После того как Пелуче рассыпала корм, Хлое пришлось прибраться, но не прошло и пяти минут, как на полу появилось это:
Вывод: Пелуче снова рассыпала корм. Это говорит о том, то она может выполнять циклы.
Выполнение циклов подтверждено!
Вот и все! Пелуче — полная по Тьюрингу. Другой вопрос в том, как теперь использовать ее для выполнения высокопроизводительных вычислений?
Доказав полноту по Тьюрингу можно делать с исполнителем, в данном случае с кошкой, все, что угодно. Например, Хлоя дала Пелуче для выполнения следующий «код».
😾😾😾😾😾😾😾😾 😿 🐈😾 🐈😾😾 🐈😾😾😾 🐈😾😾😾😾 🐈😾😾😾😾😾 🐈😾😾😾😾😾😾 🐈😾😾😾😾😾😾😾 🐈😾😾😾😾😾😾😾😾 🐈😾😾😾😾😾😾😾😾😾 🐈😾😾😾😾😾😾😾😾😾😾 🐈😾😾😾😾😾😾😾😾😾😾😾 🐈😾😾😾😾😾😾😾😾😾😾😾😾 🐈😾😾😾😾😾😾😾😾😾😾😾😾😾 🐈😾😾😾😾😾😾😾😾😾😾😾😾😾😾 🐈😾😾😾😾😾😾😾😾😾😾😾😾😾😾😾 🐈😾😾😾😾😾😾😾😾😾😾😾😾😾😾😾😾 😻😻😻😻😻😻😻😻😻😻😻😻😻😻😻😻🐾 😸 🐈🐈🐈🐈🐈🐈🐈🐈🐈🙀😻😻😻😻😻😻😻😻😻 🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐾🐾🐾🙀😾😾😾😻😻😻😻😻😻😻😻😻😻😻😻😻 🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐾🐾🐾🐾🙀😾😾😾😾😻😻😻😻😻😻😻😻😻😻😻😻😻😻 🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐾🐾🐾🐾🙀😾😾😾😾😻😻😻😻😻😻😻😻😻😻😻😻😻😻 🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐾🙀😾😻😻😻😻😻😻😻😻😻😻😻😻😻😻 🐈🐈🐈🐈🙀😻😻😻😻 🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐾🙀😾😻😻😻😻😻😻😻😻😻😻😻😻😻😻😻 🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐾🙀😾😻😻😻😻😻😻😻😻😻😻😻😻😻😻 🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈😾😾🙀🐾🐾😻😻😻😻😻😻😻😻😻😻😻😻😻😻 🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐾🐾🐾🐾🙀😾😾😾😾😻😻😻😻😻😻😻😻😻😻😻😻😻😻 🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐈🐾🐾🐾🐾🙀😾😾😾😾😻😻😻😻😻😻😻😻😻😻😻😻😻 🐈🐈🐈🐈🐈🐈🐾🐾🙀😾😾 😻😻😻😻😻😻🙀
Что с ним сделала Пелуче? Ничего! Хотя, вероятно, могла. Но, может, кошки все-таки не предназначены для выполнения кода?
Кот-компьютинг — так Хлоя назвала свою практику. По ее словам, часто, когда кто-то открывает для себя новую возможность языка, он начинает злоупотреблять ее использованием, просто потому что может и хочет.
Чисто теоретически вы можете выполнить код с помощью кошки, но не должны этого делать, но не должны делать это не потому, что просто можете использовать какую-то функцию, которую должны.
«Они были слишком заняты вопросом, могут ли они это сделать, вместо того чтобы думать о том, должны ли они это делать», — доктор Иан Малкольм «Парк Юрского периода»
Описанная практика может показаться ошибкой новичка (и это так), но даже самые опытные разработчики иногда совершают ошибки новичка. И в этом нет ничего постыдного.
Каждые три года выходит новая версия C++. И это всегда вызывает желание сразу как можно больше использовать новые возможности. Это не только хороший шанс накопить опыт, но и благоприятная почва для приобретения плохой практики. Всегда спрашивайте себя, нужна ли та или иная функция, прежде чем использовать ее, иначе увязните в кот-компьютинге.
Кроме того, кот-компьютинг можно рассматривать как жестокое обращение с животными, так что не делайте этого!
Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…
Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…
Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…
В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…
Скрипт (англ. — сценарий), — это небольшая программа, как правило, для веб-интерфейса, выполняющая определенную задачу.…
Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…