市场 |贵州醇涨价炒作无底线 零售价从35元暴涨到2
Program komputerowy (ang. computer program) – sekwencja symboli opisuj?ca realizowanie obliczeń zgodnie z pewnymi regu?ami zwanymi j?zykiem programowania[1]. Program jest zazwyczaj wykonywany przez komputer (np. wy?wietlenie strony internetowej), zwykle bezpo?rednio, je?li wyra?ony jest w j?zyku zrozumia?ym dla danej maszyny lub po?rednio – gdy jest interpretowany przez inny program (interpreter). Program mo?e by? ci?giem instrukcji opisuj?cych modyfikacje stanu maszyny, ale mo?e równie? opisywa? obliczenia w inny sposób (np. rachunek lambda).
Formalne wyra?enie metody obliczeniowej w postaci j?zyka zrozumia?ego dla cz?owieka nazywane jest kodem ?ród?owym, podczas gdy program wyra?ony w postaci zrozumia?ej dla maszyny (to jest za pomoc? ci?gu liczb, a bardziej precyzyjnie – zer i jedynek) nazywany jest kodem maszynowym b?d? postaci? binarn? (wykonywaln?).
Programy komputerowe mo?na zaklasyfikowa? wed?ug ich zastosowań. Wyró?nia si? zatem systemy operacyjne, programy narz?dziowe, programy u?ytkowe (aplikacje), gry komputerowe i inne. Natomiast programy wbudowane w urz?dzenia, przechowywane zwykle w pami?ci flash, okre?la si? jako firmware.
Terminologia
[edytuj | edytuj kod]Okre?lenie ?program komputerowy” jest cz?sto u?ywane zamiennie z okre?leniami ?oprogramowanie” i ?aplikacja”. Pierwszy z tych terminów podkre?la rynkowy charakter programów – programy (lub ich zespo?y) cz?sto w po??czeniu z bibliotekami, dodatkowymi danymi, wyró?niaj?c? si? nazw? i wsparciem producenta (dostawcy) stanowi? produkt handlowy. Poprzez aplikacj? natomiast cz?sto rozumie si? oprogramowanie bliskie u?ytkownikowi, to znaczy takie, z którym komunikuje si? (cz?sto za po?rednictwem przyjaznego interfejsu u?ytkownika), by wykona? okre?lone zadania (np. zredagowa? dokument).
Uruchomienie programu
[edytuj | edytuj kod]W najprostszym modelu wykonanie programu (zapisanego w postaci zrozumia?ej dla maszyny) polega na umieszczeniu go w pami?ci operacyjnej komputera i wskazaniu procesorowi adresu pierwszej instrukcji. Po tych czynno?ciach procesor b?dzie wykonywa? kolejne instrukcje programu, a? do jego zakończenia. Program mo?e zakończy? si? w dwojaki sposób:
- poprawnie – zgodnie z ?yczeniem twórcy programu i jego u?ytkownika;
- b??dnie – z powodu awarii sprz?tu b?d? wykonania przez program niedozwolonej operacji, np. dzielenia przez zero lub próby zmiany programu.
Program komputerowy b?d?cy w trakcie wykonania nazywany jest procesem lub zadaniem.
Specjalnym rodzajem programu komputerowego jest system operacyjny (wyst?puj?cy cz?sto jako zbiór programów). Odpowiada on za opisan? wy?ej czynno?? ?adowania i uruchamiania programu. System operacyjny jest jedynym programem sprawuj?cym kontrol? nad sprz?tem. Zarz?dza on zasobami systemu komputerowego (takimi jak pami??, czas procesora, dost?p do urz?dzeń peryferyjnych), przydzielaj?c je wed?ug okre?lonych kryteriów uruchamianym programom.
Aby jakikolwiek program móg? zosta? uruchomiony, sprz?t musi zosta? do tego przygotowany. Odpowiedzialne jest za to na ogó? specjalne oprogramowanie uk?adowe wbudowane w architektur? komputera. W komputerach klasy PC oprogramowanie to nosi nazw? BIOS lub UEFI i przygotowuje sprz?t do u?ycia, a nast?pnie startuje program rozruchowy, który ?aduje do pami?ci system operacyjny i uruchamia go, tym samym przekazuj?c mu kontrol? nad komputerem.
Je?eli program nie jest zapisany w postaci binarnej, ale w postaci kodu ?ród?owego czytelnego dla cz?owieka, nie mo?e by? bezpo?rednio wykonany przez procesor. W takim wypadku mo?liwe s? dwa podstawowe rozwi?zania. Pierwsze z nich polega na skorzystaniu z pomocy specjalnego programu nazywanego kompilatorem. Kompilator t?umaczy kod ?ród?owy, zapisany w danym j?zyku programowania, na kod maszynowy, dzi?ki czemu mo?liwe staje si? jego pó?niejsze uruchomienie. Drugim rozwi?zaniem jest skorzystanie z programu interpretera. Interpreter na bie??co odczytuje kod ?ród?owy, analizuje go i wykonuje kolejne porcje przet?umaczonego kodu. Programy przeznaczone do interpretacji cz?sto nazywane s? skryptami. Prócz tego istniej? jeszcze inne po?rednie rozwi?zania jak np. kompilacja do kodu bajtowego, JIT albo CIL.
Program a dane
[edytuj | edytuj kod]Program mo?na podzieli? na dwie cz??ci (obszary):
- cz??? zawieraj?ca kod – sk?adaj?ca si? z rozkazów steruj?cych dzia?aniem procesora;
- cz??? zawieraj?ca dane – sk?adaj?ca si? z danych wykorzystywanych i przetwarzanych przez program, np. adresów pami?ci, sta?ych liczbowych, komunikatów tekstowych, danych graficznych itp.
O ile operowanie na danych przez program jest zupe?nie normalne i oczekiwane, o tyle operowanie programu na w?asnym kodzie nie jest typow? praktyk?. Przewidywanie zachowań programów, które modyfikuj? w?asny kod w czasie dzia?ania, jest bardzo trudne. Dlatego na ogó? przyjmuje si? za?o?enie (lub wr?cz jest to wymuszane przez system wykonawczy), ?e obszar kodu programu w pami?ci operacyjnej jest tylko do odczytu. Programy nie respektuj?ce tego podej?cia to programy samomodyfikuj?ce si?, co jest charakterystyczne np. dla wirusów polimorficznych.
Programowanie
[edytuj | edytuj kod]Programowanie jest procesem tworzenia programów (wzgl?dnie: oprogramowania). Jest to proces cykliczny polegaj?cy na realizacji kolejnych etapów:
- edycji kodu ?ród?owego,
- uruchamianiu programu,
- analizie dzia?ania i rejestrowaniu wyst?puj?cych b??dów,
- powrocie do edycji kodu ?ród?owego (pkt 1) w celu poprawienia b??dów lub dalszego poszerzania funkcjonalno?ci.
Osob? zajmuj?c? si? programowaniem nazywa si? programist?. W in?ynierii oprogramowania programowanie jest tak?e przedstawiane jako jeden z etapów powstawania i rozwoju oprogramowania.
W dziedzinie programowania wyró?nia si? pewne modele dzia?ania, takie jak programowanie zespo?owe czy programowanie parami. W dobie spadku cen sprz?tu komputerowego, dost?pno?ci oprogramowania i literatury programowanie mo?e mie? równie? charakter hobbystyczny. W ci?gu lat programowanie sta?o si? rozleg?? dziedzin? o silnych podstawach teoretycznych. Zwi?zane s? z nim poj?cia takie jak: algorytm, struktury danych, metody numeryczne, programowanie obiektowe, kryptografia i wiele innych.
Zobacz te?
[edytuj | edytuj kod]- program u?ytkowy
- program narz?dziowy
- oprogramowanie
- zintegrowane ?rodowisko programistyczne
- kompilator
Przypisy
[edytuj | edytuj kod]- ↑ Mordechai Ben-Ari: Understanding Programming Languages. Chichester: John Wiley & Sons, 1996.