Algoritmus a algoritmizácia sú určitým medzikrokom medzi zadaním problému a jeho vyriešením na počítači. Pomocou algoritmu dokážeme vyriešiť problém my, no takmer vždy ho potrebujeme preložiť do jazyka počítača (alebo iného stroja či človeka), ktorý poveríme jeho riešením.
Na komunikáciu s akýmkoľvek zariadením schopným vykonávať algoritmy potrebujeme jazyk. Vzhľadom na to, že počítač je napriek svojim neobmedzeným schopnostiam predsa len obmedzený, je aj jazyk, pomocou ktorého mu vydávame príkazy, relatívne chudobný. Obsahuje niekoľko desiatok až stoviek jednoduchých príkazov a inštrukcií, do ktorých transformujeme vytvorený algoritmus. Tento jazyk sa nazýva programovací jazyk a predstavuje vlastne formalizáciu algoritmického jazyka do takej podoby, aby ju bolo možné ďalej spracovať a prostredníctvom prekladača (pozri ďalej) preložiť do strojového kódu (jazyka procesora), ktorý dokáže procesor prostredníctvom svojej inštrukčnej sady zrealizovať.
Činnosť, ktorú vykonávame pri zápise algoritmu do programovacieho jazyka, označujeme ako programovanie a kedysi predstavovala jednu z najnáročnejších myšlienkových činností – v súčasnosti ju uľahčuje množstvo podporných prostriedkov a techník a tak možno povedať, že programovanie už nie je umením, ale často len remeslom.
Postup realizácie riešenia problému na počítači: problém – algoritmický jazyk – programovací jazyk – jazyk procesora (strojový kód , aplikácia)
Program sme doposiaľ chápali len ako súbor (uložený na disku počítača), ktorý obsahuje inštrukcie, podľa ktorých dokáže procesor pracovať – iným slovom aplikáciu, ktorá je uložená v tvare strojového kódu.
Pokiaľ sa však začneme pozerať na program z pohľadu programovania, zahŕňa tento pojem aj postupnosť príkazov (či už v podobe súboru alebo len napísanú na papieri či tabuli) nejakého programovacieho jazyka, ktoré môžu byť do podoby strojového kódu preložené.
Súboru obsahujúcemu nám zrozumiteľné príkazy hovoríme zdrojový kód, pretože je zdrojom, z ktorého sa môže vytvoriť aplikácia.
Ak chceme v nejakej aplikácii robiť zmeny (napr. sa nám nepáči farba pozadia), potrebujeme ich vykonať v zdrojovom kóde. Teoreticky je možné urobiť zmeny aj v preloženej aplikácii, avšak takéto krkolomné kúsky dokáže len málokto.
Programovanie v širšom slova zmysle pozostáva z troch základných fáz:
predstavuje premyslenie algoritmu, prípadne jeho textový alebo grafický zápis,
- prepis algoritmu do počítača spočíva v prepísaní algoritmu do inštrukcií programovacieho jazyka, pričom treba algoritmus prispôsobiť špecifickosti toho-ktorého jazyka. Program okrem inštrukcií obsahuje rôzne nastavenia a prispôsobenia, popis premenných a ošetrenie chýb, ktoré môžu nastať,
- ladenie a testovanie programu je poslednou fázou a zahŕňa v sebe hľadanie chýb spôsobených nedokonalosťou programátora, testovanie a kontrolu správnosti výsledku.
Niektorí „tiežprogramátori“ sa snažia prvú (niekedy aj poslednú) fázu vynechávať. Programovať začnú priamo do počítača, často nielen bez predchádzajúcej prípravy, ale aj bez premyslenia postupu. Čas, ktorý ušetria vynechaním algoritmizácie, potom mnohonásobne prekročia prepracovávaním zdrojového kódu.
Tento spôsob programovania má význam jedine u profesionálnych programátorov analyzujúcich problémy v hlave, ktorí však tiež náročnejšie časti riešia za pomoci pera a papierom alebo nástrojov špecializovaných na túto fázu riešenia problému.
Spustenie programu je podmienené jeho prekladom do strojového kódu, ktorý jediný je schopný procesor vykonávať. Program doň prekladáme pomocou podporných nástrojov programovacieho jazyka, ktoré sú v súčasnosti častou súčasťou komplexného vývojového prostredia. Toto obvykle pozostáva z:
- textového editora poskytujúceho základné (ale častejšie i rozšírené) operácie s textom
- prekladača, ktorý zo zdrojového kódu vytvára strojový kód
- ladiacich nástrojov umožňujúcich napr. zastaviť vykonávanie programu na ľubovoľnom mieste, sledovať hodnoty premenných
Každá aplikácia (aj tá pomocou ktorej píšeme, prekladáme a spúšťame program) bola raz programom napísaným v programovacom jazyku, z ktorého sa preložila do súčasnej podoby a takisto každý náš program môže byť po preložení programom - aplikáciou.