Компьютерные системы DWIM ( делайте то, что я имею в виду ) пытаются предугадать, что пользователи намереваются делать, автоматически исправляя тривиальные ошибки, а не слепо выполняя явный, но потенциально неверный ввод пользователей.
Программное обеспечение
Этот термин был введен Уорреном Тейтельманом в его пакете DWIM для BBN Lisp , части его системы PILOT, где-то до 1966 года. [1] [2] [3]
Пакет DWIM Тейтельмана «исправляет [ed] ошибки автоматически или с незначительным вмешательством пользователя» [2], аналогично автокоррекции для естественного языка.
Позже Тейтельман и его коллега из Xerox PARC Ларри Масинтер описали философию DWIM в среде программирования Interlisp (преемник BBN Lisp):
Хотя большинство пользователей думают о DWIM как о едином идентифицируемом пакете, он воплощает в себе всеобъемлющую философию дизайна пользовательского интерфейса: на уровне пользовательского интерфейса системные средства должны давать разумную интерпретацию при получении нераспознанного ввода. ... стиль интерфейса, используемый в Interlisp, позволяет пользователю опускать различные параметры и устанавливать для них разумные значения по умолчанию ...
DWIM - это воплощение идеи о том, что пользователь взаимодействует с агентом, который пытается интерпретировать запрос пользователя на основе контекстной информации. Поскольку мы хотим, чтобы пользователь чувствовал, что он разговаривает с системой, его нельзя останавливать и заставлять исправлять себя или предоставлять дополнительную информацию в ситуациях, когда исправление или информация очевидны. [4]
Критики DWIM утверждали, что он был «настроен на конкретные опечатки, к которым был склонен Тейтельман, и никакие другие», и называли его «Делай то, что означает Тейтельман» или «Делай то, что означает Интерлисп» [5], или даже заявляли, что DWIM означает «Проклятая адская машина Уоррена». [6]
Emacs
Концепция DWIM была принята в расширенной форме пользователями текстового редактора GNU Emacs для описания философии проектирования функций или команд Emacs Lisp, которые пытаются разумно « делать правильные вещи » в зависимости от контекста [7], а не специально исправлять ввод пользователя. Вики Emacs дает пример команды копирования файла, которая может определить путь назначения из конфигурации разделенного окна, содержащего два заданных буфера, один из которых отображает исходный путь.
Функциональные возможности DWIM, если они доступны, часто упоминаются в имени команды; например, в GNU Emacs есть comment-dwim
функция, которая закомментирует выбранную область, если она не закомментирована, или раскомментирует ее, если она уже закомментирована, с использованием символов комментариев и отступов, соответствующих среде языка программирования и текущему контексту. [8] [9]
Функциональные возможности DWIM такого типа часто напрямую связаны не с исправлением ошибок пользователя, а скорее с угадыванием намерений пользователя из доступного контекста и предложением разумных вариантов по умолчанию, а не беззаботным продвижением вперед с предполагаемым предполагаемым действием. Например, пакет Emacs Magit повсеместно демонстрирует эту философию дизайна. Среди его многочисленных команд diff (используемых для анализа различий между несколькими версиями файлов) есть magit-diff-dwim
команда, которая не требует дальнейшего ввода от пользователя, а просто угадывает, что пользователь хочет проанализировать, на основе местоположения курсора . Руководство пользователя Magit описывает поведение magit-diff-dwim
просто: « Показать изменения для объекта в точке ». [10]
Смотрите также
Рекомендации
- ^ Уоррен Тейтельман, «ПИЛОТ: шаг к симбиозу человека и компьютера»,доктор философии Массачусетского технологического института . Диссертация, Project MAC MAC-TR-32, сентябрь 1966 г. DTIC AD0638446 архивации 2012-04-18 в Wayback Machine PDF [ постоянная ссылка мертвых ] , стр. 51
- ^ a b Уоррен Тейтельман, «К лаборатории программирования», в JN Buxton and Brian Randell , Software Engineering Techniques , апрель 1970 г., отчет о конференции, организованной Научным комитетом НАТО, Рим, Италия, 27–31 октября 1969 г., стр. . 108 сл .
- ^ Дональд Э. Уокер, Льюис М. Нортон (ред.): Труды 1-й Международной совместной конференции по искусственному интеллекту, Вашингтон, округ Колумбия, стр. 715, май 1969.
- ^ Уоррен Тейтельман, Ларри Масинтер, "Среда программирования Interlisp", Компьютер (IEEE) 14 : 4: 25-33, апрель 1981 г. doi : 10.1109 / CM.1981.220410 pdf
- ^ Гай Л. Стил младший, Ричард П. Габриэль, «Эволюция Лиспа», в Истории языков программирования --- II , 1996, ISBN 0-201-89502-1 doi : 10.1145 / 234286.1057818 , стр. 16. pdf
- ^ http://www.catb.org/~esr/jargon/html/D/DWIM.html
- ^ «Делай то, что я имею в виду» .
- ^ «Советы по комментариям» .
Вообще говоря, M-; Команда (comment-dwim) автоматически запускает комментарий соответствующего типа; или сдвигает существующий комментарий в нужное место, в зависимости от количества точек с запятой.
- ^ «Команды комментирования» .
Команда для создания или выравнивания комментария - M-; (комментарий-двим). Слово «двим» является аббревиатурой от «Делай то, что я имею в виду»; он указывает на то, что эту команду можно использовать для множества различных заданий, связанных с комментариями, в зависимости от ситуации, в которой вы ее используете.
- ^ «Руководство пользователя Magit: 5.4 Различия» .
дальнейшее чтение
- Уоррен Тейтельман, «Автоматизированное программирование [sic] : помощник программиста», в Proceedings of the FJCC , 1972 doi : 10.1145 / 1480083.1480119