Sözdizimi vurgulama - Syntax highlighting

HTML sözdizimi vurgulama

Sözdizimi vurgulama , HTML gibi programlama , komut dosyası oluşturma veya biçimlendirme dilleri için kullanılan metin düzenleyicilerinin bir özelliğidir . Özellik, metni, özellikle kaynak kodunu , terimlerin kategorisine göre farklı renk ve yazı tiplerinde görüntüler. Bu özellik, hem yapılar hem de sözdizimi hataları olarak programlama dili veya biçimlendirme dili gibi yapılandırılmış bir dilde yazmayı kolaylaştırır.görsel olarak farklıdır. Bu özellik aynı zamanda, kod parçacıklarının okuyucular için daha kolay anlaşılmasını sağlamak için, renkli kitaplar veya çevrimiçi web siteleri biçiminde programlamayla ilgili birçok bağlamda (programlama kılavuzları gibi) kullanılır. Vurgulama metnin anlamını etkilemez; yalnızca insan okuyucular için tasarlanmıştır.

Sözdizimi vurgulama, bir ikincil gösterim biçimidir , çünkü vurgular metin anlamının bir parçası değildir, ancak onu güçlendirmeye hizmet eder. Bazı düzenleyiciler, sözdizimi vurgulamayı , dilin dışında olan düzenlemeye yardımcı olmak için yazım denetimi veya kod katlama gibi diğer özelliklerle de entegre eder.

pratik faydalar

JavaScript'te eksik sınırlayıcının etkisini vurgulama ( watch='false 'den sonra )

Sözdizimi vurgulama, metnin okunabilirliğini ve bağlamını iyileştirmeye yönelik bir stratejidir; özellikle birkaç sayfaya yayılan kod için. Okuyucu, aradıkları şeye bağlı olarak büyük yorum veya kod bölümlerini kolayca görmezden gelebilir. Sözdizimi vurgulama, programcıların programlarındaki hataları bulmasına da yardımcı olur. Örneğin, çoğu düzenleyici dize değişmezlerini farklı bir renkte vurgular . Sonuç olarak, metnin zıt rengi nedeniyle eksik bir sınırlayıcıyı tespit etmek çok daha kolaydır. Brace eşleştirme , birçok popüler düzenleyicide bulunan bir diğer önemli özelliktir. Bu, bir ayraç bırakılıp bırakılmadığını görmeyi veya çifti farklı bir renkle vurgulayarak imlecin üzerinde olduğu ayraç eşleşmesini bulmayı kolaylaştırır.

PPIG konferansında yayınlanan bir araştırma , sözdizimi vurgulamanın kısa programların anlaşılması üzerindeki etkilerini değerlendirdi ve sözdizimi vurgulamanın varlığının, bir programcının bir programın anlamını içselleştirmesi için geçen süreyi önemli ölçüde azalttığını buldu. Ek olarak, çalışma sırasında bir göz izleyiciden toplanan veriler, sözdizimi vurgulamanın programcıların anahtar kelimeler gibi standart sözdizimsel bileşenlere daha az dikkat etmelerini sağladığını ileri sürdü.

Metin editörlerinde destek

gedit , sözdizimi vurgulamayı destekler

Bazı metin düzenleyiciler, renkli işaretlemeyi yazdırmaya veya sözcük işleme ve diğer metin biçimlendirme yazılımlarına içe aktarmaya uygun bir biçimde de dışa aktarabilir; örneğin , sözdizimi vurgulamanın HTML, renklendirilmiş LaTeX, PostScript veya RTF versiyonu olarak. Diğer uygulamalarda kullanılabilen, ancak kendi başlarına tam program olmayan birkaç sözdizimi vurgulama kitaplığı veya "motoru" vardır, örneğin PHP için Generic Syntax Highlighter ( GeSHi ) uzantısı .

Birden fazla dili destekleyen editörler için, kullanıcı genellikle C , LaTeX , HTML gibi metnin dilini belirleyebilir veya metin düzenleyici, dosya uzantısına göre veya dosyanın içeriğini tarayarak metni otomatik olarak tanıyabilir. Bu otomatik dil algılama, potansiyel sorunlar sunar. Örneğin, bir kullanıcı aşağıdakileri içeren bir belgeyi düzenlemek isteyebilir:

  • birden fazla dil (örneğin , gömülü JavaScript kodu içeren bir HTML dosyasını düzenlerken ),
  • tanınmayan bir dil (örneğin, belirsiz veya nispeten yeni bir programlama dili için kaynak kodu düzenlerken),
  • dosya türünden farklı bir dil (örneğin, dili algılamak için dosya uzantılarını kullanan bir düzenleyicide uzantısız bir dosyada kaynak kodu düzenlerken).

Bu durumlarda, hangi dilin kullanılacağı net değildir ve bir belge vurgulanmayabilir veya yanlış vurgulanabilir.

sözdizimi öğeleri

Sözdizimi vurgulamalı çoğu düzenleyici, sözdiziminin düzinelerce farklı sözcüksel alt öğesine farklı renklerin ve metin stillerinin verilmesine izin verir. Bunlar, anahtar sözcükleri, yorumları, kontrol akışı deyimlerini, değişkenleri ve diğer öğeleri içerir. Programcılar, kodun okunmasını zorlaştırmadan, mümkün olduğunca çok yararlı bilgi göstermek amacıyla genellikle ayarlarını yoğun bir şekilde özelleştirirler.

