Ելակոդ

Համակարգչային գիտության բնագավառում ելակոդը որևէ ծրագրավորման լեզվով գրված դրույթների կամ սահմանումների հավաքածու է։ Այն ծրագրավորողների կողմից օգտագործվող մեխանիզմ է, որը հիմնականում օգտագործվում է համակարգչի գործողությունները մատնանշելու համար։
Ծրագրի սկզբնական կոդը, որը սովորաբար բաղկացած է մեկ կամ մի քանի տեքստային նիշքերից, երբեմն պահվում է տվյալների շտեմարանում որպես պահպանված ընթացակարգ, ինչպես նաև կարող է պահվել կրիչի վրա որպես կոդի փոքր կտորներ։ Սկզբնական կոդի նիշքերի մեծ հավաքածուն կարող է դասակարգվել գրացուցակների ծառի մեջ, որն այդ դեպքում անվանում են ծրագրային ծառ։ Համակարգչային ծրագրի սկզբնական կոդն անհրաժեշտ է մարդու համար ընթեռնելի ձևից փոխարկել համակարգչի համար իրագործելի ձևի։ Սկզբնական կոդը կոմպիլյատորի միջոցով կարող է փոխարկվել կատարվող կոդի։
Համակարգչային նախագծի կոդի հիմքը դա նախագիծը կազմող համակարգչային ծրագրերի բոլոր սկզբնական կոդերի մեծ հավաքածուն է։

Նպատակները

Սկզբնական կոդն օգտագործվում է որպես կատարվող ծրագիր ստեղծող պրոցեսի մուտք։ Այն նաև օգտագործվում է որպես մարդկանց միջև հաղորդակցման ալգորիթմների միջոց։ Ծրագրավորման տեխնիկա սովորելու համար ծրագրավորողները հաճախ համարում են օգտակար ընթացիկ սկզբնական կոդը վերանայելը։ Սկզբնական կոդի մատչելի դարձնելը բոլոր ծրագրավորողներին հաճախ նշվում է որպես վերջիններիս ծրագրավորման հմտությունների լավացման կարևոր գործոն։ Որոշ մարդիկ սկզբնական կոդը դիտարկում են որպես արտահայտիչ դերասանական միջոց։
Ծրագրակազմը այլ համակարգչային հարթակի վրա տեղափոխելը սովորաբար անչափ դժվար է առանց սկզբնական կոդի։ Ծրագրի որոշակի կտորների տեղափոխելիությունը առանց ծրագրային կոդի հաշվողական տեսակետից հիմնականում թանկ է։ Տեղափոխելիության հնարավոր ընտրանքները ներառում են կոդի երկուական թարգմանությունը և սկզբնական հարթակի էմուլյացիան։ Կատարվող կոդի դեկոմպիլյացիան կարող է օգտագործվել ասեմբլերով կամ բարձր մակարդակի ծրագրավորման լեզվով սկզբնական կոդ ստանալու համար։
Ծրագրավորողները ծրագրակազմի մի հատվածից վերցված սկզբնական կոդը հաճախ հարմարացնում են մեկ այլ նախագծում օգտագործելու համար։ Այս գաղափարը հայտնի է որպես ծրագրակազմի վերագործածելիություն։

Ծանոթագրություններ

Արտաքին հղումներ 
 IBM Card Interpreters page at Columbia University
 Theoretical Foundations For Practical 'Totally Functional Programming' 
 Short animation 
 http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-004-computation-structures-spring-2009/lecture-notes/MIT6_004s09_lec11.pdf
 https://q3k.org/gentoomen/Programming/Pragmatic%20Programmers/Language%20Implementation%20Patterns.pdf 

Ելակետային կոդ