The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Построение полной по Тьюрингу вычислительной среды при помощи утилит GNU find и mkdir

31.07.2024 10:01

Японский разработчик Keigo Oka попытался продемонстрировать, что на основе утилит GNU find и mkdir можно сформировать вычислительную среду, являющуюся полной по Тьюрингу, т.е. позволяющую реализовать на нём любую вычислимую функцию и воссоздать себя. Ранее возможность создания подобной среды была продемонстрирована для утилит sed и awk. Для подтверждения полноты по Тьюрингу предоставлены реализации на связке из find и mkdir игры Fizz buzz и клеточного автомата, действующего по "правилу 110".

Для организации работы циклов при помощи find и mkdir использован трюк с рекурсивным созданием подкаталогов, для ограничения числа итераций, в котором используется опция "-maxdepth" (например, для цикла из 3 итераций можно запустить "find x -maxdepth 3 -execdir mkdir x/x \;"). Число допустимых итераций упирается в ограничения файловой системы по созданию вложенных каталогов и максимальному размеру файлового пути. Вызов условных операций организован при помощи регулярных выражений, доступных через опцию "-regex" (например, для вывода строки "Buzz" для чисел, делящихся на 5, можно указать '-regex 'd((/x){5})+' -printf "Buzz\n"').

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Язык программирования Birb, состоящий только из emoji-значков птиц
  3. OpenNews: Выпуск набора утилит GNU findutils 4.10.0 с возобновлением поддержки Си-библиотеки Musl
  4. OpenNews: Машине Тьюринга исполнился 71 год
  5. OpenNews: Выпуск утилит GNU Grep 3.2 и Sed 4.6 (следом вышли выпуски 3.3 и 4.7)
  6. OpenNews: Новая версия интерпретатора GNU Awk 5.3
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/61635-find
Ключевые слова: find, turing
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (40) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Wed (??), 10:23, 31/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +22 +/
    Ждем, когда с помощью утилит GNU find и mkdir будет написан DOOM.


     
     
  • 2.12, Аноним (12), 11:23, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • +18 +/
    Дописан Hurd.
     
     
  • 3.13, Аноним (13), 11:28, 31/07/2024 Скрыто ботом-модератором     [к модератору]
  • +8 +/
     
  • 3.47, Аноним (47), 04:20, 02/08/2024 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Скорее кастрюли вступят в Евросоюз.
     
  • 2.50, Аноним (50), 17:37, 06/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Это всего лишь аксиоматическая система!
    Этому еще в школе учат!
    Сколько параллельных прямых может пересекаться в сферическом кубе в вакууме Пуанкаре в мерности полного Перельмана...
     

  • 1.2, Аноним (2), 10:24, 31/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Вот так, с помощью нехитрых приспособлений буханку белого (или черного) хлеба можно превратить в троллейбус... Но зачем?
     
     
  • 2.4, Аноним (4), 10:32, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • +15 +/
    Что значит зачем?
     
  • 2.8, User (??), 10:55, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • +7 +/
    "Во первых, это красиво..."(С)
     
  • 2.10, Аноним (10), 11:15, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >Но зачем?

    Потомушта японский разработчик - это вовсе не кот, а заняться нечем.

     
  • 2.30, Аноним (30), 19:08, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Вот так, с помощью нехитрых приспособлений буханку белого (или черного) хлеба можно превратить в троллейбус... Но зачем?

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

    а касательно утилит, выходит, что любой код можно выполнить на системе, где можно запускать find и mkdir и есть директория с правами на запись.

     
     
  • 3.34, Аноним (-), 21:11, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > если у тебя есть магазин, и у твоего конкурента тоже магазин, и там продаётся хлеб,
    > то ты сможешь передавить его сотрудников троллейбусом и обанкротить его бизнес.

    Таким троллейбусом разве что тараканов передавить можно. Будет ли кто скучать о таких сотрудниках - вопрос интересный.

     

  • 1.3, Аноним (3), 10:32, 31/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ну find может находить что-то или не находить, значит уже можно условия делать
     
  • 1.6, Аноним (6), 10:35, 31/07/2024 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +5 +/
     
  • 1.9, Фрол (?), 10:57, 31/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Э-э-э!

    Я с помощью find -exec ваще все что угодно доказать могу.

     
     
  • 2.17, Аноним (2), 12:01, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Нихрена себе! Реально тюринг-полный!
     
     
  • 3.25, Аноним (4), 15:14, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Он не полный у него функциональность широкая.
     

  • 1.11, Golangdev (?), 11:19, 31/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    > Японский разработчик Keigo Oka продемонстрировал, что на основе утилит GNU find и mkdir можно сформировать вычислительную среду, являющуюся полной по Тьюрингу

    Когда делать нечего, как говорится...

    Полнота по Тьюрингу - ничто, интеграция с системой, экосистемы (сорян за тавтологию) например, каку у Go, Rust - всё.

     
     
  • 2.16, Аноним (4), 11:42, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    В том то и дело что ты перечислил каку.
     
     
  • 3.23, Аноним (23), 14:59, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Так он про сишку не писал.
     
  • 3.33, Golangdev (?), 20:30, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Удачи в программировании на таких "Тьюринг-полных языках". Она тебе понадобится :)

    Ничего сложнее калькулятора не нём не напишешь, да и то с натяжкой.

     
  • 3.45, Kuromi (ok), 02:54, 02/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Да нет, просто есть разница между теоретическими игрушками и практическим применением. Некоторые энтузиасты в гараже примитивные процессоры на лампах и память на ферритах паяют, это круто, но совершенно лишено практической ценности.

    С другой стороны, будь мы 100% за пользу и 0% фантазии мы были бы пчелами.

     
  • 2.44, MaleDog (?), 21:47, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Не могу сказать тебе за Rust остальные, но в Go поиск обычно делается рекурсивным обходом каталогов а не вызовом внешнего find. Хотя конечно можно и так. С другой стороны, часто мы видим уязвимость вида "ну мы тут собрали все параметры. передадим их без проверки в командную строку" от этого никакой язык не застрахован.
     

  • 1.18, Аноним (18), 12:36, 31/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > find x -maxdepth 3 -execdir mkdir x/x \;

    Вирусописатели возбудилась от этой новости. Очередной экзотический способ что-то сделать при постпроникновении

     
     
  • 2.31, I use Arch btw (?), 19:49, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Чем это лучше rm -rf? НЕНУЖНО!
     
     
  • 3.36, Аноним (36), 23:56, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну rm червя тебе не напишет
     

  • 1.22, Middle Go Developer (?), 14:04, 31/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Типичная работа с Linux, мучения ради мучений
     
  • 1.24, pavel_simple. (?), 15:12, 31/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    отличный тест файловой системы должен получиться
     
     
  • 2.46, Kuromi (ok), 02:55, 02/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Тест на ушатывание, да. Хотя можно в tmpfs, там вроде и ломать нечего.
     

  • 1.27, Аноним (27), 16:31, 31/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Расходимся.
    The proof is flawed and I retract the claim that I proved that find + mkdir is Turing complete. See https://news.ycombinator.com/item?id=41117141. I will update the article if I could fix the proof.
     
  • 1.28, Аноним (28), 16:37, 31/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Так данный синдром и назовут: "синдром Тюрика"
     
  • 1.29, Аноним (-), 16:58, 31/07/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Пожалуйста, объясните мне, почему все так тащатся от концепции "полный по Тьюрингу"? Чем оно кардинально лучше от неполных вычислительный сред?
     
     
  • 2.32, I use Arch btw (?), 19:53, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что:

    > возможность воссоздать себя

    "Итерация свойственна человеку, рекурсия божественна."

     
  • 2.35, Аноним (-), 21:37, 31/07/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Пожалуйста, объясните мне, почему все так тащатся от концепции "полный по Тьюрингу"?
    > Чем оно кардинально лучше от неполных вычислительный сред?

    Тем что Тюринг-полные среды теоретически позволяют ВСЕ. Включая воссоздание других тюринг полных сред - они все теоретически эквивалентны. Практически, конечно, есть некоторые нюансы.

     
     
  • 3.37, Аноним (-), 00:44, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Тюринг-полные среды теоретически позволяют ВСЕ.

    Не ВСЁ, они не могут полететь к Проксиме Центавра, или решить NP-hard проблему за константное время. Правильнее сказать, что Тьюринг-полные среды позволяют всё, что позволяют Тьюринг-полные среды. И в этой более строгой форме высказывания, становится ясно, что твоё заявление -- тавтология, то есть пустое сотрясение воздуха.

     
     
  • 4.38, Аноним (-), 12:56, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    >> Тюринг-полные среды теоретически позволяют ВСЕ.
    > Не ВСЁ, они не могут полететь к Проксиме Центавра,

    Они могут сэмулировать этот полет. И даже создать виртуальную реальность, будучи подключенными к которой, при достаточном уровне технологий вы будете уверенны что летите к Проксиме Центавра. Более того, есть теории что вселенная также может быть подобной структурой и это лишь эмуляция. Доказать или опровергнуть такой тезис, разумеется, проблематично.

    > или решить NP-hard проблему за константное время.

    И даже это ну такое утверждение. Как минимум за полиномиальное - может да, а может нет.

    > высказывания, становится ясно, что твоё заявление -- тавтология, то есть пустое
    > сотрясение воздуха.

    Рекурсивное определение не сильно далеко от него ушло. Более того - оно не доносит и ряд иных моментов. Скажем, тьюринг полные системы могут и многое из того что могут тьюринг-неполные системы, но в вашем определении это нигде не адресовано. Как простой пример: микроконтроллер может заменить (тюринг неполную) кучу релюшек, 1 в 1 или - с превышением.

     
     
  • 5.39, Александр (??), 16:10, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Если используется релюха на размыкание, можно реализовать NOR или OR-NOT базис, который является Тьюринг-полным. Т.е. релюхи Тьюринг полные
     
  • 5.41, Аноним (-), 16:21, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    > Они могут сэмулировать...

    Но не полететь. Машина Тьюринга не Бог, она не всесильна.

    > И даже это ну такое утверждение. Как минимум за полиномиальное - может да, а может нет.

    Но не за константное. Ты не сможешь на машине Тьюринга отсортировать массив длины N за константное время, не зависящее от N. И сортировка вовсе не NP-hard.

    > в вашем определении это нигде не адресовано

    Я не давал определения тьюринг-полноте. Если тебе оно нужно, то оно грубо говоря сводится к тому, что тьюринг-полная система может всё, что может машина тьюринга. Но оно тоже не даёт ответа на вопрос ТСа: что это все носятся к тьюринг-полнотой, как курица с яйцом.

    > микроконтроллер может заменить (тюринг неполную) кучу релюшек, 1 в 1 или - с превышением.

    Это ближе к ответу на вопрос, но недостаточно.

    Любая из современных вычислительных систем, максимум, может сравняться с машиной Тьюринга по своим возможностям, но не превзойти. Ассимптотические сложности алгоритмов рассчитанные для машины Тьюринга будут на любой реальной современной машине либо такими же, либо хуже. Масштабы этого "хуже" могут достигать невозможности решить задачу на слишком ущербной машине, вне зависимости от затраченного времени. В исключения попадает квантовый компьютер, который может выполнять за O(1) операции, которые для машины Тьюринга далеко не O(1). Но тут есть простор для дебатов насчёт того, насколько это исключение реально современно, а не мечты о светлом будущем.

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

     

  • 1.40, Аноним (40), 16:18, 01/08/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Уже опровергли. Исправьте новость
     
     
  • 2.43, Аноним (43), 20:28, 01/08/2024 [^] [^^] [^^^] [ответить]  
  • +/
    Там нашли косяк, но автор его уже исправил https://news.ycombinator.com/item?id=41127041
    Исправленный пруф пока никто не опроверг
     

  • 1.48, Аноним (48), 06:51, 02/08/2024 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Не совсем понятно, что обсуждаем. Результаты научного изыскания точно не сгенерированы "ради смеха"?
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру