DWIM жүйесі – пайдаланушының ниетін болжайтын, қателерді автоматты түрде түзететін интеллектуалды технология. GNU Emacs редакторында кеңінен қолданылады.
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
DWIM (Do What I Mean) компьютерлік жүйелері пайдаланушылардың не істеуге ниеттенгенін болжауға тырысады, пайдаланушылардың нақты, бірақ қате болуы мүмкін нұсқауларын сліптей орындаудың орнына, шамалы қателерді автоматты түрде түзетеді.
DWIM (do what I mean) computer systems attempt to anticipate what users intend to do, correcting trivial errors automatically rather than blindly executing users' explicit but potentially incorrect input.
Бағдарламалық жасақтама
Термин 1966 жылға дейін Уоррен Тейтельманның BBN Lisp үшін жасаған DWIM пакетінде, оның PILOT жүйесінің бір бөлігі ретінде пайда болды.
The term was coined by Warren Teitelman in his DWIM package for BBN Lisp, part of his PILOT system, sometime before 1966.
Emacs
DWIM тұжырымдамасы кеңейтілген нысанда GNU Emacs мәтіндік редакторының аясында, Emacs Lisp функцияларының немесе командаларының дизайн философиясын сипаттау үшін қабылданды, олар контекстке байланысты "дұрыс нәрсені" ақылмен жасауға тырысады. Emacs вики екі dired буфері бар бөлінген терезе конфигурациясынан мақсатты жолды анықтай алатын файл көшіру командасының мысалын келтіреді, олардың бірі бастапқы жолды көрсетеді; бұл мінез-құлық аргумент ретінде екі каталог жолын қабылдайтын көптеген қолданылатын dired әрекеттеріне де қатысты. DWIM мінез-құлқы қолжетімді болған жағдайда, команда атында жиі айтылады; мысалы, GNU Emacs-те таңдалған аймаққа егер комментарий болмаса, комментарий қосатын немесе егер комментарий болса, оны алып тастатын dwim функциясы бар, сонымен қатар бағдарламалау тілінің ортасына және ағымдағы контекстке сәйкес комментарий белгілерін және кіріспелерді пайдаланады. DWIM-нің осы түрі көбінесе пайдаланушының қатесін түзетумен тікелей байланысты емес, керісінше қолжетімді контекстен пайдаланушының ниетін болжауға бағытталған. Мысалы, Emacs Magit пакеті осы дизайн философиясын тұрақты түрде көрсетеді. Оның көптеген diff командаларының ішінде magit diff dwim командасы бар, ол пайдаланушыдан қосымша ақпарат сұрамайды, тек курсордың орналасқан жеріне сүйене отырып, пайдаланушы нені талдағысы келетінін болжайды. Magit пайдаланушы нұсқаулығында magit diff dwim мінез-құлқы былай сипатталған: "Нүктенің өзгеруін көрсету", мұндағы "нүкте" – Emacs терминінде курсор.
The concept of DWIM has been adopted in augmented form within the context of the GNU Emacs text editor to describe the design philosophy of Emacs Lisp functions or commands that attempt to intelligently "do the right thing" depending on context. The Emacs wiki gives the example of a file copy command that is able to deduce the destination path from a split window configuration that contains two dired buffers, one of which displays the source path; this behaviour also generalises to many applicable dired actions that take two directory paths for arguments. DWIM behaviour, when available, is often mentioned in a command's name; e. g. GNU Emacs has a comment dwim function that comments out a selected region if uncommented, or uncomments it when already commented out, while using comment characters and indentation appropriate for the programming language environment and current context. This kind of DWIM is often not directly concerned with correcting user error but rather guessing user intent from available context. For example, the Emacs Magit package evinces this design philosophy pervasively. Among its numerous diff commands, there is a magit diff dwim command, which requires no further input from the user but simply guesses what the user wants to analyse based on the location of the cursor. The Magit User Manual describes the behaviour of magit diff dwim simply: "Show changes for the thing at point", "point" being the Emacs term for the cursor.