~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 8EDF3B5BF1017894D5CFD81D3A905392__1708362240 ✰
Заголовок документа оригинал.:
✰ Code completion - Wikipedia ✰
Заголовок документа перевод.:
✰ Завершение кода — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Code_completion ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/8e/92/8edf3b5bf1017894d5cfd81d3a905392.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/8e/92/8edf3b5bf1017894d5cfd81d3a905392__translat.html ✰
Дата и время сохранения документа:
✰ 21.06.2024 11:29:45 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 19 February 2024, at 20:04 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

Завершение кода — Википедия Jump to content

Завершение кода

Из Википедии, бесплатной энциклопедии

Завершение кода — это функция автодополнения во многих интегрированных средах разработки (IDE), которая ускоряет процесс кодирования приложений за счет исправления распространенных ошибок и предложения строк кода. Обычно это происходит через всплывающие окна при наборе текста, запрос параметров функций и подсказки по запросам, связанные с синтаксическими ошибками. Современное программное обеспечение для завершения кода обычно использует генеративные системы искусственного интеллекта для прогнозирования строк кода. Завершение кода и связанные с ним инструменты служат для документирования и устранения неоднозначности имен переменных , функций и методов с помощью статического анализа . [1] [2]

Эта функция появляется во многих средах программирования. [3] [4] Реализации включают IntelliSense в Visual Studio Code . Первоначально этот термин был популяризирован как «список выбора», и в некоторых реализациях он до сих пор называется таковым. [5]

Обзор [ править ]

Интеллектуальное завершение кода, аналогичное другим системам автодополнения , представляет собой удобный способ доступа к описаниям функций и, в частности, к спискам их параметров. Эта функция ускоряет разработку программного обеспечения за счет сокращения ввода с клавиатуры и необходимости запоминания имени. Это также позволяет пользователям реже обращаться к внешней документации, поскольку интерактивная документация по многим символам (т. е. переменным и функциям) в активной области отображается динамически в виде всплывающих подсказок . [6]

Интеллектуальное завершение кода использует автоматически создаваемую в памяти базу данных классов, имен переменных и других конструкций, которые определяет или ссылается данный компьютерный код. «Классическая» реализация IntelliSense работает путем обнаружения символов-маркеров, таких как точки (или другие символы-разделители, в зависимости от языка). Когда пользователь вводит один из этих символов сразу после имени сущности, имеющей один или несколько доступных членов (например, содержащиеся переменные или функции), IntelliSense предлагает совпадения во всплывающем диалоговом окне. Пользователь может либо принять предложение, введя символ завершения оператора ( Tab ↹ или ↵ Enter) или маркер языка (например, точка с запятой для C++ ) или продолжайте вводить имя. Со временем IntelliSense определяет, какая переменная или функция, скорее всего, понадобится пользователю. IntelliSense также отображает краткое описание функции во всплывающем окне — в зависимости от объема документации в исходном коде функции .

Эта функция также позволяет пользователям выбирать из ряда перегруженных функций на языках, поддерживающих объектно-ориентированное программирование . Некоторые программы для редактирования кода обеспечивают интеллектуальное завершение кода через сервер протокола языкового сервера (LSP).

История [ править ]

Исследования в области интеллектуального завершения кода начались в 1957 году с программ проверки орфографии растровых изображений рукописного письма и специальных приложений для поиска записей в базах данных, несмотря на неправильные записи. В 1961 году Лес Эрнест , возглавлявший исследования этой многообещающей технологии, счел необходимым включить первую программу проверки орфографии, которая имела доступ к списку из 10 000 допустимых слов. [7] Ральф Горин, в то время аспирант Эрнеста, создал первую настоящую программу проверки орфографии, написанную как приложение (а не исследование) для общего английского текста. SPELL для DEC PDP-10 в Лаборатории искусственного интеллекта (SAIL) Стэнфордского университета был опубликован в феврале 1971 года. [8] Горин написал программу на ассемблере для более быстрого действия; он сделал это, найдя в списке слов возможные правильные варианты написания, которые отличаются одной буквой или транспозицией соседних букв, и представив их пользователю. Горин сделал SPELL общедоступным, как это было сделано с большинством программ SAIL, и вскоре он распространился по всему миру через тогда еще новую сеть ARPANET , примерно за десять лет до того, как персональные компьютеры стали широко использоваться. [9] SPELL, его алгоритмы и структуры данных вдохновили Unix- программу Ispell .

