Zanim komputer rozwiąże wszystkie polecone mu zadania musi zostać odpowiednio uruchomiony program. Pierwszy krok polega na umieszczeniu w pamięci komputera programu i następnie wskazanie mu adresu naszej pierwszej instrukcji po wykonaniu tego zadania komputer a dokładniej mówiąc procesor dalej poradzi sobie sam, czyli samodzielnie będzie wykonywał dalsze czynności aż do ich zakończenia. Naturalnie mogą zakończyć się one poprawnie lub blednie. Wersja poprawna oznacza, że wszystko przebiegło zgodnie z życzeniem użytkownika z kolei wersja błędna jest równoznaczna z negatywnym zakończeniem się pracy programu najczęściej występuje ona, kiedy jest awaria sprzętu lub wtedy, kiedy program wykonana operację nie dozwoloną. Specjalnym gatunkiem programu komputerowego jest system operacyjny jest on bardzo istotny, ponieważ odpowiada za uruchamianie programu i nadzorowanie zadań. Można śmiało stwierdzić, że zarządza on sprzętem, ponieważ odpowiada za pamięć komputera czas procesora na wykonanie określonego zadania a nawet dostęp do urządzeń peryferyjnych. Zanim jednak jakikolwiek program zostanie uruchomiony musy przede wszystkim zostać do tego celu przygotowany sprzęt, odpowiada za to oprogramowanie typu firmware z kolei w komputerach typu PC nosi ono nazwę bios. Oprogramowanie to nie tylko uruchamia sprzęt, ale ląduje też system operacyjny a tym samym przekazuje ma kontrole nad komputerem. Problem jednak pojawia się wtedy, kiedy program nie ma postaci binarnej tylko kodu czytelnego dla człowieka, ponieważ wtedy procesor nie może go wykonać. W takim wypadku można jedna sobie pomóc istnieją tutaj dwa zasadnicze rozwiązania, czyli skorzystanie z programu o nazwie kompilator, który bezpośrednio tłumaczy kod źródłowy na kod maszynowy, co za tym idzie komputer może je odczytać. Drugie rozwiązanie to nie, co inny program znany pod nazwa interpretera. Zadaniem tego programu jest odczytywanie kodu źródłowego, czyli zrozumiałego dla człowieka. Program ten jednak tłumaczy kod nie całościowo tylko częściowo, co w rezultacie daje nam kilka porcji przetłumaczonego kodu zwanego skryptem. Każdy program można podzielić na dwa zasadnicze obszary, czyli cześć kodu i cześć danych. Pierwsza cześć odnosi się do szeregu instrukcji, które wpływają na parce procesora z kolei cześć danych składa się z danych wykorzystywanych i opracowywanych przez program. Mimo to bardzo trudno jest przewidzieć zachowanie programów, które modyfikują własny kod, dlatego tez przyjęło się założenie, że obszar kodu w pamięci jest tylko i wyłącznie do odczytu