Кіріспе

IDE-лердегі автоматты толықтыру мүмкіндігі
Кодты толықтыру – көптеген интегралды даму орталарында (IDE) қолданылатын, бағдарламаларды кодтау процесін жалпы қателерді түзету және код жолдарының нұсқаларын ұсыну арқылы жылдамдататын автоматты толықтыру мүмкіндігі. Бұл көбінесе теру кезінде пайда болатын түйреулер, функциялар параметрлерін анықтау және синтаксис қателеріне қатысты ақпараттар арқылы жүзеге асырылады. Қазіргі заманғы кодты толықтыру бағдарламалық жасақтамасы көбінесе код жолдарының болашағын болжау үшін генеративті жасанды интеллект жүйелерін пайдаланады. Кодты толықтыру және оған байланысты құралдар айнымалы атаулар, функциялар және әдістер үшін құжаттама және мағынасын ашып көрсету құралы ретінде статикалық талдауды қолданады. Бұл мүмкіндік көптеген бағдарламалау орталарында қолданылады. Мысалға, Visual Studio Code-те IntelliSense мүмкіндігі бар. Бұл термин бастапқыда "picklist" деп танымал болды және кейбір жүзеге асыруларда осылай аталады.

Шолу

Басқа автоматты толтыру жүйелеріне ұқсас, интеллектуалды кодты толтыру – функциялардың, әсіресе олардың параметрлік тізімдерінің сипаттамаларына қол жеткізудің ыңғайлы тәсілі болып табылады. Бұл мүмкіндік бағдарламалық жасақтаманы дамытуды жылдамдатып, пернетақтадан енгізуді және атауларды жаттау қажеттілігін азайтады. Сондай-ақ, пайдаланушыларға сыртқы құжаттамаға сирек жүгінуге мүмкіндік береді, себебі белсенді аумақтағы көптеген символдар (яғни, айнымалылар мен функциялар) туралы интерактивті құжаттама құралдар түрінде динамикалық түрде пайда болады. Интеллектуалды кодты толтыру, кластардың, айнымалылардың атауларының және компьютерлік код анықтайтын немесе сілтеме беретін басқа да құрылымдардың автоматты түрде жадыда құрылған деректер базасын пайдаланады. IntelliSense-тің «классикалық» нұсқасы нүктелер (немесе тілге байланысты басқа да бөлігіш таңбалар) сияқты таңбаларды анықтау арқылы жұмыс істейді. Пайдаланушы бір немесе бірнеше қолжетімді мүшелері бар (мысалы, ішкі айнымалылар немесе функциялар) бірлік атауынан кейін бірден осы таңбалардың біреуін теріп жазғанда, IntelliSense ашылатын терезеде нұсқауларды ұсынады. Пайдаланушы ұсынысты қабылдау үшін толықтыру таңбасын (немесе) немесе тілге тән таңбаны (мысалы, C++ үшін нүктелі үтір) теріп жазуы немесе атауды теруді жалғастыруы мүмкін. Уақыт өте келе, IntelliSense пайдаланушыға қандай айнымалы немесе функция қажеттігін анықтайды. IntelliSense сонымен қатар ашылатын терезеде функцияның қысқаша сипаттамасын көрсетеді – бұл функцияның бастапқы кодындағы құжаттаманың мөлшеріне байланысты. Бұл мүмкіндік сонымен қатар пайдаланушыларға объектіге бағытталған бағдарламалауды қолдайтын тілдерде бірнеше артық жүктелген функциялардан таңдауға мүмкіндік береді. Кейбір код өңдеу бағдарламалық жасақтамасы Тілдік сервер протоколы (LSP) сервері арқылы интеллектуалды кодты толтыруды қамтамасыз етеді.

Тарих

Зияткерлік кодты толықтыру бойынша зерттеулер 1957 жылы басталды, онда қолмен жазылған мәтіндердің биттік карталық суреттері үшін орфографиялық тексерушілер және деректер базасындағы жазбаларды дұрыс емес енгізілген жазбаларға қарамастан табуға арналған арнайы қолданбалар пайда болды. 1961 жылы осы дамып келе жатқан технологияны зерттеуді басқарған Лес Эрнест 10 000 қабылданатын сөз тізіміне қол жеткізетін алғашқы орфографиялық тексеруді енгізу қажет деп санады. Ол кезде Эрнесттің аспиранты болған Ральф Горин жалпы ағылшын мәтіні үшін қолданба ретінде (зерттеу емес) жазылған нағыз орфографиялық тексеру бағдарламасын жасады. SPELL, Стэнфорд университетінің Жасанды интеллект зертханасындағы (SAIL) DEC PDP 10 үшін 1971 жылдың ақпан айында жарияланды. Горин бағдарламаны жылдам жұмыс істеуі үшін тілдік жиналымда жазды; ол бір әріп айырмашылығымен немесе жақын әріптердің орны ауысқан нұсқаларын іздеу арқылы сөз тізімінде ықтимал дұрыс жазуларын тауып, оларды пайдаланушыға ұсынды. Горин SPELL-ді көпшілікке қолжетімді етті, дәл сол сияқты SAIL бағдарламаларының көпшілігі жасалғандай, және ол көп ұзамай сол кездегі жаңа ARPANET арқылы бүкіл әлемге тарады, дербес компьютерлер кеңінен қолданысқа енгенге дейін шамамен он жыл бұрын. SPELL және оның алгоритмдері мен дерек құрылымдары Unix бағдарламасы Ispell-ге әсер етті.

