IPP Semestrálka Flashcards
Programování
Činnost, která převádí určitý algoritmus (typicky myšlenkový) na posloupnost elementárních úkonů počítače. Přitom dochází k uložení tohoto postupu tak, aby jej stroj mohl opakovat periodicky.
Programátor
Ten, kdo proces tvorby programu realizuje.
Programovací jazyk
Prostředník mezi běžnou řečí a posloupností typicky binárních číslic.
Alternativně:
Konečná množina příkazů, která má specifickou syntaktickou strukturu a pevně a přesně vymezenou sémantiku.
Počítačový program
Zápis v programovacím jazye, který je abstrakcí reality.
Druhy programovacích jazyků podle abstrakce dat
- Strojové jazyky, assemblery
- Jazyky vyšší úrovně (Fortan, Cobol)
- Univerzální jazyky (PL/I)
- Blokově strukturované jazyky
- Modulární blokově strukturované jazyky
- Objektově orientované jazyky
- Jazyky rozšiřující datové paradigma
Strojové jazyky
Práce s bity, podpora základních typů specifická podle cílové architektury.
Typické operace jsou aritmetické (sčítání/odčítání, násobení/dělení) a bitové (posuny, logické součty, negace…)
Jazyky vyšší úrovně
Jednoduché datové typy, skryta jejich implementace (jsou známy jen obecné vlastnosti).
Stále vysoká závislost na cílové architektuře.
Např. Fortran, Cobol
Univerzální jazyky - PL/I
Velké množství různých datových typů
Není ale možné definovat vlastní typy
Neexistence klíčových slov
Blokově strukturované jazyky
Možnost definovat složitější datové (i řídící) struktury pomocí jednoduchých konstrukcí
Konstrukce lze spojovat i vnořovat
První skupina jazyků, která umožňuje použití návrhové metodologie
Např. Pascal
Modulární blokově strukturované jazyky
Umožňují oddělit definici typu od operací, které ho manipulují
Podpora knihoven
Objektově orientované jazyky
Možnost spojit konkrétní data s operacemi, které je manipulují
Jazyky jiných paradigmat
Patří sem:
- logické jazyky (Prolog)
- funkcionální jazyky
- pro sazbu textu (TeX)
- pro definici a manipulaci dat (SQL)
Druhy jazyků podle abstrakce řízení
Deklarativní a imperativní
Imperativní jazyk
Takový jazyk, kde programátor musí řešit, co za operace má být provedeno
a v jakém pořadí (!) to má být provedeno.
Deklarativní jazyk
Takový jazyk, kde programátor musí řešit, co za operace má být provedeno