Şərh — proqramlaşdırmada kompüter proqramının mənbə kodunda proqramçı tərəfindən oxuna bilən izahatı və ya annotasiyası.[1] Onlar mənbə kodunu insanların başa düşməsini asanlaşdırmaq məqsədi ilə əlavə edilir və ümumiyyətlə tərtibçilər və tərcüməçilər tərəfindən nəzərə alınmır. Müxtəlif proqramlaşdırma dillərində şərhlərin sintaksisi xeyli fərqlənir.[2][3]
Şərhlər bəzən sənədləşdirmə generatorları tərəfindən mənbə kodundan kənarda sənədlər yaratmaq üçün müxtəlif yollarla işlənir və ya mənbə kodu idarəetmə sistemləri və digər xarici proqramlaşdırma alətləri ilə inteqrasiya üçün istifadə olunur.
Şərhlərin təmin etdiyi çeviklik geniş dərəcədə dəyişkənliyə imkan verir, lakin onların istifadəsi ilə bağlı rəsmi konvensiyalar adətən proqramlaşdırma üslubu təlimatlarının bir hissəsidir.
Şərhlər ümumiyyətlə blok (həmçinin proloq şərhləri deyilir) və ya sətir şərhləri (həmçinin daxili şərhlər adlanır) kimi formatlanır.[4]
Blok şərhləri mənbə kodunun bir neçə sətrini və ya bir sətrin bir hissəsini əhatə edə bilən bölgəsini limitləşdirir. Bu bölgə başlanğıc və son ayırıcı simvolu ilə müəyyən edilir. Bəzi proqramlaşdırma dilləri (məsələn MATLAB) blok şərhlərini bir-birinin içərisində rekursiv şəkildə yerləşdirməyə imkan verir, digərləri isə (məsələn Java) bunu etmir.[5][6][7]
Sətir şərhləri ya şərh ayırıcısı ilə başlayır və sətrin sonuna qədər davam edir, ya da bəzi hallarda mənbə kodundakı xüsusi sütundan (simvol xətti sürüşməsi) başlayır və sətrin sonuna qədər davam edir.[7]
Bəzi proqramlaşdırma dilləri həm blok, həm də sətir şərhlərini müxtəlif şərh ayırıcıları ilə istifadə edir. Məsələn, C++ dilində //
ilə ayrılmış sətir şərhləri və /*
və */
ilə ayrılmış blok şərhləri mövcuddur. Digər dillər yalnız bir şərh növünü dəstəkləyir. Məsələn, Ada dilinin şərhləri sətir şərhləridir, onlar --
ilə başlayır və sətrin sonuna qədər davam edir.[7]
Source code can be divided into program code (which consists of machine-translatable instructions); and comments (which include human-readable notes and other kinds of annotations in support of the program code).