Visual Studio-ның атауы

IntelliSense — Microsoft-тың ең танымал Visual Studio-да кодты толықтыру мүмкіндігін жүзеге асыруы. Ол алғаш рет 1996 жылы негізгі Microsoft өнімінің бір мүмкіндігі ретінде енгізілді, Visual Basic 5.0 Control Creation Edition арқылы кодты толықтыру және синтаксис тексерудің көптеген бұрыннан ойлап табылған ұғымдарына негізделген. Бұл, әдетте, Visual Basic 5.0-дің жалпы қолжетімді прототипі болды. Бастапқыда Visual Basic IDE технологияның негізгі «сынақ алаңы» болды, бірақ IntelliSense Visual FoxPro және Visual C++ бағдарламаларына Visual Studio 97 кезеңінде қосылды (Visual Basic-те алғаш рет пайда болғаннан кейін бір жаңарту). COM-ның интроспекция мүмкіндіктеріне негізделгендіктен, IntelliSense-тің Visual Basic нұсқалары Visual C++ 5.0 және 6.0 (Visual Studio атау тізбегіндегі 97 және 98 нұсқалары) нұсқаларына қарағанда әлдеқайда тұрақты және толық болды, себебі олар COM-ға толыққанды негізделген жоқ. Бұл кемшіліктер (97 жылғы шығарылымнан бері көптеген VC++ әзірлеушілері тарапынан сынға алынды) NET өнімдерінің желісінде көбінесе түзетілді. Мысалы, NET-ке дейінгі өнімдерде болмаған, ең көп сұранысқа ие мүмкіндіктердің бірі – қазір толыққанды іске асырылған шаблонды қолдау болды. IntelliSense біріктірілген Visual Studio .NET ортасының 2001 жылы алғашқы рет шығарылған жаңа даму кезеңіне енді, оны .NET framework қамтамасыз ететін күшті интроспекция және кодты құжаттау мүмкіндіктерімен толықтырды. IntelliSense енді C++, C#, J#, Visual Basic, XML, HTML және XSLT сияқты тілдер үшін Visual Studio редакторларында қолдау көрсетіледі. Visual Studio 2005-тен бастап IntelliSense пайдаланушы таңбалау белгілерін қажет етудің орнына, жазуды бастаған кезде автоматты түрде қосылады (осы мінез-құлқыны өшіруге болады). IDE әзірлеуші жазатын нәрсеге негізделген үлкен контексті анықтауға қабілетті, сондықтан негізгі тіл құрылымдары, мысалы, және де таңдау тізіміне қосылады. 2017 жылы Microsoft IntelliCode-ты жариялады, ол машиналық оқытуды қолдана отырып, әр перне басылғанда қандай тіл немесе кітапхана мүмкіндігі көзделуі мүмкін екенін анықтайды. Бастапқыда тек C# үшін кеңейту ретінде қол жетімді, ол Visual Studio-ның болашақ нұсқаларына енгізілуі күтілуде. Visual Studio 2022 жасанды интеллект мүмкіндіктерін қамтиды, мысалы GitHub Copilot, ол айналадағы контекстке негізделген кодтың толық жолдарын автоматты түрде ұсына алады. IntelliSense-ті қолданатын басқа Microsoft өнімдеріне Expression Web, FrontPage 2003, Small Basic, Microsoft Office өнімдеріндегі Visual Basic for Applications IDE, Visual Studio Code және тағы да басқалары кіреді. SQL Server 2008 Management Studio SQL синтаксисі үшін автоматты толықтыру мүмкіндігін ұсынады.

Күн тұтылуы

Eclipse IDE бағдарламасына кодты толықтыру құралдары енгізілген. Ол Java, C++ және JavaScript кодтарын жазуға ерекше қолдау көрсетеді. Code Recommenders Eclipse жобасы бұрын қуатты интеллектуалды толықтыруды ұсынған, бірақ жеткіліксіз ресурстарға байланысты Eclipse 2018–12 нұсқасынан алынып тасталды, ал 2019 жылдың шілдесінде мұрағатқа жатқызылды.

Vim

Vim Intellisense – Vim редакторы үшін жоғары деңгейдегі кодты толықтыру жүйесі.