Sözdizimi dekorasyonu olarak adlandırılan bazı editörler ->, kaynak koddaki gibi bir işaretçi operatörünü gerçek bir ok sembolü (→) ile değiştirerek veya /italics/, *boldface* gibi metin dekorasyon ipuçlarını değiştirerek, belirli sözdizimsel öğeleri daha görsel olarak daha hoş şekillerde gösterirler. veya gerçek bir italik , kalın yazı tipi veya altı çizili sunu ile kaynak kod yorumlarında _altı çizili_ .

Örnekler

Aşağıda bir karşılaştırma pasajı ait C kodu:

Standart oluşturma Sözdizimi vurgulama
/* Hello World */
#include <stdlib.h>
#include <stdio.h>

int main()
{
    printf("Hello World\n");
    return 0;
}
/* Hello World */
#include <stdlib.h>
#include <stdio.h>

int main()
{
    printf("Hello World\n");
    return 0;
}

Aşağıda, vurgulanan C++ kodunun başka bir sözdizimi snippet'i verilmiştir :

// Create "window_count" Window objects:
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 ++ 'de, editör tanıdığını kelime const , auto, intve for. Başlangıçtaki yorum , onu çalışma kodundan ayırt etmek için belirli bir şekilde vurgulanmıştır.

Tarihçe ve sınırlamalar

Sözdizimi vurgulama fikirleri, sözdizimine yönelik düzenleyicilerin fikirleriyle önemli ölçüde örtüşür . Kod için bu tür ilk editörlerden biri Wilfred Hansen'in 1969 kod editörü Emily idi. Gelişmiş dilden bağımsız kod tamamlama olanakları sağladı ve sözdizimi vurgulamalı modern editörlerin aksine, sözdizimsel olarak yanlış programlar oluşturmayı gerçekten imkansız hale getirdi.

1982'de Anita H. Klock ve Jan B. Chodak , 1983'te piyasaya sürülen Intellivision'ın Eğlence Bilgisayar Sistemi (ECS) çevre biriminde kullanılan bilinen ilk sözdizimi vurgulama sistemi için bir patent başvurusunda bulundular . Yeni başlayanların, özellikle çocukların kod yazmaya başlamasını kolaylaştırmak amacıyla uygulandı. Daha sonra, 1985 yılında Oxford English Dictionary'nin bilgisayarlaştırılması için VM işletim sistemi için yazılan Live Parsing Editor ( LEXX ), renk sözdizimi vurgulamayı ilk kullananlardan biriydi. Onun canlı ayrıştırma yeteneği izin kullanıcı tarafından sağlanan ayrıştırıcılarda günü vb metin, programlar, veri dosyası için, editöre eklenecek mikrobilgisayarların , MacPascal 1.0 o daktilo ve el yazı değişiklikler gibi (10 Ekim 1985) Pascal sözdizimi tanınan (örneğin , anahtar kelimeler için kalın), monokrom kompakt Macintosh'ta sözdizimini vurgulamak ve yapısına uyması için otomatik olarak girintili kod.

Bazı metin düzenleyiciler ve kod biçimlendirme araçları, olası her dil için bir ayrıştırıcı uygulamak yerine, model eşleştirme buluşsal yöntemlerini (örn. Normal ifadeler ) kullanarak sözdizimi vurgulama gerçekleştirir . Bu, bir metin oluşturma sisteminin biraz hatalı sözdizimi vurgulaması göstermesine ve bazı durumlarda yavaş çalışmasına neden olabilir. Metin editörleri tarafından bu sorunun üstesinden gelmek için kullanılan bir çözüm, her zaman tüm dosyayı değil, yalnızca görünen alanı ayrıştırmak, bazen "senkronizasyon" için sınırlı sayıda satıra kadar metinde geriye doğru tarama yapmaktır.

Öte yandan, editör genellikle kodu oluşturma sırasında eksik veya yanlışken görüntüler ve katı ayrıştırıcılar (derleyicilerde kullanılanlar gibi) çoğu zaman kodu ayrıştırmada başarısız olur.

Bazı modern, dile özgü IDE'ler (metin düzenleyicilerin aksine) tam dil ayrıştırma gerçekleştirir ve bu da kodun çok doğru anlaşılmasıyla sonuçlanır. Sözdizimi vurgulamanın bir uzantısı, 2009'da David Nolden tarafından açık kaynaklı C++ IDE KDevelop için "anlamsal vurgulama" olarak adlandırıldı . Örneğin, anlamsal vurgulama, kodun anlaşılırlığını geliştirmek için yerel değişkenlere benzersiz farklı renkler verebilir. 2014'te renkli yerel değişkenler fikri, Evan Brooks'un bir blog yazısı nedeniyle daha da popüler hale geldi ve bundan sonra fikir, Visual Studio , Xcode ve diğerleri gibi diğer popüler IDE'lere aktarıldı .

Kullanıcı bir dereceye kadar renk körlüğüne sahipse, kullanıcı arabirimindeki renk daha az kullanışlıdır .

Ayrıca bakınız

Referanslar