Program komputerowy: Różnice pomiędzy wersjami

[wersja przejrzana][wersja przejrzana]
Usunięta treść Dodana treść
Rrudzik (dyskusja | edycje)
m lit.
Linia 23:
== Program a dane ==
Program można podzielić na dwie części (obszary):
* część zawierająca kodukod – składającą się z [[Rozkaz (informatyka)|rozkazów]] sterujących działaniem procesora;
* część zawierająca dane – składającą 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 komputerowy|wirusów]] polimorficznych.