Как стать автором
Обновить

Комментарии 21

команды sed и awk сами по себе полны по Тьюрингу

Вниманию переводчика! Sed это не команда, а текстовый редактор. Awk это не команда, а язык программирования.

Переводчик-то тут при чём? Это вопрос автору оригинала:

It is well known that the sed and awk commands are Turing complete on their own

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

Если уж душнить, то по полной:

  • sed это потоковый редактор

  • язык awk это scripting language а не programming language

  • в контексте статьи (работа с шелл) обсуждаются программы (utilities) find в связке с mkdir, а так же приводятся в пример утилиты (а не языки!) awk и sed

  • вызов программы с параметрами — это команда, для оболочки командной строки

  • термин команда в данном случае использован как аббревиация и означает использование соотвествующей утилиты

Скриптовые языки — это подмножество языков программирования, поэтому язык awk также является языком программирования.

"аббревиация" - не подходит. тут нет аббревиатур.

А разве предложение ошибочно, если представить, что sed и awk в родительном падеже, а не в именительном?

Да, с вами я соглашаюсь. Этой детали я не заметил!

Однако AWK это язык, который реализован в нескольких разных программах, в разных версиях под разные операционные системы. У меня вот для программ на языке AWK есть GAWK и MAWK (то есть команду AWK запустить не получится).

Зачем тогда вообще влезать, если лично вы команду awk запустить не можете?

Обычно я пользуюсь языком программирования AWK, а не командой.

Sed это не команда, а текстовый редактор. Awk это не команда, а язык программирования.

Ну, а остальные тоже не "команды", а отдельные программы.

В данном случае, рыночная классификация программы не особо важна и они все выступают в качестве "команд" в "командной строке"

В контексте перевода про функции командной строки это корректное предложение.
Да, sed и awk, а так же, к примеру, zip - это программы.
Но так как их можно вызвать из консоли с аргументами, это еще и команды.
Таким образом, автор явно утверждает, что "вызов sed из командной строки с параметрами - Тьюринг полный и теоретически может решить любой алгоритм"
Противоречия тут нет.

Вот у меня установлен Mike Brennan MAWK, это программа MAWK.

Я могу написать и выполнить программу на языке AWK? Да, могу. Программа MAWK позволяет выполнять программы на языке AWK.

Я могу выполнить команду AWK? Нет, не могу, потому что программа-исполнитель называется MAWK.

Я могу выполнить команду AWK? Нет, не могу, потому что программа-исполнитель называется MAWK.

В современных unix-подобных системах это таки /usr/bin/awk.

Таким образом, awk это, конечно, в первую очередь язык, но в то же время это и:

  • распространенная программа-интерпретатор этого языка;

  • команда, которую вы пишете в оболочке для вызова этого интерпретатора.

Да? А в debian сделано так:

~# apt search mawk
Sorting... Done
Full Text Search... Done

…

mawk/stable,now 1.3.4.20200120-3.1 amd64 [installed]
  Pattern scanning and text processing language

~# ls -l `which awk`
lrwxrwxrwx 1 root root 21 Jun 17  2022 /usr/bin/awk -> /etc/alternatives/awk

~# ls -l /etc/alternatives/awk
lrwxrwxrwx 1 root root 13 Jun 17  2022 /etc/alternatives/awk -> /usr/bin/mawk

А в MacOS просто awk неизвестного происхождения, даже копирайты не указаны. Наверное, откуда-то из *BSD пришел.

Да, иногда чуть мешает, что там бBSD-шные тулзы, а не ставшие стандартом де-факто GNU – какие-то опции командной строки отличаются, приходится править найденные в сети однострочники (или добавлять в поиск слово "MacOS".

Вы впервые слышите, что одно слово обозначает несколько сущностей? В русском языке такого довольно много (хорошо ещё, когда сущности связанные, а не как для слова "коса", к примеру). А в английском вообще чуть ли не любое существительное может использоваться, как глагол. Слово одно, значения разные, хоть и связаны.

Да, но если бы у вас стояла не MAWK, а AWK, то вы и команду такую могли бы выполнить.
Где противоречие то?

Одна-единственная инструкция mov полна по Тьюрингу :)

Слушайте, да какая разница что и как называется? Те, кому надо - понимает и так. Конечно, аккуратность в терминологии не лишняя, но статья не об этом. И, кстати, статья - интересная. Плюсую

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории