IPP Půlsemestrálka vol 2 - I Flashcards

(35 cards)

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
Formy definice syntaxe
Slovní popis, syntaktické grafy, BNF, ENBF, gramatiky
26
Sémantika jazyka
Sémantika je popis významu jednotlivých syntaktických konstrukcí, způsobu jejich vyhodnocení, zpracování atd.
27
Formy popisu sémantiky
Obvykle se nepoužívají formalismy ale pouze slovní vysvětlení nebo ukázka na přikladech
28
Statická sémantika
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
Dynamická sémantika
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
Deklarace
Úplně vymezuje atributy dané entity. Může být explicitní i implicitní
31
Definice
Ú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
Vlastnosti proměnné
Jméno Adresa a umístění/lokace v paměti hodnoty, jichž může nabývat typ doba života rozsah platnosti
33
Maximální délka názvu vs efektivní délka názvu proměnné
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
Rozsah platnosti proměnné
Rozsah platnosti určuje tu část programu, kdy je možné s proměnnou pracovat
35
Doba života proměnné
Časový interval, po který je pro danou proměnnou alokována paměť