Поддержка в редакторах и IDE [ править ]

Visual Studio [ править ]

IntelliSense — это Microsoft реализация автодополнения кода от , наиболее известная в Visual Studio . Впервые он был представлен как функция основного продукта Microsoft в 1996 году. [10] опираясь на многие уже изобретенные концепции завершения кода и проверки синтаксиса, с помощью Visual Basic 5.0 Control Creation Edition, который, по сути, был общедоступным прототипом Visual Basic 5.0. [11] Первоначально Visual Basic IDE была основным «испытательным стендом» для этой технологии, но IntelliSense был включен в Visual FoxPro и Visual C++. [12] во временном интервале Visual Studio 97 (одна редакция после первого появления в Visual Basic). были основаны на возможностях самоанализа COM Поскольку версии IntelliSense для Visual Basic , они всегда были более надежными и полными, чем версии 5.0 и 6.0 (97 и 98 в последовательности именования Visual Studio) Visual C++, которые не имели этого преимущества. быть полностью основанным на COM. Эти недостатки (критикуемые многими разработчиками VC++ начиная с версии 97) в значительной степени исправлены в линейках продуктов .NET . Например, одной из наиболее востребованных возможностей, отсутствовавших в продуктах до .NET, была поддержка шаблонов , которая теперь полностью реализована. [13]

IntelliSense вступила в новый этап разработки с унифицированной средой Visual Studio.NET, впервые выпущенной в 2001 году и дополненной более мощными возможностями самоанализа и документирования кода, предоставляемыми платформой .NET. IntelliSense теперь поддерживается редакторами Visual Studio для C++ , C# , J# , Visual Basic , XML , HTML и XSLT , а также других. Начиная с Visual Studio 2005 , IntelliSense теперь активируется по умолчанию, когда пользователь начинает печатать, вместо необходимости использования символов-маркеров (хотя это поведение можно отключить). IDE как имеет возможность выводить больший объем контекста на основе того, что вводит разработчик, до такой степени, что базовые языковые конструкции, такие для и при этом также включены в список выбора. В 2017 году Microsoft анонсировала IntelliCode, [14] который использует машинное обучение, чтобы точно определить, какой именно язык или функция библиотеки будет использоваться при каждом нажатии клавиши. Первоначально он был доступен только как расширение для C#, но ожидается, что он будет встроен в будущие выпуски Visual Studio.

Visual Studio 2022 включает функции искусственного интеллекта, такие как GitHub Copilot , который может автоматически предлагать целые строки кода на основе окружающего контекста.

Другие продукты Microsoft, включающие IntelliSense, включают Expression Web , FrontPage 2003 , Small Basic , интегрированные среды разработки Visual Basic для приложений в продуктах Microsoft Office , Visual Studio Code и многие другие. SQL Server 2008 Management Studio имеет автозаполнение синтаксиса SQL.

Затмение [ править ]

В среде Eclipse IDE имеются инструменты завершения кода, поставляемые вместе с программой. [15] [16] Он включает в себя заметную поддержку разработки кода на Java, C++ и JavaScript. Проект Code Recommenders Eclipse, используемый для обеспечения мощного интеллектуального завершения, [17] но из-за нехватки ресурсов был удален в Eclipse 2018–12, а затем заархивирован в июле 2019 года. [18] [19] [20]

Вим [ править ]

Вим Интеллисенс [21] — это усовершенствованная система завершения кода для редактора Vim .

Пример [ править ]

Предположим, что приложение C++, редактируемое в Visual Studio, имеет класс Foo с некоторыми функциями-членами:

класс   Foo   { 
   public  : 
     void   bar  (); 
      void   foo_bar  (  char   c  ,   int   n  ); 
  }; 

Когда разработчик ссылается на этот класс в исходном коде, например:

Фу   -фу  ; 
  фу  . 

