Извршавање (рачунарство)
Извршење код рачунарског и софтверског инжењеринга је процес којим рачунар или виртуелна машина обавља инструкције рачунарског програма. Упутства у програмском обарачу слажу једноставне акције на машину за извршење. Те акције производе ефекте у складу са семантиком упутства у програму.
Рачунарски програми могу да изврше гомилу процеса без људског учествовања, или корисник може укуцати команде у интерактивној сесији преводиоца. У овом случају "команде" су једноставни програми, чије извршавање је сковано заједно.
Израз run се скоро користи као синоним за извршење. Оба значења "to run" и "to execute" су сродна и односе се на специфичну акцију покретања (или лансирања или позивања) програма од стране корисника, као у "Молим вас покрените апликацију."
Контекст извршења
уредиКонтекст у коме извршење узима место је од кључног значаја. Веома мали број програма се извршава на голој машини. Програми обично садрже имплицитне и експлицитне претпоставке о расположивим ресурсима у време извршења. Већина програма се извршава уз подршку оперативног система и run-time библиотека специфичних за изворни језик који вам пружају кључне услуге не испоручујћи их директно од самог рачунара. Ово заштићено окружење, нпр., обично одваја програм од директне манипулације рачунарских периферија, пружајући више опште, апстрактне услуге.
Процес
уредиПре извршења, програм мора прво бити написан. Ово се обично обавља у изворном коду, који се за одређено време превођења преводи (и статички повезује за време повезивања) и извршава. Извршавање програма се затим позива, најчешће од стране оперативног система, који учитава програм у меморију (време учитавања), евентуално динамички врши повезивање, и тада почиње извршење померањем контроле на улазну тачку програма; сви ови кораци зависе од AP Интерфејса оперативног система. У овом тренутку извршење почиње и програм покреће време покретања. Програм тада траје до завршетка, до нормалног прекида или до рушења.
Интерпретатор
уредиСистем који извршава програм се зове интерпретатор програма. Лабаво гледано, интерпретатор заправо ради оно што му програм каже да уради. Ово је у супротности са преводиоцем језика који претвара програм са једног језика на други. Најчешћи преводиоци језика су компилатори. Преводиоци типично претварају свој извор високог нивоа, са људски читљивог језика у нижи ниво језика (понекад толико ниско као матерњи машински код), који процесор једноставније и брже извршава. Идеја је да разлика између превођења и извршавања буде велика, тј. да програм буде састављен једном и да може бити извршаван небројано пута. Превођења може обезбеди велику корист насупрот директном тумачењу изворног језика. Компромис је то што је време развоја повећано, због компилација. У неким случајевима, само измењени фајлови морају бити прекомпилирани. Онда програм који се извршава мора бити поново повезан. За неке промене, програм који се извршава мора бити обновљен од нуле. Како рачунари и компајлери постају бржи, ова чињеница постаје мања препрека. Такође, брзина крајњег производа је важнија кориснику него време развоја.
Преводиоци обично производе апстрактни резултат који није у потпуности спреман да се изврши. Често, оперативни систем ће претворити објекатни код преводиоца у коначни облик програма који се извршава пре него што почне извођење програма.
Види још
уредиЛитература
уреди- Pressman, Roger S (2009). Software Engineering: A Practitioner's Approach (7th изд.). Boston, Mass: McGraw-Hill. ISBN 978-0073375977.
- Sommerville, Ian (2010) [2010]. Software Engineering (9th изд.). Harlow, England: Pearson Education. ISBN 978-0137035151.
- Jalote, Pankaj (2005) [1991]. An Integrated Approach to Software Engineering (3rd изд.). Springer. ISBN 0-387-20881-X.
- Bruegge, Bernd; Dutoit, Allen (2009). Object-oriented software engineering : using UML, patterns, and Java (3rd изд.). Prentice Hall. ISBN 978-0136061250.