IPP Půlsemestrálka vol 2 - I Flashcards

1
Q

Programování

A

Č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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Programátor

A

Ten, kdo realizuje proces tvorby programu

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Programovací jazyk

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Počítačový program

A

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ě
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Dělení jazyků dle abstrakce (podle použití)

A
  • 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ší

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Dělení jazyků dle abstrakce dat

A
  • 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
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Strojově orientované jazyky

A

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č)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Jazyky vyšší úrovně

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Jazyk PL/I (tzv. univerzální jazyk)

A

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)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Blokově strukturované jazyky

A

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í.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Modulární blokově strukturované jazyky

A

Umožňují oddělit definici typu od operací, které ho manipulují (např. formou headerů v C)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Objektově orientované jazyky

A

Umožňují spoujit konkrétní data s operaci, které je manipulují.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Jazyky jiných paradigmat

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Dělení jazyků podle abstrakce řízení

A

Imperativní a deklarativní

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Imperativní (procedurální) programovací jazyk

A

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í

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Podprogramy

A

Umožňují vnořené zpracování určitých logických funkcí. Jsou volány skrze své rozhraní, které definuje předávané parametry a výsledek

Každý podprogram má jednoznačnou identifikaci, která jej zpřístupňuje

17
Q

Bloky

A

Bloky nemají jméno => nelze je volat z různých míst a jejich kód se uplatňuje pouze v místě, kde je vložek

Můžou mít své lokální definice.

18
Q

Ko-programy

A

Pojmenované bloky kódu, které vzhledem k sobě mají symetrický vztah (jejich kód je zpracováván současně, případně prokládaně)

Rozhraní a identifikace shodné s podprogramy.

19
Q

Paralelní programy a procesy

A

Vztahy nejsou nutně symetrické, může docházet k synchronizaci

Na nejvyšší úrovni abstrakce procesy, v rámci procesů vlákna

20
Q

Odložené zpracování

A

Pokud výsledek některé operace v daném místě nemusí být nutně dále použit, je jeho vyhodnocení pozdrženo.

Provedeno je později a jen v případě, že je výsledek třeba, v opačném případě není vyhodnocení provedeno vůbec

21
Q

Deklarativní programovací jazyk

A

Programátor řeší, co za operace má být provedeno.

22
Q

Vyhodnocení parametrů při volání hodnotou

A

Parametry se vyhodnocují před voláním podprogramu

23
Q

Vyhodnocení parametrů při volání jménem

A

Parametry se nevyhodnocují, jsou reprezentovány zástupným jménem. K jejich vyhodnocení dojde, až to vyžaduje volaný podprogram

24
Q

Syntaxe jazyka

A

Syntaxe jazyka definuje strukturu programu, tj. to, jakým způsobem je dovoleno jednotlivé konstrukce řadit za sebe

25
Q

Formy definice syntaxe

A

Slovní popis, syntaktické grafy, BNF, ENBF, gramatiky

26
Q

Sémantika jazyka

A

Sémantika je popis významu jednotlivých syntaktických konstrukcí, způsobu jejich vyhodnocení, zpracování atd.

27
Q

Formy popisu sémantiky

A

Obvykle se nepoužívají formalismy ale pouze slovní vysvětlení nebo ukázka na přikladech

28
Q

Statická sémantika

A

Popisuje vlastnosti, které mohou být studovány a ověřovány v době analýzy/překladu programu

např. typová kompatibilita, existence proměnných atd.

29
Q

Dynamická sémantika

A

Popisuje vlastnosti, jejichž splnění lze ověřit až v době běhu programu, např. velikost indexu pole daného výrazu, velikost výsledku, apod.

30
Q

Deklarace

A

Úplně vymezuje atributy dané entity. Může být explicitní i implicitní

31
Q

Definice

A

Úplně vymezuje atributy dané entity a dále u proměnných způsob alokace paměti a u funkcí navíc tělo funkce

32
Q

Vlastnosti proměnné

A

Jméno
Adresa a umístění/lokace v paměti
hodnoty, jichž může nabývat
typ
doba života
rozsah platnosti

33
Q

Maximální délka názvu vs efektivní délka názvu proměnné

A

Maximální délka - maximální počet znaků, který je pro danou implementaci jazyka možné využít

Efektivní délka - počet znaků, který je skutečně zpracován a rozlišován

34
Q

Rozsah platnosti proměnné

A

Rozsah platnosti určuje tu část programu, kdy je možné s proměnnou pracovat

35
Q

Doba života proměnné

A

Časový interval, po který je pro danou proměnnou alokována paměť