DWIM - Википедия - DWIM

DWIM (делай, что я имею в виду) компьютерные системы пытаются предвидеть, что пользователи намерены делать, автоматически исправляя тривиальные ошибки, а не слепо выполняя явный, но потенциально неверный ввод пользователей.

Программного обеспечения

Термин был придуман Уоррен Тейтельман в его пакете DWIM для BBN Lisp, часть его системы PILOT, некоторое время до 1966 года.[1][2][3]

Пакет DWIM Тейтельмана «исправляет [ed] ошибки автоматически или с незначительным вмешательством пользователя»,[2] аналогично программа проверки орфографии для естественного языка.

Тейтельман и его Xerox PARC коллега Ларри Масинтер позже описал философию DWIM в Интерлисп среда программирования (преемник BBN Lisp):

Хотя большинство пользователей думают о DWIM как о едином идентифицируемом пакете, он воплощает в себе всеобъемлющую философию дизайна пользовательского интерфейса: на уровне пользовательского интерфейса системные средства должны давать разумную интерпретацию нераспознанного ввода. ... стиль интерфейса, используемый в Interlisp, позволяет пользователю опускать различные параметры и устанавливать для них разумные значения по умолчанию ...

DWIM - это воплощение идеи, что пользователь взаимодействует с агентом, который пытается интерпретировать запрос пользователя на основе контекстной информации. Поскольку мы хотим, чтобы пользователь чувствовал, что он разговаривает с системой, его нельзя останавливать и заставлять исправлять себя или предоставлять дополнительную информацию в ситуациях, когда исправление или информация очевидны.[4]

Критики DWIM утверждали, что он был «настроен на определенные опечатки, к которым был склонен Тейтельман, и никакие другие», и назвали его «Делай то, что означает Тейтельман», «Делай то, что означает Interlisp».[5] или даже утверждал, что DWIM означает «Адская машина проклятого Уоррена». [6]

Emacs

Концепция DWIM была принята в расширенной форме пользователями GNU Emacs Текстовый редактор описать философию дизайна Emacs Lisp функции или команды, которые пытаются разумно "поступать правильно" в зависимости от контекста,[7] вместо того, чтобы специально корректировать ввод пользователя. Emacs вики дает пример команды копирования файла, которая может выводить путь назначения из конфигурации разделенного окна, которая содержит два dired буферы, один из которых отображает исходный путь.

Функциональность DWIM часто упоминается в имени команды; GNU Emacs имеет comment-dwim функция, которая комментирует выбранную область, если она не закомментирована, или раскомментирует ее, если она уже закомментирована, с использованием символов комментариев и отступов, подходящих для среды языка программирования и текущего контекста.[8][9]

Функциональность DWIM такого типа часто меньше связана с исправлением ошибок пользователя, чем с угадыванием намерений пользователя из доступного контекста и предложением разумных вариантов по умолчанию, а не с беспечным продвижением вперед с предполагаемым предполагаемым действием. Например, Emacs Magit package широко демонстрирует эту философию дизайна. Среди его многочисленных разница команды (используются для анализа различий между несколько версий файлов) есть magit-diff-dwim команда, которая не требует дальнейшего ввода от пользователя, а просто угадывает, что пользователь хочет проанализировать, основываясь на расположении курсор, поскольку предполагается, что именно здесь пользователь ищет. Руководство пользователя Magit описывает его поведение просто как: "Показать изменения для вещи в точке".[10]

Смотрите также

Рекомендации

  1. ^ Уоррен Тейтельман, «ПИЛОТ: шаг к симбиозу человека и компьютера», M.I.T. Кандидат наук. Диссертация, Проект MAC MAC-TR-32, сентябрь 1966 г. DTIC AD0638446 В архиве 2012-04-18 в Wayback Machine PDF[постоянная мертвая ссылка ], п. 51
  2. ^ а б Уоррен Тейтельман, «К лаборатории программирования», в Дж. Н. Бакстоне и Брайан Рэнделл, Методы программной инженерии, Апрель 1970 г., отчет о конференции, организованной Научным комитетом НАТО, Рим, Италия, 27–31 октября 1969 г., стр. 108ff.
  3. ^ Дональд Э. Уокер, Льюис М. Нортон (ред.): Труды 1-й Международной совместной конференции по искусственному интеллекту, Вашингтон, округ Колумбия, стр. 715, май 1969 г.
  4. ^ Уоррен Тейтельман, Ларри Масинтер, "Среда программирования Interlisp", Компьютер (IEEE) 14: 4: 25-33, апрель 1981 г. Дои:10.1109 / C-M.1981.220410 pdf
  5. ^ Гай Л. Стил младший, Ричард П. Габриэль, «Эволюция Лиспа», в История языков программирования --- II, 1996, ISBN  0-201-89502-1 Дои:10.1145/234286.1057818, п. 16. pdf
  6. ^ http://www.catb.org/~esr/jargon/html/D/DWIM.html
  7. ^ "Делай то, что я имею в виду".
  8. ^ "Советы по комментариям". Вообще говоря, M-; Команда (comment-dwim) автоматически запускает комментарий соответствующего типа; или сдвигает существующий комментарий в нужное место, в зависимости от количества точек с запятой.
  9. ^ "Команды комментирования". Команда для создания или выравнивания комментария - M-; (комментарий-двим). Слово «двим» является аббревиатурой от «Делай то, что я имею в виду»; он указывает, что эту команду можно использовать для множества различных заданий, связанных с комментариями, в зависимости от ситуации, в которой вы ее используете.
  10. ^ "Руководство пользователя Magit: 5.4 Различия".

дальнейшее чтение

  • Уоррен Тейтельман, "Автоматизированное программирование" [sic]: помощник программиста », в Труды FJCC, 1972 Дои:10.1145/1480083.1480119