Z dotychczasowych rozważań wynika, że |iP jest zdolny wyłącznie do realizacji sekwencji ściśle zdefiniowanych operacji arytmetyczno-logicznych (ALU). Aby możliwe więc było zastosowanie go do realizacji określonych zadań (np. sterowanie pracą magnetowidu, pralki), należy rozwiązanie tego zadania sprowadzić do elementarnych operacji wykonywanych przez pP. Proces taki nazywa się algorytmizacją problemu. Przez algorytm należy rozumieć przepis postępowania pozwalający osiągnąć cel (rozwiązanie jakiegoś problemu).
Przepis ten należy następnie sformułować w „języku” zrozumiałym przez pP. Języki służące do zapisu programów nazywa się językami programowania. Jak wiemy, jedynym takim językiem dla pP jest język operujący słowami dwójkowymi, które należy zapisać w pamięci programu i które są kodami rozkazów wykonywanych przez pP. Jest to tzw. język wewnętrzny systemu (komputera). Zapisanie algorytmu w takim języku byłoby dla człowieka niezwykle skomplikowane, nawet jeżeli są to słowa tylko 8-bitowe (jak dla MCY7880). Zamiana ich na zapis szesnastkowy, czy nawet dziesiętny też nie upraszcza wystarczająco tego problemu. Dlatego do zapisywania programów używa się zawsze języków symbolicznych. Zamiast pisać kod binarny (szesnastkowy lub dziesiętny) jakiegoś rozkazu pP zapisujemy jego symbol słowny, którego znaczenie odpowiada realizowanej operacji. Zamiast więc pisać 1000 0110 (lub szesnastkowo 86H, albo dziesiętnie 134), co jest rozkazem dla pP (8080) „dodaj do akumulatora zawartość komórki pamięci, której adres znajduje się w rejestrze HL” (czyli A := A + M(HL)), zapiszemy symbolicznie: ADD M, gdzie słowo ADD oznacza — dodaj (ang. add — dodaj), a litera M jest pierwszą literą słowa memory (ang. memory — pamięć).
Ale używanie języka symbolicznego wymaga napisania programu tłumaczą-cego język symboliczny na język słów binarnych (język wewnętrzny). Nawet gdybyśmy używali zapisu szesnastkowego (lub dziesiętnego), to i tak potrzebny byłby taki program tłumaczący.
Proces tłumaczenia języka symbolicznego na język wewnętrzny nazywa się translacją, a program tłumaczący translatorem. Program wyrażony w języku symbolicznym jest wówczas programem źródłowym, a program uzyskany w wyniku translacji (tłumaczenia) jest programem wynikowym.
Wprowadzenie języków symbolicznych jest działaniem racjonalnym, mimo że wymaga opracowania translatora (programu tłumaczącego). Program tłumaczący opracowuje się raz, a można korzystać z niego wielokrotnie. Jest to po prostu jedno z możliwych zastosowań komputera, dla którego pisze się raz program, a wykorzystuje go wiele razy dla różnych danych wejściowych (w tym przypadku różnych programów źródłowych).
Najprostszym językiem symbolicznym jest tzw. język asemblera (potocznie, krócej, nazywany asemblerem), w którym jednemu rozkazowi pP odpowiada jeden zapis symboliczny. Taki zapis symboliczny operacji wykonywanych przez pP
311