Кіріспе

Редакторлардың бағдарламалау, сценарийлер жасау және түгендеуге арналған құралы, Википедия және басқа да MediaWiki викилерінде синтаксистік ерекшелендіру.

Синтаксистік ерекшелендіру – бағдарламалау, сценарийлер жасау немесе HTML сияқты түгендеу тілдері үшін қолданылатын мәтін редакторларының мүмкіндігі. Бұл мүмкіндік мәтінді, әсіресе бастапқы кодты, терминдер санатына қарай әртүрлі түстермен және қаріптермен көрсетеді. Бұл мүмкіндік бағдарламалау тілі немесе түгендеу тілі сияқты құрылымды тілде жазуды жеңілдетеді, себебі құрылымдар мен синтаксистік қателер көзбен байқалады. Бұл мүмкіндік көптеген бағдарламалаумен байланысты жағдайларда (мысалы, бағдарламалау нұсқаулықтарында) түрлі-түсті кітаптар немесе онлайн веб-сайттар түрінде қолданылады, бұл кодты оқушылар үшін түсінуді оңайлатады. Ерекшелендіру мәтіннің мағынасына әсер етпейді, ол тек адамдарға арналған. Синтаксистік ерекшелендіру – екіншілік белгілеудің бір түрі, өйткені ерекшелендірулер мәтіннің мағынасының бөлігі емес, оны күшейтуге қызмет етеді. Кейбір редакторлар синтаксистік ерекшелендіруді басқа мүмкіндіктермен, мысалы, орфографиялық тексеру немесе кодты жинақтау сияқты, тілден тыс редакциялауға көмектесетін құралдармен біріктіреді.

Пайдалы кеңестер

Синтаксистің түспен белгіленуі – мәтіннің оқылғыштығы мен мазмұнын жақсартудың бір жолы; әсіресе, бірнеше бетке созылған код үшін. Оқырман іздеп отырған нәрсесіне қарай, түсіндірмелердің немесе кодтың үлкен бөліктерін оңай назардан тыс қалдыра алады. Синтаксистің түспен белгіленуі бағдарламашыларға бағдарламаларындағы қателерді табуға көмектеседі. Мысалы, көптеген редакторлар мәтіндік тұрақтыларды (string literals) басқа түспен көрсетеді. Осының салдарынан, мәтіннің контрастты түсі болғандықтан, жоғалған белгіні табу әлдеқайда оңай. Жұптық жақшаларды (brace matching) анықтау – көптеген танымал редакторлардың тағы бір маңызды мүмкіндігі. Бұл жақшаның қалып қойғандарын анықтауды жеңілдетеді немесе курсор тұрған жақшаның жұбын басқа түспен белгілеп, табуға көмектеседі. PPIG конференциясында жарияланған зерттеуде синтаксистің түспен белгіленуінің қысқа бағдарламаларды түсінуге тигізетін әсері бағаланды, нәтижесінде синтаксистің түспен белгіленуі бағдарламашының бағдарламаның мағынасын қабылдауына жұмсалатын уақытты айтарлықтай қысқартатыны анықталды. Сонымен қатар, зерттеу кезінде көзді қадағалау құрылғысынан алынған деректер синтаксистің түспен белгіленуі бағдарламашыларға кілт сөздер сияқты стандартты синтаксистік элементтерге аз назар бөлгеніне мүмкіндік беретінін көрсетті.

Синтаксис элементтері

Синтаксисті бөлігімен жұмыс істейтін көптеген редакторлар синтаксистің ондаған түрлі лексикалық кіші элементтеріне әртүрлі түстер мен мәтін стильдерін тағайындауға мүмкіндік береді. Оларға кілт сөздер, түсініктемелер, басқару ағыны операторлары, айнымалылар және басқа да элементтер жатады. Бағдарламашылар кодты оқу қиындығын тудырмай, мүмкіндігінше көп пайдалы ақпаратты көрсету үшін өз параметрлерін жиі өзгертеді. Синтаксистік безендіру деп аталатын кейбір редакторлар белгілі бір синтаксистік элементтерді көз тартарлықтай етіп көрсетеді, мысалы, бастапқы кодтағы > сияқты көрсеткіш операторын нақты жебе белгісімен (→) алмастыру арқылы немесе /курсив/, *қалың әріп* сияқты мәтін безендіру белгілерін бастапқы кодтағы түсініктемелерде нақты курсив, қалың әріп немесе сызылған түрінде көрсету арқылы.

