Programowanie imperatywne
Programowanie imperatywne – paradygmat programowania , który opisuje proces wykonywania jako sekwencję instrukcji zmieniających stan programu . Podobnie jak tryb rozkazujący w lingwistyce wyraża żądania jakichś czynności do wykonania. Programy imperatywne składają się z ciągu komend do wykonania przez komputer. Rozszerzeniem (w sensie wbudowanych funkcji) i rodzajem (w sensie paradygmatu) programowania imperatywnego jest programowanie proceduralne .
Programowanie imperatywne różni się od funkcyjnego czy też programowania logicznego . W tamtych paradygmatach nie istnieje pojęcie instrukcji; kładą one bardziej nacisk na to, co ma zostać wykonane, natomiast nie w jaki sposób, co ma miejsce w przypadku programowania proceduralnego.
Spis treści |
[ edytuj ] Przegląd
Prawie każdy sprzęt komputerowy pracuje w sposób imperatywny. Został on zaprojektowany do wykonywania kodu maszynowego , napisanego właśnie w stylu imperatywnym. Z tego niskopoziomowego punktu widzenia, stanem programu jest zawartość pamięci komputera, a instrukcjami są komendy składające się na kod maszynowy. Bardziej wysokopoziomowe języki używają zmiennych i bardziej złożonych instrukcji, lecz mimo tego nadal należą do tego samego paradygmatu. Ponieważ podstawowe założenia programowania imperatywnego są bardzo podobne lub bezpośrednio odwzorowane w sprzęcie komputerowym, większość dostępnych języków programowania jest imperatywna.
W językach imperatywnych można wyróżnić wiele wspólnych elementów. Instrukcje przypisania wykonują pewne zadanie na zlokalizowanych w pamięci danych i odkładają tam wynik działania na potrzeby późniejszych operacji. Języki wysokopoziomowe umożliwiają dodatkowo wykonywanie bardziej złożonych wyrażeń składających się z operacji arytmetycznych oraz całych funkcji. Instrukcje pętli umożliwiają wielokrotne wykonanie tego samego kodu - w zależności od potrzeb, "wielokrotność" może oznaczać pewną określoną z góry ilość powtórzeń lub wykonywanie do czasu spełnienia pewnych warunków. Instrukcje warunkowe wykonują pewien blok kodu tylko wtedy, kiedy spełniony jest określony warunek. W przeciwnym razie blok ten jest pomijany podczas wykonywania. Języki imperatywne zezwalają też na przekazanie sterowania do zupełnie innej części programu. Realizowane jest to poprzez bezwarunkowy skok zwany " goto " oraz wywołanie podprogramu ( procedury ).
[ edytuj ] Historia
Najwcześniejszymi językami imperatywnymi był kod maszynowy pierwotnych komputerów. Istniejące w nich zestawy komend były bardzo proste lub nawet prymitywne - można je było bardzo prosto zaimplementować po stronie sprzętowej, lecz pisanie przy ich pomocy bardziej złożonych programów było niezwykle trudne. Zaprojektowany przez Johna Backusa z IBM język FORTRAN był pierwszym ważniejszym projektem usuwającym niedogodności płynące z pisania bezpośrednio w kodzie maszynowym. Był to język kompilowany umożliwiający stosowanie nazywanych zmiennych , złożonych wyrażeń, procedur i wielu innych struktur typowych dla współczesnego imperatywnego języka programowania. Następne dwie dekady to burzliwy rozwój takich języków. Pod koniec lat pięćdziesiątych i sześćdziesiątych stworzono ALGOL , umożliwiający jeszcze łatwiejsze programowanie algorytmów matematycznych, a nawet występował jako podstawowy język niektórych systemów operacyjnych . COBOL (1960) i BASIC były projektami posiadającymi składnię zbliżoną wyglądem do normalnego języka angielskiego . W latach siedemdziesiątych powstały dwa najpowszechniej stosowane języki imperatywne: Pascal autorstwa Niklausa Wirtha oraz C stworzony przez Dennisa Ritchie , gdy pracował w Bell Laboratories . Wirth rozpoczął później prace nad Modula-2 , Modula-3 oraz Oberonem . Na potrzeby Departamentu Obrony Stanów Zjednoczonych Jean Ichbiah oraz zespół inżynierów z Honeywell stworzyli język Ada w 1974 , jednak prace nad kompletną specyfikacją trwały aż do 1983 roku.
Od lat osiemdziesiątych datuje się gwałtowny wzrost zainteresowania językami zorientowanymi obiektowo . W swych podstawach nadal miały one charakter imperatywny, lecz dodawały wsparcie dla obiektów . W 1980 roku Xerox Palo Alto Research Center wypuściło na rynek Smalltalk-80 , pierwotnie sformułowanego 11 lat wcześniej przez Alana Kaya . Bjarne Stroustrup , bazując na koncepcji pierwszego obiektowego języka na świecie, Simula , wprowadził obiektowość do języka C , tworząc C++ , którego pierwsza implementacja powstała w 1985 roku. W latach dziewięćdziesiątych powstał cały szereg imperatywno-obiektowych języków:
- Perl autorstwa Larry'ego Walla ( 1987 )
- Python autorstwa Guido van Rossuma ( 1990 )
- Ruby autorstwa Yukihiro Matsumoto ( 1995 )
- PHP autorstwa Rasmusa Lerdorfa ( 1995 )
- Java wydana po raz pierwszy przez Sun Microsystems w 1994 .
[ edytuj ] Przykładowe języki
Kanonicznymi przykładami imperatywnych języków programowania są FORTRAN i ALGOL . Wielu zalicza do nich także Pascala , C i Adę .
[ edytuj ] Zobacz też
Home Page , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

