Compur programmng s h rav procss of wrng or ng sourc co. ng sourc co nvolvs sng, analyzng, rfnng, a somms coornang wh ohr programmrs on a jonly vlop program. A prson who praccs hs skll s rfrr o as a compur programmr, sofwar vlopr, a somms cor.
h somms lnghy procss of compur programmng s normally rfrr o as sofwar vlopmn. h rm sofwar ngnrng s bcomng famous as h procss s sn as a ngnrng scpln.
Paragms[]
Compur projects can b cagorz by h programmng languag paragm us o prouc hm. wo of h man paragms ar mprav a clarav.
Programs wrn usng a mprav languag spcfy an algorhm usng claraons, xprssons, a samns.[4] A claraon coupls a varabl nam o an aayp. For xampl: var x: ngr; . A xprsson yls a valu. For xampl: 2 + 2 yls 4. Fnally, a samn mgh assgn a xprsson o a varabl or us h valu of a varabl o alr h program's conrol stream. For xampl: x := 2 + 2; f x = 4 hn o_somhng();. On crcsm of mprav languags s h s ffc of an assgnmn samn on a class of varabls call non-neighborhood varabls.[5]
Programs wrn usng a clarav languag spcfy h proprs ha hav o b m by h oupu. hy o no spcfy als xprss n rms of h conrol stream of h xcung machn bu of h mahmacal rlaons bwn h clar objcs a hr proprs. wo broa cagors of clarav languags ar funconal languags a logcal languags. h prncpl bhn funconal languags (lk Haskll) s o no permit s ffcs, whch maks asr o rason abou programs lk mahmacal funcons.[5] h prncpl bhn logcal languags (lk Prolog) s o fn h problm o b solv — h objective — a lav h al soluon o h Prolog sysm slf.[6] h objective s fn by provng a ls of subgoals. hn ach subgoal s fn by furhr provng a ls of s subgoals, c. f a pah of subgoals fals o fn a soluon, hn ha subgoal s backrack an anohr pah s sysmacally amp.
h structure n whch a system s cra might b xual or vsual. n a vsual languag program, lmns ar graphcally manpula rahr han xually spcf.
Complng or nrprng[]
A compur program n h type of a human-raabl, compur programmng languag s call sourc co. Sourc co might b convr no a xcuabl mag by a complr or xcu mmaly wh h an of a nrprr.
hr compl or nrpr programs mgh b xcu n a bach procss whou human nracon, bu nrpr projects permit a usr o yp commans n a nracv ssson. n hs cas, h programs ar h spara commans, whos xcuon happens squnally, a hus oghr. Whn a languag s us o gv commans o a sofwar applcaon, (for example, an Unx shll or ohr comman-ln nrfac), s call a scrpng languag.
Complrs ar us o ransla sourc co from a programmng languag no hr objc co or machn co.[7] Objc co ns furhr procssng o bcom machn co, a machn co s h cnral procssng un's nav co, beam for xcuon. Compl compur programs ar ordinarily rfrr o as xcuabls, bnary mags, or smply as bnars — a rfrnc o h bnary fl forma us o sor h xcuabl co.
nrpr compur programs — n a bach or nracv ssson — ar hr co a hn mmaly xcu or ar co no som ffcn nrma rprsnaon for fuur xcuon. BASC, Prl, a Pyhon ar xampls of mmaly xcu compur programs. Alrnavly, Java compur programs ar compl aha of m a sor as a machn npnn co call byco. Byco s hn xcu on rqus by a nrprr call a vrual machn.
h man savanag of nrprrs s ha compur projects run slowr han whn compl. nrprng co s slowr han runnng h compl vrson bcaus h nrprr mus co ach samn ach m s loa a hn prform h sr acon. Howvr, sofwar vlopmn might b fasr usng a nrprr bcaus sng s mma whn h complng sp s om. Anohr savanag of nrprrs s ha a las on mus b prsn on h compur urng compur program xcuon. By conras, compl compur programs n no complr prsn urng xcuon.
No proprs of a programmng languag rqur o b xclusvly compl or xclusvly nrpr. h cagorzaon typically rflcs h mos mainstream mho of languag xcuon. For xampl, BASC s hough of as a nrpr languag a C a compl languag, sp h xsnc of BASC complrs a C nrprrs. Som sysms us jus-n-m complaon (J) whrby scons of h sourc ar compl 'on h fly' a sor for subsqun xcuons.
Slf-mofyng programs[]
A compur program n xcuon s ordinarily ra as bng ffrn from h aa h program opras on. Howvr, n som cass, hs sncon s blurr whn a compur program mofs slf. h mof compur program s subsqunly xcu as standard of h sam program. Slf-mofyng co s possbl for projects wrn n machn co, assmbly languag, Lsp, C, COBOL, PL/1, Prolog a Javascrp (h val faur) among ohrs.
xcuon a sorag[]
ypcally, compur programs ar sor n non-volal mmory unl rqus hr rcly or nrcly o b xcu by h compur usr. Upon such a rqus, h program s loa no ranom accss mmory, by a compur project call an oprang sysm, whr can b accss rcly by h cnral procssor. h cnral procssor hn xcus ("runs") h program, nsrucon by nsrucon, unl rmnaon. A system n xcuon s call a procss.[8] rmnaon s hr by typical slf-rmnaon or by rror — sofwar or harwar rror.
mb programs[]
h mcroconrollr on h rgh of hs USB streak rv s conroll wh mb frmwar.
Som compur programs ar mb no harwar. A sor-program compur rqurs a nal compur program sor n s ra-just mmory o boo. h boo procss s o nfy a nalz all aspcs of h sysm, from procssor rgsrs o vc conrollrs o mmory conns.[9] Followng h nalzaon procss, hs nal compur program loas h oprang sysm a ss h program counr o bgn ordinary opraons. npnn of h hos compur, a harwar vc mgh hav mb frmwar o conrol s opraon. Frmwar s us whn h compur program s rarly or nvr xpc o chang, or whn h program mus no b los whn h powr s off.[10]
Manual programmng[]
Swchs for manual npu on an aa Gnral Nova 3
Compur programs hsorcally wr physically npu o h cnral procssor va swchs. A nsrucon was rprsn by a confguraon of on/off sngs. Afr sng h confguraon, a xcu buon was prss. hs procss was hn rpa. Compur programs additionally hsorcally wr physically npu va papr ap or punch autos. Afr h mum was loa, h sarng arss was s va swchs a h xcu buon prss.[11]
Auomac program gnraon[]
Gnrav programmng s a syl of compur programmng ha cras sourc co hrough gnrc classs, prooyps, mplas, aspcs, a co gnraors o mprov programmr proucvy. Sourc co s gnra wh programmng ools, for example, a mpla procssor or a ngra vlopmn nvronmn. h smpls manifestation of sourc co gnraor s a macro procssor, for example, h C prprocssor, whch rplacs parns n sourc