DWIM

DWIM

DWIM 컴퓨터 시스템은 사용자의 명시적이지만 잠재적으로 부정확한 입력을 맹목적으로 실행하지 않고 사소한 오류를 자동으로 수정하여 사용자가 의도하는 바를 예측하려고 시도한다.

소프트웨어

이 용어는 워렌 티텔만이 1966년 이전 그의 파일럿 시스템의 일부인 BBN 리스프를 위한 DWIM 패키지에서 만들었다.[1][2][3]

인터리스프

Teitelman의 DWIM 패키지는 "자동으로 오류 수정[수정] 또는 사소한 사용자 개입으로 오류 수정"[2]과 유사하며, 자연 언어의 자동 수정과 유사하다.

Teitelman과 그의 제록스 PARC 동료 Larry Masinter는 나중에 인터리스프 프로그래밍 환경(BBN Lisp의 후계자)에서 DWIM의 철학을 설명했다.

대부분의 사용자가 DWIM을 하나의 식별할 수 있는 패키지로 생각하지만, 사용자 인터페이스 설계의 보편적 철학을 구현한다: 사용자 인터페이스 수준에서 시스템 설비는 인식되지 않은 입력이 주어졌을 때 합리적으로 해석해야 한다....Interlisp 전체에서 사용되는 인터페이스 스타일은 사용자가 다양한 매개변수를 생략하고 다음을 수행할 수 있도록 한다.이러한 기본값은 합리적인 값으로 설정됨

DWIM은 사용자가 상황별 정보로부터 사용자의 요청을 해석하려는 에이전트와 상호 작용하고 있다는 생각을 구현한 것이다.사용자가 시스템과 대화하고 있다고 느끼기를 바라기 때문에, 그 수정이나 정보가 명백하게 드러나는 상황에서, 멈춰서서서 어쩔 수 없이 스스로 시정하거나 추가 정보를 주면 안 된다.[4]

DWIM 비평가들은 "Teitelman이 엎드린 특정 타이핑 실수에 동조했다"면서 "Do What Teitelman Means" 또는 "Do What Interlisp Meas"라고 부르거나,[5] DWIM이 "Damn Warren's Expernal Machine"을 의미한다고 주장하기도 했다.[6]

이맥스

DWIM의 개념은 GNU Emacs 텍스트 편집기의 맥락 안에서 증강 형태로 채택되어 문맥에 따라 지능적으로 "올바른 일을" 하려는 Emacs Lisp 함수나 명령어의 설계 철학을 기술하고 있다.[7]Emacs wiki는 2개의 다이오드 버퍼를 포함하는 분할 창 구성에서 대상 경로를 추론할 수 있는 파일 복사 명령의 예를 제공하며, 이 동작은 또한 인수에 대해 두 개의 디렉토리 경로를 취하는 많은 적용 가능한 디레드 동작에도 일반적이다.

DWIM 동작(사용 가능한 경우)은 명령의 이름에 자주 언급된다. 예: GNU Emacs에는comment-dwim프로그래밍 언어 환경 및 현재 컨텍스트에 적합한 주석 문자와 들여쓰기를 사용하면서, 미해결된 경우 선택된 영역을 주석 처리하거나 이미 주석 처리한 경우 주석 처리하는 기능.[8][9]

이러한 종류의 DWIM은 종종 사용자 오류를 수정하는 것과 직접적인 관련이 없고 오히려 사용 가능한 맥락에서 사용자 의도를 추측한다.예를 들어, Emacs Magit 패키지는 이러한 설계 철학을 대체적으로 구현한다.그것의 수많은 diff 명령들 중에서, 다음과 같은 것이 있다.magit-diff-dwim사용자의 추가 입력을 요구하지 않고 사용자가 커서 위치에 따라 분석하고자 하는 내용을 추측하는 명령어.Magit 사용자 설명서는 다음의 행동을 설명한다.magit-diff-dwim단순히: "지점적인 것에 대한 변화를 보여줘"[10]

참고 항목

참조

  1. ^ 워런 티텔만, M.I.T. 박사학위 '필로: 인간-컴퓨터 공생으로 한 걸음'논문, Project MAC-TR-32, 1966년 9월.DTIC AD0638446 웨이백 머신에 2012-04-18 보관 PDF[permanent dead link], 페이지 51
  2. ^ a b Warren Teitelman, J. N. Buxton의 "Toward a programming laboratory"와 Brian Randell, Software Engineering Technologies, 1970년 4월, NATO 과학 위원회, 이탈리아, 27–31, 페이지 108ff.
  3. ^ 도널드 E.워커, 루이스 M.노턴(Eds) : 1969년 5월 워싱턴 DC, 제1차 인공지능 국제공동회의의 진행.
  4. ^ Warren Teitelman, Larry Masinter, "Interlisp Programming Environment", 컴퓨터(IEEEE) 14:4:25-33, 1981. doi:10.1109/C-M.1981.220410 pdf
  5. ^ Guy L. Stele Jr. Richard P. Gabriel, "The Evolution of Lisp", 프로그래밍 언어의 역사-II, 1996, ISBN0-201-89502-1doi:10.1145/234286.1057818, 페이지 16. pdf
  6. ^ "DWIM".
  7. ^ "Do What I Mean".
  8. ^ "Comment Tips". Generally speaking, the M-; (comment-dwim) command automatically starts a comment of the appropriate type; or indents an existing comment to the right place, depending on the number of semicolons.
  9. ^ "Comment Commands". The command to create or align a comment is M-; (comment-dwim). The word “dwim” is an acronym for “Do What I Mean”; it indicates that this command can be used for many different jobs relating to comments, depending on the situation where you use it.
  10. ^ "Magit User Manual: 5.4 Diffing".

추가 읽기

  • Warren Teitelman, 1972년 FJCC Procedures of the FJCC에서 "자동 프로그래밍 [sic]: 프로그래머의 조수":10.1145/1480083.1480119