как только пользователь вводит точку после foo, IntelliSense автоматически перечисляет все доступные функции-члены (т. е. bar() и foo_bar()) и все доступные атрибуты участников (частные и защищенные участники могут быть идентифицированы по изображению замка рядом с их именами). Затем пользователь может выбрать одну, используя клавиши со стрелками и нажимая символ завершения, когда выделена правильная функция-член. Если доступно, IntelliSense отображает краткое описание функции-члена, как указано в документации по исходному коду.

IntelliSense идет дальше, указывая необходимые параметры в другом всплывающем окне по мере того, как пользователь заполняет параметры. Когда пользователь вводит имя переменной, функция также предлагает варианты завершения переменной по мере их ввода. IntelliSense продолжает отображать параметры, выделяя соответствующий по мере ввода пользователем.

Пользователь может «заставить» IntelliSense отображать всплывающий список без контекста, используя Ctrl+ J или Ctrl+ Space. В Visual Studio отображается вся объектная модель домена приложения, доступная разработчику.

Примечания [ править ]

  1. ^ Роббс, Ромен; Ланца, Мишель (2008). «Как история программы может улучшить завершение кода». 2008 г. 23-я Международная конференция IEEE/ACM по автоматизированной разработке программного обеспечения . стр. 317–326. дои : 10.1109/ASE.2008.42 . ISBN  978-1-4244-2187-9 . S2CID   2093640 .
  2. ^ «Завершение кода, эпизод 1: сценарии и требования» . Блог JetBrains . 28 мая 2021 г. Проверено 17 ноября 2023 г.
  3. ^ Часто задаваемые вопросы — CodeBlocks . Wiki.codeblocks.org (01 февраля 2014 г.). Проверено 4 апреля 2014 г.
  4. ^ Документация Qt — Завершение кода . Проверено 7 июля 2015 г.
  5. ^ Использование Dynamic Apex для получения значений раскрывающегося списка | Блог разработчиков Force . Blogs.developerforce.com (09 декабря 2008 г.). Проверено 4 апреля 2014 г.
  6. ^ Стены. С#2005 . стр. 56.
  7. ^ Эрнест, Лес. «Первые три средства проверки правописания» (PDF) . Стэндфордский Университет. Архивировано из оригинала (PDF) 22 октября 2012 года . Проверено 10 октября 2011 г.
  8. ^ Петерсон, Джеймс (декабрь 1980 г.). Компьютерные программы для обнаружения и исправления орфографических ошибок (PDF) . Проверено 18 февраля 2011 г.
  9. ^ Эрнест, Лес. Видимое наследие 3000 года (PDF) . Архивировано из оригинала (PDF) 20 июля 2011 года . Проверено 18 февраля 2011 г.
  10. ^ «Архив базы данных Microsoft/165524 — BetaArchive Wiki» . www.betaarchive.com . Проверено 19 ноября 2023 г.
  11. ^ «Microsoft представляет Visual Basic 5.0, Control Creation Edition» . Истории . 28 октября 1996 года . Проверено 19 ноября 2023 г.
  12. ^ «Microsoft представляет Visual C++ 6.0» . Истории . 29 июня 1998 года . Проверено 19 ноября 2023 г.
  13. ^ Использование IntelliSense . Msdn.microsoft.com. Проверено 4 апреля 2014 г.
  14. ^ Visual Studio IntelliCode
  15. ^ «Угловая статья Eclipse: раскрытие возможностей рефакторинга | Eclipse Foundation» .
  16. ^ «Технологии» . ИБМ .
  17. ^ Рекомендации по коду Eclipse: все дело в интеллектуальном дополнении кода . Code-recommenders.blogspot.com (03.05.2010). Проверено 4 апреля 2014 г.
  18. ^ 542689 - Не включать рекомендации по коду на 2018-12 гг.
  19. ^ cross-project-issues-dev Отзыв рекомендателей кода из SimRel
  20. ^ Архивные проекты | Фонд Затмения
  21. ^ Вим Intellisense . Insenvim.sourceforge.net. Проверено 4 апреля 2014 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 8EDF3B5BF1017894D5CFD81D3A905392__1708362240
URL1:https://en.wikipedia.org/wiki/Code_completion
Заголовок, (Title) документа по адресу, URL1:
Code completion - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)