Imperative paradigma

**Imperative paradigma** ni mtindo wa kuandikia msimbo chanzo (paradigma ya programu) yenye tabia zifuatazo:
* katika msimbo chanzo zinaandikiwa amri;
* ni lazima amri zitekelezwe hatua kwa hatua;
* wakati wa utekelezaji wa amri, data zinazopatikana wakati wa utekelezaji wa amri zinazotangulia zinaweza kusomwa kutoka kumbukumbu;
* data zilizopatikana wakati wa utekelezaji wa amri zinaweza kuandikwa katika kumbukumbu.

Imperative programu inafanana na amri za kawaida, yaani ni mfululizo wa maagizo ambayo lazima yatekelezwe na kompyuta.

Msimbo chanzo unapoandikwa kufuatana na imperative paradigma (tofauti na functional paradigma inayohusu declarative paradigma) assignment inatumiwa sana. Upatikanaji wa assignment statements unatatanisha mtindo wa mkokotoo na imperative programs zikawa na matokeo ya makosa ya aina ya pekee yasiyotokea kwa functional approach.

Dalili za msingi za imperative languages ni:
* matumizi ya variables;
* matumizi ya assignment statement;
* matumizi ya complex expressions;
* matumizi ya taratibu.

## Historia 
Imperative languages za kwanza zilikuwa zile machine codes zilizo maagizo yaliyokuwa tayari kutekelezwa na kompyuta mara (bila ya mageuzi yoyote). Baadaye assembler zilitengenezwa na programu zikawa kuandikiwa kwa msaada wa lugha za assembler. Assembler ni programu ya kompyuta inayotumiwa kwa kugeuza machine codes zilizoandikiwa katika sura ya matini kwa lugha inayofahamika kwa binadamu (lugha ya assembler) kuwa machine codes katika sura inayofahamika kwa kompyuta (kanuni ya mashine). Code moja ya lugha ya assembler kilipatana na code moja ya lugha ya mashine. Kompyuta mbalimbali zilikubalia seti mbalimbali za codes. Programu zilizoandikiwa kwa ajili ya kompyuta moja lazima ziandikiwe upya kwa kuzihamisha katika kompyuta nyingine.

Zilitengenezwa programming languages za ngazi ya juu na compilers zilizo programu zinazogeuza matini ya programming language iwe ya lugha ya mashine (kwa Kiingereza: "machine code"). Statement moja ya lugha ya ngazi ya juu ilipatana na statement moja au statements chache ya lugha ya mashine na lugha hii ilikuwa na statements mbalimbali kwa aina mbalimbali za mashine. Programming language ya ngazi ya juu ya kwanza ilikuwa lugha ya Fortran iliyotengenezwa na John Backus mwaka 1954. Inawezesha matumizi ya named variables, complex expressions, subroutines na elementi nyingine zilizopo imperative languages. Kwa urahisishaji wa uelezaji wa utaratibu wa algorithimu mwishoni mwa miaka ya hamsini ilitengenezwa lugha ya Algol. Baadaye lugha ya Algol ikawa msingi wa kuandikia mifumo ya uendeshaji kwa aina kadhaa za kompyuta.

Lugha ya COBOL (mwaka 1960) na ya BASIC (mwaka 1964) zikawa lugha za kwanza ambazo watengenaji wao walijaribu kufanya lugha zifanane na lugha ya Kiingereza. Miaka ya sabini Niklaus Wirth alitengeneza lugha ya Pascal. Dennis Ritchie alitengeneza lugha ya C. Mwaka 1978 timu ya watengenezaji wa kampuni ya Honeywell ilianza kutengeneza lugha ya Ada, specification yake ilitengenezwa mwaka 1983 na ilitengenezwa upya mwaka 1995 na miaka 2005-2006. Mnano miaka ya themanini kuliongezeka mvutio wa object-oriented programming.

Mwaka 1980 wafanyakazi wa taasisi ya Xerox PARC walitengeneza lugha ya Smalltalk-80 kwa msingi wa lugha ya Smalltalk iliyotengenezwa na Alan Kay mwaka 1969. Bjarne Stroustrup alitengeneza lugha ya C++ kwa msingi wa lugha ya C na tamthili ya lugha ya Simula (iliyodhaniwa kuwa object-oriented language ya kwanza duniani iliyotengenezwa miaka sitini). Utekelezaji wa kwanza wa C++ ulitengenezwa mwaka 1985. Mwaka 1987 Larry Wall alitengeneza lugha ya Perl na interpreter kwake. Mwaka 1990 Guido van Rossum alitengeneza lugha ya Python. Mwaka 1994 Rasmus Lerdorf alitengeneza lugha ya PHP. Mwaka 1994 katika kampuni ya SUN Microsystems kulitengenezwa lugha ya Java. Mwaka 1995 Yukihiro Matsumoto alitengeneza lugha ya Ruby. Lugha ya C# na jukwaa ya .Net Framework zilizalishwa na kampuni ya Microsoft mwaka 2002.

## Tanbihi
Jamii:Kompyuta
Jamii:Uhandisi wa programu