IPP Půlsemestrálka vol 2 - I Flashcards
Programování
Činnost, která převádí jistý postup (typicky myšlenkový) na posloupnost elementárních prvků nějakého stroje (typicky počítače).
Přitom dochází k uložení tohoto postupu tak, aby jej stroj mohl opakovat periodicky
Programátor
Ten, kdo realizuje proces tvorby programu
Programovací jazyk
Definice 1:
Prostředník mezi běžnou řečí a posloupností typicky binárních číslic
Definice 2:
Konečná množina příkazů, která má specifickou syntaktitckou strukturu a pevně a přesně vymezenou sémantiku
Počítačový program
Zapís v programovacím jazyce, který je abstrakcí reality.
- Implementuje abstraktní model - myšlenkový postup aplikovatelný v realitě je abstrahován a přizpůsoben možnostem počítače
- Abstrahuje model počítače/procesoru - program zastiňuje konkrétní podobu výpočtu a jeho realizaci na cílové platformě
Dělení jazyků dle abstrakce (podle použití)
- Univerzální programovací jazyky - C, Java, C#
- Specializované programovací jazyky - APL, jazyky řídicích automatů
- Jazyky pro popis integrovaných obvodů - VHDL, System C
- Jazyky pro sazbu textu - LaTeX
a další
Dělení jazyků dle abstrakce dat
- Jazyky strojové/assemblery
- Jazyky vyšší úrovně (např. Fortran, Cobol)
- Tzv. univerzální jazyky - PL/I
- Blokově strukturované jazyky (např. Pascal)
- Modulární blokově strukturované jezyky (např. C)
- Objektově orientované jazyky (např. Java, C#)
- Jazyky rozšiřující datové paradigma
Strojově orientované jazyky
Veškerá data jsou skupiny bitů či bajtů.
K dispozici základní aritmentické a bitové operace.
Žádná podpora vyšších abstrakcí, podpra základních typů specifická dle cílové architektury (programy specifické pro konkrétní počítač)
Jazyky vyšší úrovně
Stále jen jednoduché datové typy
Abstrakce nad cílovým systémem (je skryta implementace, jsou známy jen obecné vlastnosti), i tak je stále velká orientace na cílovou architekturu.
Žádný z jazyků není určen pro obecné použití, navrženy např. pro vojenské nebo vědecko-technické využití nebo zpracování dat.
Často definovaná pevná struktura zdrojového textu
Jazyk PL/I (tzv. univerzální jazyk)
Snaží se být prvním jazykem pro obecné použití
Definuje velké množství různých datových typů, ovšem není možné definovat vlastní typy
Neobsahuje klíčová slova (což komplikuje analýzu kódu)
Blokově strukturované jazyky
Umožňují definovat složitější datové i řídicí struktury pomocí jednoduchých konstrukcí, které lze spojovat a vnořovat
Umožňují využít návrhové metodologie a prvky softwarového inženýrství.
Modulární blokově strukturované jazyky
Umožňují oddělit definici typu od operací, které ho manipulují (např. formou headerů v C)
Objektově orientované jazyky
Umožňují spoujit konkrétní data s operaci, které je manipulují.
Jazyky jiných paradigmat
Logické jazyky - pracují na úrovni dat s predikáty a termy
Funkcionální jazyky - řadí mezi data funkce
Jazyky pro sazbu textu
Jazyky pro definici a manipulaci dat
Dělení jazyků podle abstrakce řízení
Imperativní a deklarativní
Imperativní (procedurální) programovací jazyk
Programátor řeší, co za operace má být provedeno a v jakém pořadí
Program je sestaven jako posloupnost příkazů. U nižších jazyků skoky, u vyšších smyčky, cykly atd.
U vyšších jazyků dále podprogramy, bloky, koprogramy, paralelní programy a odložené zpracování