Тарих және шектеулер

Синтаксисті ерекшелендіру идеялары синтаксистік бағытталған редакторлармен үлкен дәрежеде үйлеседі. Кодты құрастыруға алғашқы редакторлардың бірі 1969 жылы Уилфред Хансен жасаған редактор болды. Ол тілге тәуелсіз кодты толықтырудың жетілдірілген мүмкіндіктерін ұсынды және қазіргі заманғы синтаксисті ерекшелендіруі бар редакторлардан өзгеше, синтаксистік қателер бар бағдарлама жасауға жол бермейтін. 1982 жылы Анита Х. Клок және Ян Б. Чодак 1983 жылы шыққан Intellivision ойын-сауық компьютерлік жүйесінің (ECS) құрамында қолданылған алғашқы синтаксисті ерекшелендіру жүйесіне патент алды. Ол BASIC бағдарламаларының әртүрлі элементтерін ерекшелендірді және жаңадан бастағандарға, әсіресе балаларға код жазуды жеңілдету мақсатында жасалды. Кейін, 1985 жылы Оксфорд ағылшын сөздігін компьютерлендіру үшін VM операциялық жүйесіне арналған Live Parsing Editor (LEXX) түсті синтаксисті ерекшелендіруді алғаш рет қолданды. Оның тірі талдау мүмкіндігі редакторға мәтін, бағдарламалар, деректер файлы және т.б. үшін пайдаланушы ұсынған талдаушыларды қосуға мүмкіндік берді. Микрокомпьютерлерде MacPascal 1.0 (10 қазан 1985) Pascal синтаксисін теру кезінде танитын және синтаксисті ерекшелеу үшін бір түсті Macintosh экранында шрифттерді өзгертетін (мысалы, кілт сөздерді қалың етіп көрсету) және кодты құрылымына сәйкес автоматты түрде жолдарға бөліп жазатын. Кейбір мәтіндік редакторлар мен кодты форматтау құралдары әр тіл үшін талдаушыны жасаудың орнына, үлгілерге сәйкес келетін эвристикалық тәсілдерді (мысалы, тұрақты өрнектер) қолданып синтаксисті ерекшелендіреді. Бұл мәтінді көрсету жүйесінің синтаксисті дұрыс емес көрсетуіне және кейде баяу жұмыс істеуіне себеп болуы мүмкін. Мәтіндік редакторлар бұл мәселені шешу үшін файлды толығымен емес, тек көрінетін бөлігін талдайды, кейде мәтіннің "синхронизация" үшін шектеулі саптарға дейін кері қарап тексереді. Екінші жағынан, редактор кодты жасау кезінде, оның толыққанды немесе дұрыс болмаған күйінде көрсетеді, ал қатаң талдаушылар (компиляторларда қолданылатындай) кодты көбінесе талдаудан өткізе алмайды. Көптеген заманауи, тілге арналған IDE-лер (мәтіндік редакторлардан өзгеше) толық тілдік талдау жүргізеді, бұл кодты өте дәл түсінуге мүмкіндік береді. 2009 жылы Дэвид Нольден ашық кодты C++ IDE KDevelop үшін "семантикалық ерекшелендіру" терминін енгізді, бұл синтаксисті ерекшелендірудің бір түрі. Мысалы, семантикалық ерекшелендіру кодты түсінуді жақсарту үшін жергілікті айнымалыларға ерекше түстер бере алады. 2014 жылы Эван Брукстің блогында жарияланған түсті жергілікті айнымалылар туралы идея танымал болды, содан кейін бұл идея Visual Studio, Xcode және басқа да көптеген IDE-лерге көшірілді. Пайдаланушы интерфейсіндегі түс, егер пайдаланушының түс айыру қабілеті бұзылған болса, тиімсіз болуы мүмкін.