Obsah
· 1 Typy programovacích jazykov
o 1.1 Vysoká a nízka úroveň
o 1.2 Deklaratívne vs. imperatívne programovanie
o 1.3 Funkčné vs. procedurálne
o 1.4 Na základe zásobníka
o 1.5 Objektovo orientované
o 1.6 Orientácia na prietok
· 2 Pravidlá
· 3 Objektovo orientované programovanie
· 4 Príklady
o 4.1 Príklad jazyka Visual Basic
o 4.2 Príklad jazyka Python
o 4.3 Príklad jazyka C#
o 4.4 Príklad jazyka Haskell
· 5 Súvisiace stránky
Programovací jazyk je typ písaného jazyka, ktorý hovorí počítačom, čo majú robiť, aby fungovali. Programovacie jazyky sa používajú na tvorbu všetkých počítačových programov a počítačového softvéru. Programovací jazyk je ako súbor inštrukcií, ktorými sa počítač riadi, aby niečo urobil.
Programátor píše text zdrojového kódu v programovacom jazyku na vytváranie programov. Zvyčajne sa v programovacom jazyku používajú pre niektoré príkazy skutočné slová, aby bol jazyk pre človeka ľahšie čitateľný. Mnohé programovacie jazyky používajú interpunkciu rovnako ako normálny jazyk. Mnohé programy sa v súčasnosti "kompilujú". To znamená, že počítač preloží zdrojový kód do iného jazyka (napríklad do jazyka assembleru alebo strojového jazyka), ktorý je pre počítač oveľa rýchlejší a ľahší na čítanie, ale pre človeka oveľa ťažší na čítanie.
Počítačové programy sa musia písať veľmi starostlivo. Ak sa programátor dopustí chyby alebo sa program pokúsi urobiť niečo, čo programátor nenavrhol, program môže "spadnúť" alebo prestať fungovať. Keď má program problém kvôli tomu, ako bol napísaný kód, nazýva sa to "chyba". Veľmi malá chyba môže spôsobiť veľmi veľký problém.
Zložky programovacieho jazyka
Každý programovací jazyk má niekoľko základných súčastí:
- Syntax – pravidlá pre zapisovanie programu (ako sú kľúčové slová, zátvorky, oddeľovače).
- Sémantika – význam jednotlivých konštrukcií (čo sa stane pri vykonaní príkazu).
- Štandardná knižnica – súbor predpripravených funkcií a typov, ktoré uľahčujú prácu (práca so súbormi, vstup/výstup, dátové štruktúry).
- Nástroje – kompilátory, interprety, linkery, debuggery a správci balíčkov, ktoré uľahčujú vývoj a nasadenie.
Kompilácia vs. interpretácia
Existujú dve bežné metódy, ako sa kód prevádza do podoby, ktorú vie vykonať počítač:
- Kompilované jazyky – (napr. C, C++) prekladajú zdrojový kód do strojového kódu pred spustením. Výsledné programy sú obyčajne rýchlejšie, ale proces kompilácie pridáva krok medzi vývojom a spustením.
- Interpretované jazyky – (napr. staršie verzie Pythonu, JS v prehliadači) vykonávajú kód priamo cez interpret, bez samostatného kroku kompilácie. To zjednodušuje ladenie a rýchle skúšanie zmien.
- JIT (just-in-time) – runtime prístupy (napr. Java, .NET) kombinujú kompiláciu a interpretáciu: kód sa dynamicky prekladá do efektívnej podoby počas behu programu.
Úrovne jazykov
Programovacie jazyky sa často delia podľa úrovne blízkosti hardvéru:
- Nízka úroveň – blízko strojového kódu (assembler). Veľa kontroly nad pamäťou a CPU, menej prenositeľné.
- Vysoká úroveň – bližšie k ľudskej komunikácii (Python, Java, C#). Vyššia abstrakcia, jednoduchší vývoj, lepšia prenositeľnosť.
Paradigmy programovania
Rôzne jazyky podporujú rôzne štýly (paradigmy) programovania. Najčastejšie sú:
- Imperatívne – príkazy menia stav programu krok za krokom.
- Procedurálne – organizácia programu do procedúr alebo funkcií (C, Pascal).
- Objektovo orientované – používanie tried a objektov (Java, C#, Python). Pozri nižšie oddiel o OOP.
- Funkčné – dôraz na nepremennosť a kompozíciu funkcií (Haskell, Lisp, časti Scala, F#).
- Deklaratívne – opisujú sa výsledky, nie kroky k ich dosiahnutiu (SQL, Prolog).
- Orientácia na prietok a reaktívne modely – vhodné pre spracovanie dátových tokov a asynchrónne aplikácie.
Pravidlá a typovanie
Pri výbere jazyka treba zvážiť aj tieto vlastnosti:
- Statické vs. dynamické typovanie – pri statickom typovaní (C#, Java) sú typy známe už pri kompilácii; pri dynamickom typovaní (Python, JavaScript) sú typy zisťované za behu.
- Silné vs. slabé typovanie – ako prísne jazyk vynucuje konverzie medzi typmi.
- Správa pamäte – garbage collection (automatické uvoľňovanie) vs. manuálna správa (napr. v C/C++).
- Systém chýb – výnimky, kontrola chýb pri kompilácii vs. pri behu.
Objektovo orientované programovanie (OOP)
OOP organizuje kód do objektov, ktoré kombinujú stav (atribúty) a správanie (metódy). Základné princípy:
- Encapsulácia – skrytie vnútorných detailov a vystavenie rozhrania.
- Dedičnosť – jedna trieda môže rozširovať inú triedu.
- Polymorfizmus – rovnaké rozhranie môže mať rôzne implementácie.
- Abstrakcia – modelovanie podstatných vlastností objektov.
OOP zjednodušuje návrh veľkých systémov, uľahčuje opätovné použitie kódu a jeho rozširovanie.
Príklady
Príklad jazyka Visual Basic (VB.NET)Jednoduchý program, ktorý vypíše súčet dvoch čísel:
Module Module1 Sub Main() Dim a As Integer = 5 Dim b As Integer = 7 Dim s As Integer = a + b Console.WriteLine("Súčet je: " & s) End Sub End Module VB.NET používa silné typovanie, .NET runtime a je vhodný na rýchly vývoj desktopových aplikácií a skriptovanie v prostredí Microsoft.
Príklad jazyka PythonFunkcia na výpočet faktoriálu rekurziou (čitateľný a krátky kód):
def factorial(n): if n <= 1: return 1 return n * factorial(n - 1) print(factorial(5)) # vypíše 120 Python je dynamicky typovaný jazyk s bohatou štandardnou knižnicou, vhodný na rýchly vývoj, skriptovanie, dátovú vedu a webové aplikácie.
Príklad jazyka C#Malý program s triedou a metódou (Console aplikácia):
using System; class Program { static void Main() { Person p = new Person("Anna", 30); Console.WriteLine(p.Greet()); } } class Person { public string Name { get; } public int Age { get; } public Person(string name, int age) { Name = name; Age = age; } public string Greet() => $"Ahoj, volám sa {Name} a mám {Age} rokov."; } C# je staticky typovaný, objektovo orientovaný jazyk bežiaci na .NET platforme. Hodí sa pre veľké aplikácie, web, desktop i hry (Unity).
Príklad jazyka HaskellFunkčný príklad pre faktoriál pomocou rekurzie:
factorial :: Integer -> Integer factorial 0 = 1 factorial n = n * factorial (n - 1) main = print (factorial 5) Haskell je čistý funkčný jazyk s lazy-evaluation (odkladané vyhodnocovanie) a silnou statickou typovou inferenciou. Používa sa v akademickom prostredí a pri aplikáciách, kde je dôležitá korektnosť a paralelizmus.
Tipy pre písanie kvalitného kódu
- Píšte čitateľný a dobre komentovaný kód.
- Rozdeľujte program na menšie funkcie alebo triedy s jasnou zodpovednosťou.
- Používajte verzovací systém (napr. Git).
- Testujte kód automatizovanými testami (unit tests).
- Využívajte existujúce knižnice a nástroje, namiesto písania všetkého od začiatku.
Ak sa chcete ďalej učiť, začnite s jednoduchým jazykom (napr. Python) a postupne prejdite k jazykom, ktoré lepšie zodpovedajú oblastiam vášho záujmu (systémové programovanie, web, dáta, funkčné jazyky ap.).