~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 34289AB61CDE27F154B40F7989C46A45__1714155840 ✰
Заголовок документа оригинал.:
✰ Syntax highlighting - Wikipedia ✰
Заголовок документа перевод.:
✰ Подсветка синтаксиса — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Syntax_highlighting ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/34/45/34289ab61cde27f154b40f7989c46a45.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/34/45/34289ab61cde27f154b40f7989c46a45__translat.html ✰
Дата и время сохранения документа:
✰ 18.06.2024 00:38:59 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 26 April 2024, at 21:24 (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

Подсветка синтаксиса

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

Подсветка синтаксиса — это функция текстовых редакторов , которая используется для языков программирования , сценариев или языков разметки , таких как HTML . Эта функция отображает текст, особенно исходный код , разными цветами и шрифтами в зависимости от категории терминов. [1] Эта функция облегчает написание на структурированном языке, таком как язык программирования или язык разметки, поскольку структуры и синтаксические ошибки визуально различимы. Эта функция также используется во многих контекстах, связанных с программированием (например, в руководствах по программированию), либо в виде красочных книг, либо в виде онлайн-сайтов, чтобы облегчить читателям понимание фрагментов кода. Выделение не влияет на смысл самого текста; он предназначен только для читателей-людей.

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

Практическая польза

Выделение эффекта отсутствия разделителя (после watch='false ) в JavaScript

Подсветка синтаксиса — это одна из стратегий улучшения читаемости и контекста текста; особенно для кода, занимающего несколько страниц. Читатель может легко игнорировать большие разделы комментариев или кода, в зависимости от того, что он ищет. Подсветка синтаксиса также помогает программистам находить ошибки в своей программе. Например, большинство редакторов выделяют строковые литералы другим цветом. Следовательно, обнаружить отсутствующий разделитель гораздо проще из-за контрастного цвета текста. Сопоставление скобок — еще одна важная функция многих популярных редакторов. Это позволяет легко увидеть, была ли пропущена фигурная скобка, или найти совпадение с фигурной скобкой, на которой находится курсор, выделив пару другим цветом.

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

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

gedit поддерживает подсветку синтаксиса

Некоторые текстовые редакторы также могут экспортировать цветную разметку в формат, подходящий для печати или для импорта в текстовые редакторы и другие виды программного обеспечения для форматирования текста; например, в виде HTML, цветной версии LaTeX, PostScript или RTF подсветки синтаксиса. Существует несколько библиотек или «движков» подсветки синтаксиса, которые можно использовать в других приложениях, но сами по себе они не являются полноценными программами, например расширение Generic Syntax Highlighter (GeSHi) для PHP .

Для редакторов, поддерживающих более одного языка, пользователь обычно может указать язык текста, например C , LaTeX , HTML , или текстовый редактор может автоматически распознать его на основе расширения файла или путем сканирования содержимого файла. Такое автоматическое определение языка создает потенциальные проблемы. Например, пользователь может захотеть отредактировать документ, содержащий:

  • более одного языка (например, при редактировании HTML- файла, содержащего встроенный код JavaScript ),
  • язык, который не распознается (например, при редактировании исходного кода малоизвестного или относительно нового языка программирования),
  • язык, который отличается от типа файла (например, при редактировании исходного кода в файле без расширения в редакторе, который использует расширения файлов для определения языка).

В этих случаях непонятно, какой язык использовать, и документ может не подсвечиваться или подсвечиваться неправильно.

Элементы синтаксиса [ править ]

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

Некоторые редакторы, называемые украшением синтаксиса , также отображают определенные синтаксические элементы более визуально приятными способами, например, заменяя оператор указателя, например -> в исходном коде с помощью фактического символа стрелки (→) или изменения подсказок оформления текста , таких как /italics/, *boldface* или _underline_ в комментариях исходного кода, с помощью фактического курсива , жирного шрифта или подчеркнутого представления.

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

Ниже приведено сравнение фрагмента кода C :

Стандартный рендеринг Подсветка синтаксиса
/* Привет, мир */
 #include <stdlib.h>
 #include <stdio.h>

 интервал основной()
 {
     printf("Привет, мир\n");
     вернуть 0;
 }
 
/* Привет, мир */ 
 #include   <stdlib.h> 
 #include   <stdio.h> 

 int   main  () 
 { 
     printf  (  «Hello World  \n  »  ); 
      вернуть   0  ; 
  } 

Ниже приведен еще один фрагмент выделенного синтаксиса C++ кода :

// Создаем объекты Window_count: 
 const   auto   window_count   =   int  {  10  }; 
  auto   windows   =   std  ::  array  <  std  ::  shared_ptr  ,  <Window>  max_window_count  {   ;  >  } 
  for   (  auto   i   =   int  {0}  =  ;   i   <   window_count  ;   ++  i  )   { 
     windows  [  i  ]   ::   std  make_shared  ;  <  Window  >  () 
  } 

В примере C++ редактор распознал ключевые слова const, auto, int, и for. Комментарий . в начале также особым образом выделен, чтобы отличить его от рабочего кода

История и ограничения [ править ]

Идеи подсветки синтаксиса во многом совпадают с идеями синтаксически управляемых редакторов . Одним из первых таких редакторов кода была Эмили, редактор кода Уилфреда Хансена 1969 года. [3] [4] Он предоставлял расширенные, независимые от языка средства завершения кода и, в отличие от современных редакторов с подсветкой синтаксиса, фактически делал невозможным создание синтаксически неверных программ.

В 1982 году Анита Х. Клок и Ян Б. Чодак подали патент на первую известную систему подсветки синтаксиса. [5] который использовался в периферийном устройстве Intellivision Entertainment Computer System (ECS), выпущенном в 1983 году. [6] В нем подчеркивались различные элементы программ на языке BASIC, и он был реализован с целью облегчить новичкам, особенно детям, начало написания кода. [7] Позже Live Parsing Editor ( LEXX ), написанный для операционной системы VM для компьютеризации Оксфордского словаря английского языка в 1985 году, был одним из первых, кто использовал цветовую подсветку синтаксиса. Его возможность живого анализа позволяла добавлять в редактор пользовательские анализаторы для текста, программ, файлов данных и т. Д. [8] На микрокомпьютерах MacPascal 1.0 (10 октября 1985 г.) распознавал синтаксис Pascal при его вводе и использовал изменения шрифта (например, выделение жирным шрифтом для ключевых слов) для выделения синтаксиса на монохромном компактном Macintosh и автоматически делал отступы в коде в соответствии с его структурой. [9]

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

С другой стороны, редактор часто отображает код во время его создания, хотя он является неполным или неверным, а строгие парсеры (например, используемые в компиляторах) большую часть времени не смогут разобрать код.

, ориентированные на конкретный язык Некоторые современные IDE (в отличие от текстовых редакторов), выполняют полный анализ языка, что приводит к очень точному пониманию кода. Расширение подсветки синтаксиса было названо «семантической подсветкой». Дэвидом Нолденом в 2009 году [11] для C++ IDE с открытым исходным кодом KDevelop . Например, семантическая подсветка может придать локальным переменным уникальные цвета, чтобы улучшить понятность кода. В 2014 году идея цветных локальных переменных получила дальнейшее распространение благодаря сообщению в блоге Эвана Брукса: [12] и после этого идея была перенесена в другие популярные IDE, такие как Visual Studio , [13] Xcode , [14] и другие.

Цвет в пользовательском интерфейсе менее полезен, если пользователь имеет некоторую степень дальтонизма .

См. также [ править ]

Ссылки [ править ]

  1. ^ Джим Д'Анжу; Шерри Шейвор; Скотт Фэйрбразер; Дэн Кен; Джон Келлерман; Пэт Маккарти (2005). Руководство Java-разработчика по Eclipse (2-е изд.). Бостон: Аддисон-Уэсли. ISBN  978-0-321-30502-2 .
  2. ^ Саркар, Адвайт (2015). «Влияние окраски синтаксиса на понимание программы» . Материалы 26-й ежегодной конференции группы по психологии программирования : 49–58. Архивировано из оригинала 24 сентября 2015 года . Проверено 27 сентября 2023 г.
  3. ^ Хансен, Уилфред Дж. (1971). «Принципы пользовательской разработки интерактивных систем». Материалы осенней совместной компьютерной конференции FJCC 39 . АФИПС. стр. 5623–532.
  4. ^ Хансен, Уилфред. «Эмили — редактор структурированного текста» . Проверено 17 июня 2013 г.
  5. ^ Метод и устройство исправления синтаксических ошибок , 29 октября 1982 г. , получено 12 апреля 2018 г.
  6. ^ Mattel Intellivision: Руководство пользователя компьютерного модуля Intellivision (1983) (Mattel) (США) . 1983.
  7. ^ «Классическая система видеоигр Intellivision/компьютерная система развлечений» . www.intellivisionlives.com . Архивировано из оригинала 17 июля 2018 г. Проверено 12 апреля 2018 г.
  8. ^ Коулишоу, МФ (1987). «LEXX – Программируемый структурированный редактор» (PDF) . Журнал исследований и разработок IBM, том 31, № 1, номер заказа на перепечатку IBM G322-0151 . ИБМ.
  9. ^ Аллен, Дэн (10 октября 2011 г.). «Трио исторических воспоминаний» . mpw-dev (список рассылки). Архивировано из оригинала 21 августа 2017 г. Проверено 12 сентября 2019 г.
  10. ^ «Файлы определения языка KEDIT» . Кедит . Mansfield Software Group, Inc. , 2012 г. Проверено 7 апреля 2016 г.
  11. ^ «Сообщение в блоге 2009 года о семантическом выделении, представленное в KDevelop Дэвидом Нолденом» . 8 января 2009 г.
  12. ^ «Сообщение в блоге Эвана Брукса о семантическом выделении, 2014 г.» . 17 апреля 2017 г.
  13. ^ «Статья журнала Visual Studio Magazine о семантическом выделении» .
  14. ^ «Страница Github плагина, который реализует семантическую подсветку для Xcode» . Гитхаб . 14 сентября 2022 г.
Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 34289AB61CDE27F154B40F7989C46A45__1714155840
URL1:https://en.wikipedia.org/wiki/Syntax_highlighting
Заголовок, (Title) документа по адресу, URL1:
Syntax highlighting - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)