| May | JUN | Jul |
| 19 | ||
| 2012 | 2013 | 2014 |
COLLECTED BY
Collection: Wide Crawl started April 2013
| ÐикиÑнивеÑзиÑеÑÐ¾Ñ Ð¸Ð¼Ð° ÑÑебни маÑеÑиÑали за programming |
ÐомпÑÑÑеÑÑко пÑогÑамиÑаÑе (ÑеÑÑо Ñе коÑиÑÑи за пÑогÑамиÑаÑе, ÑкÑипÑиÑаÑе , или кодиÑаÑе) е пÑоÑÐµÑ Ð½Ð° дизаÑниÑаÑе, пиÑÑваÑе, ÑеÑÑиÑаÑе, дебагиÑаÑе и одÑжÑваÑе на извоÑÐ½Ð¸Ð¾Ñ ÐºÐ¾Ð´ на компÑÑÑеÑÑкиÑе пÑогÑами. ÐÐ²Ð¾Ñ ÐºÐ¾Ð´ е напиÑана во еден или во повеÑе пÑогÑамÑки ÑазиÑи (како ÑÑо Ñе Java, C + +, C #, Python иÑн.) ЦелÑа на пÑогÑамиÑаÑеÑо е да Ñе Ñоздаде ÑÐµÑ Ð½Ð° инÑÑÑÑкÑии дека компÑÑÑеÑиÑе Ñе коÑиÑÑÐ°Ñ Ð´Ð° извÑÑÑÐ²Ð°Ð°Ñ ÑпеÑиÑиÑни опеÑаÑии или да ги извÑÑÑÐ²Ð°Ð°Ñ Ñакано однеÑÑваÑе. ÐÑоÑеÑÐ¾Ñ Ð½Ð° пиÑÑваÑе код ÑеÑÑо баÑа екÑпеÑÑизам во Ð¼Ð½Ð¾Ð³Ñ ÑазлиÑни Ñеми, вклÑÑиÑелно и познаваÑе на апликаÑиÑÐºÐ¸Ð¾Ñ Ð´Ð¾Ð¼ÐµÐ½, ÑпеÑиÑализиÑани алгоÑиÑми и ÑоÑмалнаÑа логика. Ðо ÑамкиÑе на ÑоÑÑвеÑÑкоÑо инженеÑÑÑво, пÑогÑамиÑаÑе (имплеменÑаÑиÑа) Ñе ÑмеÑа како една Ñаза во пÑоÑеÑÐ¾Ñ Ð½Ð° ÑазвиваÑе. Ðо Ñек е дебаÑа за ÑÑÐµÐ¿ÐµÐ½Ð¾Ñ ÐºÐ¾Ñ Ð·Ð° пиÑÑваÑе на пÑогÑами е ÑоÑма на ÑмеÑноÑÑ, занаеÑÑиÑка деÑноÑÑ, или инженеÑинг диÑÑиплина. [1] ÐиÑÑиплина Ñе ÑазликÑва од Ð¼Ð½Ð¾Ð³Ñ Ð´ÑÑги ÑÐµÑ Ð½Ð¸Ñки пÑоÑеÑии во кои пÑогÑамеÑиÑе, во пÑинÑип, не ÑÑеба да Ð±Ð¸Ð´Ð°Ñ Ð»Ð¸ÑенÑиÑани или да ги Ð¿Ð¾Ð»Ð¾Ð¶Ð°Ñ ÑиÑе ÑÑандаÑдизиÑани (или ÑегÑлиÑани од надлежни) ÑеÑÑови за ÑеÑÑиÑикаÑиÑа Ñо Ñел да Ñе наÑекÑÐ²Ð°Ð°Ñ ÑебеÑи『пÑогÑамеÑи』или дÑÑи『ÑоÑÑвеÑÑки инженеÑи.』ÐидеÑÑи диÑÑиплинаÑа опÑаÑа Ð¼Ð½Ð¾Ð³Ñ Ð¾Ð±Ð»Ð°ÑÑи, кои може или не може да вклÑÑÑÐ²Ð°Ð°Ñ ÐºÑиÑиÑни апликаÑии, Ñоа е диÑкÑÑабилно дали лиÑенÑиÑаÑе е поÑÑебно за пÑоÑеÑиÑаÑа како Ñелина. Ðо повеÑеÑо ÑлÑÑаи, диÑÑиплинаÑа е пÑизнаÑа од ÑÑÑана на ÑÑбÑекÑи кои баÑÐ°Ð°Ñ Ð¿ÑогÑамеÑи, а Ð¿Ð¾Ð½ÐµÐºÐ¾Ð³Ð°Ñ Ð¸ Ð¼Ð½Ð¾Ð³Ñ ÑÑÑоги ÑÑлови Ñе деÑиниÑани (пÑ. СÐРвоздÑÑ Ð¾Ð¿Ð»Ð¾Ð²Ð½Ð°Ñа ÑпоÑÑеба на AdaCore и безбедноÑен ÑеÑÑиÑикаÑ). Сепак, пÑеÑÑÑавÑваÑÑи Ñе ÑебеÑи како『пÑоÑеÑионален ÑоÑÑвеÑÑки инженеÑ』без дозвола од акÑедиÑиÑана инÑÑиÑÑÑиÑа е нелегална во Ð¼Ð½Ð¾Ð³Ñ Ð´ÐµÐ»Ð¾Ð²Ð¸ на ÑвеÑоÑ.
ÐÑÑга дебаÑа е ÑÑÐµÐ¿ÐµÐ½Ð¾Ñ Ð´Ð¾ ÐºÐ¾Ñ Ð¿ÑогÑамÑÐºÐ¸Ð¾Ñ Ñазик Ñе коÑиÑÑи во пиÑÑваÑеÑо на компÑÑÑеÑÑки коÑа влиÑае наÑиналнаÑа пÑогÑама. Ðваа дебаÑа е ÑлиÑна на онаа Ð¾ÐºÐ¾Ð»Ñ Ð¡Ð°Ð¿Ð¸Ñ-Whorf Ñ Ð¸Ð¿Ð¾Ñеза [2] во лингвиÑÑикаÑа и когниÑивниÑе наÑки, кои поÑÑÑлиÑÐ°Ð°Ñ Ð´ÐµÐºÐ° поÑебно збоÑÑван Ñазик дека пÑиÑодно го менÑва миÑлеÑеÑо на неговиÑе збоÑÑваÑи. РазлиÑни ÑазиÑни паÑенÑи Ð´Ð°Ð²Ð°Ð°Ñ ÑазлиÑни паÑенÑи на миÑли. Ðваа идеÑа пÑеÑÑÑавÑва можноÑÑ Ð·Ð° пÑеÑÑÑавÑваÑе на ÑвеÑÐ¾Ñ ÑовÑÑено Ñо ÑазикоÑ, бидеÑÑи пÑизнава дека Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð¸Ñе на било кои ÑÑлови на ÑÐ°Ð·Ð¸ÐºÐ¾Ñ Ñе миÑлиÑе на неговаÑа заедниÑа на збоÑÑваÑи.
СодÑжина |
ÐнÑиÑкиÑе кÑлÑÑÑи Ð½ÐµÐ¼Ð°Ð°Ñ ÐºÐ¾Ð½ÑÐµÐ¿Ñ Ð½Ð° компÑÑÑеÑи Ð½Ð°Ð´Ð²Ð¾Ñ Ð¾Ð´ едноÑÑавнаÑа аÑиÑмеÑика. ÐдинÑÑÐ²ÐµÐ½Ð¸Ð¾Ñ Ð¼ÐµÑ Ð°Ð½Ð¸Ñки ÑÑед ÐºÐ¾Ñ Ð¿Ð¾ÑÑои за нÑмеÑиÑки пÑеÑмеÑка на поÑеÑÐ¾ÐºÐ¾Ñ Ð½Ð° ÑовеÑкаÑа иÑÑоÑиÑа беÑе абакÑÑоÑ, измиÑлен во СÑмеÑиа Ð¾ÐºÐ¾Ð»Ñ 2500 п.н.е.. ÐодоÑна, Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¼Ð¾Ñ ÐкÑикиÑеÑа, измиÑлен некаде Ð¾ÐºÐ¾Ð»Ñ 100 година во анÑиÑка ÐÑÑиÑа, беÑе пÑÐ²Ð¸Ð¾Ñ Ð¼ÐµÑ Ð°Ð½Ð¸Ñки калкÑлаÑÐ¾Ñ ÐºÐ¾Ñ ÐºÐ¾ÑиÑÑел бÑзини од ÑазлиÑни големини и конÑигÑÑаÑиÑа за вÑÑеÑе на пÑеÑмеÑки, [3] ÐºÐ¾Ñ Ð³Ð¾ пÑонаÑла metonic ÑиклÑÑ ÑÑÑе Ñе коÑиÑÑи во лÑнаÑнite календаÑи, и ÑÑо е во ÑоглаÑноÑÑ Ð·Ð° пÑеÑмеÑÑваÑе на даÑÑмиÑе на олимпиÑадиÑе. [4] ÐÑÑдиÑки ÑÑедновековен наÑÑник Ðл-ÐазаÑи изгÑадена пÑогÑамабилни [[[авÑомаÑи]] во 1206 година.
Ðден ÑиÑÑем вгÑаден во овие ÑÑеди е ÑпоÑÑебаÑа на клинови и камеÑи поÑÑавени во дÑвен Ñапан во одÑедени локаÑии, кои ÑеквенÑиÑално Ñе пÑедизвика лоÑÑ, пÑеÑвоÑен во ÑдаÑен инÑÑÑÑменÑ. ÐÐ·Ð»ÐµÐ·Ð¾Ñ Ð½Ð° Ð¾Ð²Ð¾Ñ ÑÑед е мал ÑÐ°Ð¿Ð°Ð½Ð°Ñ ÐºÐ¾Ñ ÑвиÑи ÑазлиÑни ÑиÑми и микÑови [5][6]. Jacquard ÑазбоÑоÑ, коÑа ÐÐ¾Ð·ÐµÑ ÐаÑи ÐакаÑд го Ñазвила во 1801 година, коÑиÑÑеÑÑи ÑеÑиÑа од каÑÑон каÑÑиÑки Ñо дÑпки во нив. ШемаÑа на дÑпкаÑа пÑеÑÑÑавÑва Ð¼Ð¾Ð´ÐµÐ»Ð¾Ñ Ð´ÐµÐºÐ° ÑазбоÑÐ¾Ñ Ð¼Ð¾Ñа да го Ñледи во ÑкаеÑе Ñкаенина. Ðа ÑазбоÑÐ¾Ñ Ð±Ð¸ можел да пÑоизведе ÑоÑема ÑазлиÑни Ñкаенини Ñо коÑиÑÑеÑе на ÑазлиÑни гÑÑпи на каÑÑи. ЧаÑÐ»Ñ ÐабеÑÑ ÑÑвоиl ÑпоÑÑебаÑа на ÑдаÑни каÑÑиÑки Ð¾ÐºÐ¾Ð»Ñ 1830 да го конÑÑолиÑа ÑвоÑÐ¾Ñ Ð°Ð½Ð°Ð»Ð¸ÑиÑки моÑоÑ. ÐÑваÑа компÑÑÑеÑÑка пÑогÑама напиÑана за ÐналиÑиÑка моÑÐ¾Ñ Ð±Ð¸Ð»Ð° напиÑана од маÑемаÑиÑаÑкаÑа Ðда ÐавлеÑÑ Ð¸ била за да пÑеÑмеÑа низа на ÐеÑнÑли бÑоеви. [7] ÑинÑеза на нÑмеÑиÑка пÑеÑмеÑки, пÑедодÑедена опеÑаÑиÑа и излез, заедно Ñо еден наÑин да Ñе оÑганизиÑÐ°Ð°Ñ Ð¸ влезни инÑÑÑÑкÑии на наÑин ÑелаÑивно леÑен за лÑÑеÑо да гоÑазбеÑÐ°Ñ Ð¸ пÑоизведаÑ, доведÑва до модеÑен ÑÐ°Ð·Ð²Ð¾Ñ Ð½Ð° компÑÑÑеÑÑкоÑо пÑогÑамиÑаÑе. Ð Ð°Ð·Ð²Ð¾Ñ Ð½Ð° компÑÑÑеÑÑко пÑогÑамиÑаÑе Ñе забÑзÑва пÑÐµÐºÑ Ð¸Ð½Ð´ÑÑÑÑиÑкаÑа ÑеволÑÑиÑа.
Ðо 1880-ÑиÑе, ХеÑман ХолеÑÐ¸Ñ Ð¸Ð·Ð¼Ð¸Ñлиле ÑнимаÑе на подаÑоÑи на медиÑм ÐºÐ¾Ñ Ð¿Ð¾Ñоа може да Ñе ÑиÑа од маÑина. ÐÑед ÑпоÑÑеба на маÑинÑки ÑиÑлив медиÑми, погоÑе, била лиÑÑи на инÑÑÑÑкÑии (не подаÑоÑи) да Ñе ÑÑаÑÑÑва пÑогÑамиÑани маÑини како ÐакаÑд ÑазбоиÑе и Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð¸Ñани мÑзиÑки инÑÑÑÑменÑи.『Ðо некои пÑвиÑни иÑпиÑÑваÑа Ñо Ñ Ð°ÑÑииена ленÑа, Ñе поÑÑавиле на ÑдаÑни каÑÑиÑки ...』[8]Ðа обÑабоÑка на овие ÑдиÑани Ñо ÑдаÑни каÑÑиÑки, пÑÐ²Ð¸Ð¾Ñ Ð¿Ð¾Ð·Ð½Ð°Ñ ÐºÐ°ÐºÐ¾『Hollerith каÑÑиÑки』ÑÐ¾Ñ Ð³Ð¾ измиÑлил keypunch, ÑоÑÑиÑÐ°Ñ Ð¸ ÑабÑлаÑÐ¾Ñ ÐµÐ´Ð¸Ð½Ð¸Ñа ÑекоÑд маÑини. [9]
Ðвие пÑонаÑдоÑи Ñе ÑÐµÐ¼ÐµÐ»Ð°Ñ Ð½Ð° подаÑоÑи пÑеÑабоÑÑваÑкаÑа индÑÑÑÑиÑа. Ðо 1896 година го оÑновал СÑмиÑаÑе ÐаÑинÑка компаниÑаÑа (ÐºÐ¾Ñ Ð¿Ð¾Ð´Ð¾Ñна ÑÑана ÑадÑоÑо на IBM). ÐодаваÑе на конÑÑÐ¾Ð»Ð½Ð¸Ð¾Ñ Ð¿Ð°Ð½ÐµÐ» (plugboard) на Ð½ÐµÐ³Ð¾Ð²Ð¸Ð¾Ñ 1906 Тип и ÑабÑлаÑÐ¾Ñ Ð´Ð¾Ð·Ð²Ð¾Ð»ÐµÐ½ ÑÐ¾Ñ Ð´Ð° напÑави ÑазлиÑни ÑабоÑни меÑÑа, без да биде ÑизиÑки изгÑадена. Ðо кÑаÑÐ¾Ñ Ð½Ð° 1940 година, имаÑе Ð½ÐµÐºÐ¾Ð»ÐºÑ ÐµÐ´Ð¸Ð½Ð¸Ñа ÑекоÑд калкÑлаÑоÑи, како ÑÑо Ñе IBM 602 и IBM 604,на ÑÐ¸Ñ ÐºÐ¾Ð½ÑÑолни панели има наведена низа (лиÑÑа) на ÑабоÑеÑеÑо и на ÑÐ¾Ñ Ð½Ð°Ñин Ñе пÑогÑамабилни маÑини. ÐÑонаоÑаÑеÑо на Ñон ÐоÑман аÑÑ Ð¸ÑекÑÑÑа дозволÑва компÑÑÑеÑÑкиÑе пÑогÑами да Ð±Ð¸Ð´Ð°Ñ Ð·Ð°ÑÑвани во компÑÑÑеÑÑкаÑа мемоÑиÑа. РаниÑе пÑогÑами моÑаÑе да биде внимаÑелно напÑавена Ñо коÑиÑÑеÑе на инÑÑÑÑкÑии (оÑновно ÑабоÑеÑе) на одÑедена маÑина, ÑеÑÑо во бинаÑна ноÑаÑиÑа. Ð¡ÐµÐºÐ¾Ñ Ð¼Ð¾Ð´ÐµÐ» на компÑÑÑеÑ, наÑвеÑоÑаÑно, Ñе коÑиÑÑÐ°Ñ ÑазлиÑни инÑÑÑÑкÑии (маÑинÑки Ñазик) да Ñа извÑÑи иÑÑаÑа задаÑа. ÐодоÑна, ÑобÑаниеÑо ÑазиÑи Ñе Ñазвиени кои Ð¼Ñ Ð´Ð¾Ð·Ð²Ð¾Ð»ÑÐ²Ð°Ð°Ñ Ð½Ð° пÑогÑамеÑÐ¾Ñ Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ð¸Ñе инÑÑÑÑкÑии во ÑекÑÑ ÑоÑмаÑ, влегÑÐ²Ð°Ð°Ñ ÐºÑаÑенки за ÑекоÑа опеÑаÑиÑа намеÑÑо кодоÑ. Ðо 1954 година на бÑоÑÐ¾Ñ Ð¸ ÑпеÑиÑиÑиÑаÑе адÑеÑи во ÑимболиÑна ÑоÑма (на пÑимеÑ, да додадеÑе X, ÐÐУÐÐÐ). ÐнеÑÑваÑе на ÐÑогÑамаÑа во аÑемблеÑÑки Ñазик е обиÑно полеÑно, побÑзо, и Ð¿Ð¾Ð¼Ð°Ð»ÐºÑ Ñклон кон ÑовеÑка гÑеÑка од коÑиÑÑеÑе на маÑинÑки Ñазик, но бидеÑÑи е аÑемблеÑÑÐºÐ¸Ð¾Ñ Ñазик е Ð¼Ð°Ð»ÐºÑ Ð¿Ð¾Ð²ÐµÑе од една поинаква ноÑаÑиÑа за маÑина Ñазик, било кои две маÑини Ñо ÑазлиÑни инÑÑÑÑкÑии иÑÑо Ñака Ð¸Ð¼Ð°Ð°Ñ ÑазлиÑни ÑобÑани ÑазиÑи.
Ðо 1954 година, FORTRAN бил измиÑлен, Ñоа било пÑÐ²Ð¸Ð¾Ñ Ð²Ð¸Ñоко ниво на пÑогÑамÑки Ñазик да има ÑÑнкÑионална имплеменÑаÑиÑа, наÑпÑоÑи Ñамо дизаÑн на Ñ Ð°ÑÑиÑа [10][11]
(ÐиÑоко ниво на Ñазик во Ð¼Ð½Ð¾Ð³Ñ Ð¾Ð¿ÑÑи ÑеÑмини, било ÑÐµÐºÐ¾Ñ Ð¿ÑогÑамÑки Ñазик ÐºÐ¾Ñ Ð¸Ð¼ овозможÑва на пÑогÑамеÑÐ¾Ñ Ð´Ð° пиÑÑÐ²Ð°Ð°Ñ Ð¿ÑогÑами во ÑмиÑла дека Ñе повеÑе апÑÑÑакÑно од аÑемблеÑÑки ÑазикÑни инÑÑÑÑкÑии, одноÑно на ниво на『повиÑоко』од она на аÑÐµÐ¼Ð±Ð»ÐµÑ ÑазикоÑ.) Тоа е дозволено на пÑогÑамеÑиÑе да наведеÑе пÑеÑмеÑки Ñо внеÑÑваÑе на ÑоÑмÑлаÑа диÑекÑно (на пÑимеÑ, Y = X * 2 + 5 * x + 9). ÐÑогÑамÑÐºÐ¸Ð¾Ñ ÑекÑÑ, или извоÑ, Ñе пÑеÑвоÑа во маÑинÑки инÑÑÑÑкÑиÑа Ñо коÑиÑÑеÑе на поÑебна пÑогÑама наÑеÑена компаÑлеÑ, ÑÑо знаÑи на пÑогÑамаÑа FORTRAN во маÑинÑки Ñазик. ÐÑÑÑноÑÑ, имеÑо FORTRAN знаÑи "ФоÑмÑла за пÑевод". ÐÐ½Ð¾Ð³Ñ Ð´ÑÑги ÑазиÑи Ñе Ñазвиени, вклÑÑÑваÑÑи и некои за комеÑÑиÑално пÑогÑамиÑаÑе, како ÑÑо COBOL. ÐÑогÑами ÑÑÑе наÑÑеÑÑо Ñе пÑÐ°Ð²Ð°Ñ Ñо влезно коÑиÑÑеÑе на ÑдаÑни каÑÑиÑки или ленÑа од Ñ Ð°ÑÑиÑа. (Ðиди компÑÑÑеÑÑко пÑогÑамиÑаÑе во пеÑÑокаÑÑа еÑа). Ðо кÑаÑÐ¾Ñ Ð½Ð° 1960-ÑиÑе години, ÑкладиÑаÑе на подаÑоÑи во ÑÑед и компÑÑÑеÑÑки ÑеÑминали ÑÑанале евÑини доволно Ñака ÑÑо пÑогÑамиÑа може да биде кÑеиÑана Ñо пиÑÑваÑе диÑекÑно во компÑÑÑеÑи. ТекÑÑ ÐµÐ´Ð¸ÑоÑи Ñе Ñазвиени Ñака ÑÑо е дозволено пÑомени и коÑекÑии да Ñе напÑÐ°Ð²Ð°Ñ Ð¼Ð½Ð¾Ð³Ñ Ð¿Ð¾Ð»ÐµÑно оÑÐºÐ¾Ð»ÐºÑ Ñо каÑÑиÑки. (ÐбиÑно гÑеÑка во каÑÑиÑка знаÑеÑе дека на каÑÑиÑкаÑа моÑаÑе да биде оÑÑÑлена и да биде заменеÑа Ñо дÑÑга каÑÑиÑка.) Ðако ÑÑо вÑемеÑо напÑедÑваÑе, компÑÑÑеÑи напÑавиле гиганÑÑки Ñкокови во облаÑÑа на Ð¼Ð¾Ñ Ð½Ð° пÑоÑеÑиÑаÑе. Ðва доведе до нови пÑогÑамÑки ÑазиÑи кои Ñе повеÑе апÑÑÑÐ°Ñ Ð¸Ñани од оÑновниÑе Ñ Ð°ÑдвеÑÑки. ÐопÑлаÑни пÑогÑамÑки ÑазиÑи на модеÑнаÑа еÑа вклÑÑÑÐ²Ð°Ð°Ñ C + +, C #, Objective-C, Visual Basic, SQL, HTML Ñо PHP, ActionScript, perl, Java, JavaScript, Ruby, Python, ХаÑкел и Ð¼Ð½Ð¾Ð³Ñ Ð´ÑÑги. [12]Ðако овие ÑазиÑи на виÑоко ниво обиÑно пÑÐ°Ð²Ð°Ñ Ð¿Ð¾Ð³Ð¾Ð»ÐµÐ¼Ð¸ ÑÑоÑоÑи, зголемÑваÑе на бÑзинаÑа на ÑовÑемениÑе компÑÑÑеÑи Ñа напÑави ÑпоÑÑебаÑа на овие ÑазиÑи Ð¼Ð½Ð¾Ð³Ñ Ð¿Ð¾Ð²ÐµÑе попÑакÑиÑна оÑÐºÐ¾Ð»ÐºÑ Ð²Ð¾ минаÑоÑо. Ðвие Ñе повеÑе апÑÑÑÐ°Ñ Ð¸Ñани ÑазиÑи обиÑно Ñе полеÑни да Ñе наÑÑÐ°Ñ Ð¸ да Ñе овозможи на пÑогÑамеÑÐ¾Ñ Ð´Ð° ÑÐ°Ð·Ð²Ð¸Ð²Ð°Ð°Ñ Ð°Ð¿Ð»Ð¸ÐºÐ°Ñии Ð¼Ð½Ð¾Ð³Ñ Ð¿Ð¾ÐµÑикаÑно и Ñо Ð¿Ð¾Ð¼Ð°Ð»ÐºÑ ÐºÐ¾Ð´. Сепак, на ÑазиÑиÑе на виÑоко ниво Ñе ÑÑÑе Ñе непÑакÑиÑни за Ð½ÐµÐºÐ¾Ð»ÐºÑ Ð¿ÑогÑами, како ÑÑо Ñе оние каде ниÑко ниво Ñ Ð°ÑÐ´Ð²ÐµÑ ÐºÐ¾Ð½ÑÑола е поÑÑебна или каде ÑÑо макÑималнаÑа бÑзина на обÑабоÑка е од виÑално знаÑеÑе. ÐомпÑÑÑеÑÑко пÑогÑамиÑаÑе ÑÑана попÑлаÑна каÑиеÑа во ÑÐ°Ð·Ð²Ð¸ÐµÐ½Ð¸Ð¾Ñ ÑвеÑ, оÑобено во СÐÐ, ÐвÑопа, СкандинавиÑа и ÐапониÑа. ÐоÑади виÑокаÑа Ñена на ÑÑÑÐ´Ð¾Ñ Ð½Ð° пÑогÑамеÑиÑе во овие земÑи, некои ÑоÑми на пÑогÑамиÑаÑе Ñе повеÑе пÑÐµÐ´Ð¼ÐµÑ Ð½Ð° оÑ-ÑÐ¾Ñ Ð°ÑÑÑоÑÑинг (Ñвезен ÑоÑÑÐ²ÐµÑ Ð¸ ÑÑлÑги од дÑÑги земÑи, обиÑно по пониÑка плаÑа), ÑÑо Ñа пÑави пÑогÑамиÑаÑкиÑе каÑиеÑни одлÑки во ÑазвиениÑе земÑи повеÑе комплиÑиÑани, додека зголемÑваÑе на економÑки можноÑÑи за пÑогÑамеÑиÑе во Ð¿Ð¾Ð¼Ð°Ð»ÐºÑ ÑазвиениÑе облаÑÑи, оÑобено Ðина и ÐндиÑа.
Ðез оглед на пÑиÑÑап кон ÑÐ°Ð·Ð²Ð¾Ñ Ð½Ð° ÑоÑÑÐ²ÐµÑ Ð¼Ð¾Ð¶Ðµ да биде, конеÑнаÑа пÑогÑама моÑа да ги задоволÑÐ²Ð°Ð°Ñ Ð½ÐµÐºÐ¾Ð¸ оÑновни ÑвоÑÑÑва. Следниве ÑвоÑÑÑва Ñе меÑÑ Ð½Ð°ÑÑелеванÑниÑе:
Ðо компÑÑÑеÑÑко пÑогÑамиÑаÑе, ÑиÑливоÑÑ Ñе однеÑÑва на леÑноÑиÑаÑа Ñо коÑа Ñовек (ÑиÑаÑелоÑ) може да го ÑÑаÑи ÑелÑа, конÑÑола на пÑоÑок, и ÑабоÑеÑеÑо на извоÑÐ½Ð¸Ð¾Ñ ÐºÐ¾Ð´. Тоа влиÑае на аÑпекÑи на квалиÑеÑÐ¾Ñ Ð¿Ð¾Ð³Ð¾Ñе, вклÑÑÑваÑÑи пÑеноÑливоÑÑ, ÑпоÑÑебливоÑÑа и ÑÑо е наÑважно одÑжливоÑÑа. ЧиÑливоÑÑ Ðµ важна заÑоа ÑÑо пÑогÑамеÑиÑе поминÑÐ²Ð°Ð°Ñ Ð¿Ð¾Ð³Ð¾Ð»ÐµÐ¼Ð¸Ð¾Ñ Ð´ÐµÐ» од ÑвоеÑо вÑеме за ÑиÑаÑе, Ñе обидÑва да Ñе ÑазбеÑе и изменÑваÑе на поÑÑоÑниÑе извоÑÐ½Ð¸Ð¾Ñ ÐºÐ¾Ð´, оÑÐºÐ¾Ð»ÐºÑ Ð¿Ð¸ÑÑваÑе на нови извоÑÐ½Ð¸Ð¾Ñ ÐºÐ¾Ð´. ÐеÑиÑÐ»Ð¸Ð²Ð¸Ð¾Ñ ÐºÐ¾Ð´ ÑеÑÑо води до гÑеÑки, нееÑикаÑноÑÑи, и дÑÐ¿Ð»Ð¸ÐºÐ°Ñ ÐºÐ¾Ð´. Ðдна ÑÑÑдиÑа [13] оÑкÑи дека Ð½ÐµÐºÐ¾Ð»ÐºÑ ÐµÐ´Ð½Ð¾ÑÑавни ÑиÑливи ÑÑанÑÑоÑмаÑии напÑавени на код покÑаÑко и дÑаÑÑиÑно го намали вÑемеÑо да го ÑазбеÑе. Ðо конзиÑÑенÑÐ½Ð¸Ð¾Ñ Ð¿ÑогÑамÑки ÑÑил ÑеÑÑо им помага ÑиÑливоÑÑа. Сепак, ÑиÑливоÑÑ Ðµ повеÑе од Ñамо ÑÑилна пÑогÑамиÑаÑе . ÐÐ½Ð¾Ð³Ñ ÑакÑоÑи, кои Ð¸Ð¼Ð°Ð°Ñ Ð¼Ð°Ð»ÐºÑ Ð¸Ð»Ð¸ никакви вÑÑки Ñо ÑпоÑобноÑÑа на компÑÑÑеÑÐ¾Ñ ÐµÑикаÑно да ги ÑобеÑе и извÑÑи го кодоÑ, да пÑидонеÑе за ÑиÑливоÑÑ [14] Ðекои од овие ÑакÑоÑи вклÑÑÑвааÑ:
РазлиÑни визÑелни пÑогÑамÑки ÑазиÑи, иÑÑо Ñака Ñе Ñазвиени Ñо намеÑа да го ÑеÑи пÑоблеми Ñо ÑиÑливоÑÑ Ñо донеÑÑваÑе на неÑÑадиÑионални пÑиÑÑапи кон ÑÑÑÑкÑÑÑаÑа и диÑплеÑÐ¾Ñ Ð½Ð° кодоÑ.
ÐкадемÑкаÑа облаÑÑ Ð¸ инженеÑÑкаÑа пÑакÑика на компÑÑÑеÑÑко пÑогÑамиÑаÑе и двеÑе во голема меÑа Ñе занимава Ñо оÑкÑиваÑе и ÑпÑоведÑваÑе на наÑеÑикаÑен алгоÑиÑми за дадена клаÑа на пÑоблем. Ðа Ñаа Ñел, алгоÑиÑми Ñе клаÑиÑиÑиÑани во наÑаÑки Ñо коÑиÑÑеÑе на Ñ.н. Ðиг РноÑаÑиÑа, кое Ñа изÑазÑва ÑпоÑÑеба на ÑеÑÑÑÑи, како ÑÑо Ñе вÑемеÑо за иÑполнÑваÑе или мемоÑиÑа на поÑÑоÑÑваÑка, во Ð¾Ð´Ð½Ð¾Ñ Ð½Ð° големинаÑа на влезоÑ. ÐкÑпеÑÑ Ð½Ð° пÑогÑамеÑиÑе Ñе запознаени Ñо ÑазлиÑни еÑаблиÑани алгоÑиÑми и нивниÑа комплекÑноÑÑи ви и коÑиÑÑÐ°Ñ Ñо ова знаеÑе да избеÑеÑе алгоÑиÑми кои наÑдобÑо одговаÑÐ°Ð°Ñ Ð½Ð° околноÑÑиÑе
ÐÑÐ²Ð¸Ð¾Ñ ÑÐµÐºÐ¾Ñ Ð²Ð¾ повеÑеÑо од ÑоÑмалниÑе ÑазвоÑи на ÑоÑÑÐ²ÐµÑ Ð¿ÑоÑеÑи е анализа на баÑаÑаÑа, пÑоÑледено Ñо ÑеÑÑиÑаÑе за да ÑÑвÑдиÑе вÑедноÑÑ Ð½Ð° моделиÑаÑеÑо, имплеменÑаÑиÑа, како и неÑÑпеÑна елиминаÑиÑа (за дебагиÑаÑе). ÐоÑÑоÑÐ°Ñ Ð¼Ð½Ð¾Ð³Ñ ÑазлиÑни пÑиÑÑапи за ÑекоÑа од овие задаÑи. Ðден пÑиÑÑап попÑлаÑen за баÑаÑа анализа е коÑиÑÑеÑе на ÑлÑÑÐ°Ñ Ð°Ð½Ð°Ð»Ð¸Ð·Ð°. ÐÐµÐ½ÐµÑ Ð¼Ð½Ð¾Ð³Ñ Ð¿ÑогÑамеÑи ÑпоÑÑеба ÑоÑми на ÐÐ³Ð¸Ð»Ð½Ð¸Ð¾Ñ ÑÐ°Ð·Ð²Ð¾Ñ Ð½Ð° ÑоÑÑвеÑ, каде ÑÑо ÑазлиÑниÑе Ñази на ÑоÑмални ÑÐ°Ð·Ð²Ð¾Ñ Ð½Ð° ÑоÑÑÐ²ÐµÑ Ñе повеÑе инÑегÑиÑани заедно во кÑаÑки ÑиклÑÑи кои ÑÑÐ°Ð°Ñ Ð½ÐµÐºÐ¾Ð»ÐºÑ Ð½ÐµÐ´ÐµÐ»Ð¸, намеÑÑо години. ÐоÑÑоÑÐ°Ñ Ð¼Ð½Ð¾Ð³Ñ Ð¿ÑиÑÑапи кон пÑоÑеÑÐ¾Ñ Ð½Ð° ÑазвиваÑе. ÐопÑлаÑни ÑÐµÑ Ð½Ð¸ÐºÐ¸ за моделиÑаÑе вклÑÑÑÐ²Ð°Ð°Ñ ÐбÑекÑно-оÑиенÑиÑана анализа и дизаÑн (OOAD) и модел-ÑпÑавÑвано аÑÑ Ð¸ÑекÑÑÑа (MDA). Ðа Unified Modeling Language (UML) е ноÑаÑиÑа коÑиÑÑи и за OOAD и MDA. СлиÑна ÑÐµÑ Ð½Ð¸ÐºÐ° Ñе коÑиÑÑи за базаÑа на подаÑоÑи за дизаÑн е енÑиÑÐµÑ ÐÑаÑен ÐоделиÑаÑе (ÐРмоделиÑаÑе). ÐмплеменÑаÑиÑки ÑÐµÑ Ð½Ð¸ÐºÐ¸ вклÑÑÑÐ²Ð°Ð°Ñ Ð¸Ð¼Ð¿ÐµÑаÑив ÑазиÑи (обÑекÑно-оÑиенÑиÑан или пÑоÑедÑÑални), [[[ÑÑнкÑионални ÑазиÑи]] и логиÑки ÑазиÑи.
ÐÐ½Ð¾Ð³Ñ Ðµ ÑеÑко да Ñе ÑÑвÑди кои Ñе наÑпопÑлаÑниÑе Ñазик од модеÑниÑе пÑогÑамÑки ÑазиÑи. Ðекои ÑазиÑи Ñе Ð¼Ð½Ð¾Ð³Ñ Ð¿Ð¾Ð¿ÑлаÑни за одÑедени видови на апликаÑии (на пÑимеÑ, COBOL е Ñе ÑÑÑе Ñилен во коÑпоÑаÑивни ÑенÑÑи за подаÑоÑи , FORTRAN во облаÑÑа на инженеÑÑкиÑе апликаÑии, СкÑипÑиÑаÑе на ÑазиÑи во веб ÑазвиваÑе, и C вгÑадени апликаÑии), додека некои ÑазиÑи Ñедовно Ñе коÑиÑÑÐ°Ñ Ð´Ð° Ñе напиÑе Ð¼Ð½Ð¾Ð³Ñ ÑазлиÑни видови на апликаÑии. ÐÑÑо Ñака, Ð¼Ð½Ð¾Ð³Ñ Ð°Ð¿Ð»Ð¸ÐºÐ°Ñии Ñе коÑиÑÑи за меÑавина на Ð½ÐµÐºÐ¾Ð»ÐºÑ ÑазиÑи во нивнаÑа изгÑадба и ÑпоÑÑеба. Ðови ÑазиÑи обиÑно Ñе дизаÑниÑани Ð¾ÐºÐ¾Ð»Ñ ÑинÑакÑаÑа на пÑÐµÐ´Ñ Ð¾Ð´Ð½Ð¸Ð¾Ñ Ñазик Ñо новаÑа ÑÑнкÑионалноÑÑ (на пÑÐ¸Ð¼ÐµÑ C + + додава обÑекÑно-orientedness на C, Java и додава ÑпÑавÑваÑе Ñо мемоÑиÑаÑа и bytecode на C + +). ÐеÑодиÑе за меÑеÑе на попÑлаÑноÑÑа на пÑогÑамÑкиÑе ÑазиÑи вклÑÑÑвааÑ: пÑебÑоÑÑваÑе на бÑоÑÐ¾Ñ Ð½Ð° оглаÑи за вÑабоÑÑваÑе во кои Ñе ÑпоменÑва ÑазикоÑ, [16] бÑоÑÐ¾Ñ Ð½Ð° пÑодадени книги и поÑеÑаÑа на кÑÑÑеви по ÑÐ¾Ñ Ñазик (ова ÑапÑеÑенÑва важноÑÑа на поновиÑе ÑазиÑи), и пÑоÑенки на бÑоÑÐ¾Ñ Ð½Ð° поÑÑоÑниÑе линии на код напиÑан на ÑÐ°Ð·Ð¸ÐºÐ¾Ñ (ова го пÑоÑенÑва бÑоÑÐ¾Ñ Ð½Ð° коÑиÑниÑиÑе на деловни ÑазиÑи како COBOL).
ÐебагиÑаÑеÑо од 1947 година, ÐºÐ¾Ñ Ðµ во поÑеклоÑо на попÑлаÑнаÑа (но неÑоÑна) еÑимологиÑаÑа за заедниÑки ÑеÑмин за ÑоÑÑвеÑÑки деÑекÑ. ÐебагиÑаÑе, е Ð¼Ð½Ð¾Ð³Ñ Ð²Ð°Ð¶Ð½Ð° задаÑа во пÑоÑеÑÐ¾Ñ Ð½Ð° ÑазвиваÑе, бидеÑÑи деÑекÑи во пÑогÑамаÑа може да Ð¸Ð¼Ð°Ð°Ñ Ð·Ð½Ð°ÑиÑелни поÑледиÑи за ÑвоиÑе коÑиÑниÑи. Ðекои ÑазиÑи Ñе повеÑе Ñклони кон некои видови на гÑеÑки, бидеÑÑи нивнаÑа ÑпеÑиÑикаÑиÑа не баÑа компаÑлеÑи да Ñе пÑовеÑÐ°Ñ ÐºÐ°ÐºÐ¾ во дÑÑгиÑе ÑазиÑи. УпоÑÑеба на ÑÑаÑиÑка кодна анализа може да помогне во оÑкÑиваÑе на некои можни пÑоблеми. ÐебагиÑаÑе ÑеÑÑо е напÑавено Ñо идеиÑе како Eclipse, KDevelop, NetBeans, Code::Blocks, и Visual Studio. СамоÑÑоÑни дебагеÑи како gdb иÑÑо Ñака Ñе коÑиÑÑаÑ, и овие ÑеÑÑо обезбедÑÐ²Ð°Ð°Ñ Ð¿Ð¾Ð¼Ð°Ð»ÐºÑ Ð¾Ð´ визÑелноÑо опкÑÑжÑваÑе, обиÑно Ñо коÑиÑÑеÑе на команднаÑа линиÑа.
Ðлавни ÑÑаÑии: ÐÑогÑамÑки Ñазик и ÐиÑÑа на пÑогÑамÑки ÑазиÑи РазлиÑни ÑазиÑи за пÑогÑамиÑаÑе подÑжÑÐ²Ð°Ð°Ñ ÑазлиÑни ÑÑилови на пÑогÑамиÑаÑе (наÑеÑен паÑадигми на пÑогÑамиÑаÑе). ÐзбоÑÐ¾Ñ Ð½Ð° ÑÐ°Ð·Ð¸ÐºÐ¾Ñ ÐºÐ¾Ñ Ñе коÑиÑÑи е пÑÐµÐ´Ð¼ÐµÑ Ð½Ð° Ð¼Ð½Ð¾Ð³Ñ ÑакÑоÑи, како ÑÑо Ñе полиÑикаÑа на компаниÑаÑа, ÑоодвеÑноÑÑа на задаÑа, доÑÑапноÑÑ Ð½Ð° ÑазикоÑ, или избоÑÐ¾Ñ Ð½Ð° поединеÑоÑ. Ðдеално, пÑогÑамÑки Ñазик ÐºÐ¾Ñ Ð½Ð°ÑдобÑо Ñе одговаÑа за задаÑаÑа коÑа ке е зададена. Размени од Ð¾Ð²Ð¾Ñ Ð¸Ð´ÐµÐ°Ð» вклÑÑÑва изнаоÑаÑе доволно пÑогÑамеÑи кои Ð·Ð½Ð°Ð°Ñ Ð´Ð° ÑабоÑÐ°Ñ Ð½Ð° ÑÐ°Ð·Ð¸ÐºÐ¾Ñ Ñо ÑÑо да Ñе изгÑади Ñим, доÑÑапноÑÑа на компаÑлеÑи за ÑÐ¾Ñ Ñазик, како и еÑикаÑноÑÑа во ÐºÐ¾Ñ Ð¿ÑогÑами Ñе биде напиÑан кои ÑоÑмиÑÐ°Ð°Ñ Ð¿Ñиближен ÑпекÑÐ°Ñ Ð¾Ð´『ниÑко ниво』до "виÑоко ниво",『ниÑко ниво』ÑазиÑи кои Ñе обиÑно повеÑе маÑинÑки-оÑиенÑиÑана и побÑзо да Ñе извÑÑи, додека『виÑоко ниво』ÑазиÑи Ñе повеÑе апÑÑÑакÑни и полеÑно да Ñе коÑиÑÑи, но да Ñе извÑÑÐ°Ñ Ð¿Ð¾Ð¼Ð°Ð»ÐºÑ Ð±Ñзо. Тоа е обиÑно полеÑно да Ñе во код на"виÑоко ниво" ÑазиÑи, оÑÐºÐ¾Ð»ÐºÑ Ð²Ð¾ "ниÑко ниво".
Ðлен ÐаÑни, во ÑвоÑаÑа книга ââÐако да миÑлиÑе како компÑÑÑеÑÑки наÑÑникââ, пиÑÑва: ÐеÑалиÑе Ð¸Ð·Ð³Ð»ÐµÐ´Ð°Ð°Ñ ÑазлиÑно во ÑазлиÑни ÑазиÑи, но Ð½ÐµÐºÐ¾Ð»ÐºÑ Ð¾Ñновни инÑÑÑÑкÑии Ñе поÑавÑÐ²Ð°Ð°Ñ Ð²Ð¾ ÑеÑиÑи ÑÐµÐºÐ¾Ñ Ñазик:
ÐÐ½Ð¾Ð³Ñ ÐºÐ¾Ð¼Ð¿ÑÑÑеÑÑки ÑазиÑи обезбедÑÐ²Ð°Ð°Ñ Ð¼ÐµÑ Ð°Ð½Ð¸Ð·Ð°Ð¼ за да повикаÑе ÑÑнкÑииÑе пÑедвидени од ÑÑÑана на библиоÑеки, како во. .Ñ.о. Ðод ÑÑлов ÑÑнкÑииÑе во библиоÑекаÑа да ги ÑÐ»ÐµÐ´Ð°Ñ ÑоодвеÑниÑе кандидиÑани вÑеменÑки конвенÑии (на пÑимеÑ, меÑод на донеÑÑваÑе аÑгÑменÑи), а поÑоа овие ÑÑнкÑии може да Ñе запиÑÐ°Ñ Ð²Ð¾ било ÐºÐ¾Ñ Ð´ÑÑг Ñазик.
ÐомпÑÑÑеÑÑки пÑогÑÐ°Ð¼ÐµÑ Ñе оние кои пиÑÑÐ²Ð°Ð°Ñ ÐºÐ¾Ð¼Ð¿ÑÑÑеÑÑки ÑоÑÑвеÑ. СвоиÑе ÑабоÑни меÑÑа обиÑно вклÑÑÑвааÑ:
| ÐикиÑнивеÑзиÑеÑÐ¾Ñ Ð¸Ð¼Ð° ÑÑебни маÑеÑиÑали за programming |