Кіріспе
Компьютерлік бағдарламалауда блок немесе код блогы немесе кодтың бөлігі – бірге топтастырылған бастапқы кодтың лексикалық құрылымы. Блоктар бір немесе бірнеше жариялаудан және операторлардан тұрады. Блоктарды, оның ішінде басқа блоктардың ішінде орналасқан блоктарды жасауға мүмкіндік беретін бағдарламалау тілі – блоктық құрылымды бағдарламалау тілі деп аталады. Блоктар құрылымдық бағдарламалаудың негізгі элементтері болып табылады, онда басқару құрылымдары блоктардан құралады. Блоктардың екі мақсаты бар: операторларды бір оператор ретінде қарастыру және атаулардың қолданылу аймағын анықтау арқылы оларды басқа жерде қолданылатын бірдей атаудан ажырату. Блоктық құрылымды бағдарламалау тілінде сыртқы блоктарда аталған объектілер ішкі блоктарда көрінеді, егер олар сол атпен жарияланған объектілермен жасырылмаса.
In computer programming, a block or code block or block of code is a lexical structure of source code which is grouped together. Blocks consist of one or more declarations and statements. A programming language that permits the creation of blocks, including blocks nested within other blocks, is called a block structured programming language. Blocks are fundamental to structured programming, where control structures are formed from blocks. Blocks have two functions: to group statements so that they can be treated as one statement, and to define scopes for names to distinguish them from the same name used elsewhere. In a block structured programming language, the objects named in outer blocks are visible inside inner blocks, unless they are masked by an object declared with the same name.
Тарих
Блок құрылымы туралы идеялар 1950 жылдары алғашқы автокодтарды жасау кезінде пайда болды және Algol 58 мен Algol 60 есептерінде қалыптастырылды. Algol 58 бақылау ағынымен ғана байланысты "құрама оператор" түсінігін енгізді. Ал, Algol 60 синтаксисі мен семантикасын сипаттаған кейінгі түзетілген баяндамада блок және блок көлемі түсінігі енгізілді, онда "begin мен end арасындағы декларациялар тізбегінен және операторлар тізбегінен тұратын блок" қарастырылады, мұнда "[әрбір декларация] осылай блок ішінде пайда болады және тек сол блок үшін ғана жарамды".
Шектеулер
Декларацияларды қолдайтын кейбір тілдер барлық декларацияларды толық қолдамайды; мысалы, көптеген C-ден туындаған тілдер блок ішінде функцияны анықтауға рұқсат бермейді (ішкі функциялар). Ал оның атасы Алголдан айырмашылығы, Паскальде бар блоктің begin және end арасында өз декларациялары бар блоктарды қолдау жоқ, тек қана if, while, repeat және басқа бақылау операторларында мәлімдемелер тізбегін біріктіруге мүмкіндік беретін күрделі операторлар бар.
Көтергіш
Кейбір тілдерде айнымалы функцияның аясында, тіпті ішкі блоктарда да жариялануы мүмкін. Мысалы, JavaScript-те `var` арқылы жарияланған айнымалылар функциялық аяқта болады.