Platon Technologies
not logged in Login Registration
EnglishSlovak
open source software development celebrating 10 years of open source development! Friday, October 16, 2026

Diff for doc/ztp-zbierka/02-programove-schemy.tex between version 1.6 and 1.7

version 1.6, 2005/11/23 19:33:59 version 1.7, 2007/04/29 16:14:20
Line 10 
Line 10 
 % 26/02/2003 - created  % 26/02/2003 - created
 %  %
   
 % $Platon: doc/ztp-zbierka/02-programove-schemy.tex,v 1.5 2004/06/07 10:53:37 nepto Exp $  % $Platon: doc/ztp-zbierka/02-programove-schemy.tex,v 1.6 2005-11-23 19:33:59 nepto Exp $
   
 \chapter{Programové schémy}  \chapter{Programové schémy}
   
 \section{Štandardné programové schémy}  \section{Štandardné programové schémy}
   
   \begin{definition}[Symboly] % /*
   
   Symbolmi sú individuálne premenné, funkčné symboly, predikátové symboly
   a~špeciálne symboly:
   
   \begin{itemize}
           \item Individuálne premenné sú $X = \{x, y, z, \dots\}$
                   \begin{itemize}
                           \item vstupné premenné sú $X_x - \overline{x} = \{x_1, \dots, x_k\}$
                           \item výstupné premenné sú $X_z - \overline{z} = \{z_1, \dots, z_m\}$
                           \item pracovné premenné sú $X_y - \overline{y} = \{y_1, \dots, y_n\}$
                   \end{itemize}
           \item Funkčné symboly sú $F = \bigcup_{i=0}^{\infty} F^i$
                   \begin{itemize}
                           \item pre $f \in F^n$ platí $arity(f) = n$
                           \item $F^n = \{f, g, h, \dots\}$ sú $n$-árne symboly
                           \item $F^0 = \{a, b, \dots\}$ sú konštanty
                   \end{itemize}
           \item Predikátové symboly sú $B = \bigcup_{i=0}^{\infty} B^i$
                   \begin{itemize}
                           \item pre $p \in B^n$ platí $arity(p) = n$
                           \item $B^0 = \{0, 1\}$ sú logické konštantnty $true$ a $false$
                   \end{itemize}
           \item Špeciálne symboly sú $[, ], (, ), :=, :$
   \end{itemize}
   
   \end{definition} % */
   
   \begin{definition}[Výrazy a príkazy] % /*
   
   Základnými syntaktickými objektami sú výrazy a predikáty (tzv. booleovské
   výrazy). Z~nich sa konštruujú príkazy.
   
   \begin{itemize}
           \item Termy sú $T = {t, t_i, \dots}$
                   \begin{enumerate}
                           \item $F^0 \subseteq T, X \subseteq T$
                           \item ak $f \in F^n, t_1, \dots, t_n \in T$ potom $f(t_1, \dots,
                                   t_n) \in T$
                   \end{enumerate}
           \item Predikáty sú $P = \{q\}$
                   \begin{enumerate}
                           \item $B^0 \subseteq P$
                           \item ak $p \in B^n, t_1, \dots, t_n \in T$ potom $(p(t_1, \dots,
                                   t_n) \in P$
                   \end{enumerate}
           \item Príkazy sú $C = \{st, st_i, \dots\}$
                   \begin{enumerate}
                           \item počiatočný príkaz je $\cmd{begin}~ [\overline{y}] :=
                                   [t_1(\overline(x), \dots, t_n(\overline{x})]$
                           \item koncový príkaz je $\cmd{end}~ [\overline{z}] := [t_1(\overline{x},
                                   \overline{y}), \dots, t_n(\overline{x}, \overline{y})]$
                           \item priraďovací príkaz je $[\overline{y}] := [t_1(\overline{x},
                                   \overline{y}), \dots, t_n(\overline{x}, \overline{y})]$
                           \item príkaz skoku je $\cmd{goto}~ i$
                           \item podmienkový príkaz je $\cmd{if}~ p(\overline{x}, \overline{y})
                                   ~\cmd{then}~ st$, kde $st$ je priradenie alebo príkaz skoku
                           \item príkaz s návestím je $i: st$, kde $st$ je buď priradenie,
                                   podmienka alebo skok
                   \end{enumerate}
   \end{itemize}
   
   \end{definition} % */
   
   \begin{note} % /*
   
   Definícia syntaxe podmienkového príkazu určuje, že podmienku reprezentuje
   predikátový symbol. Takže podmienkou nemôže byť formula vytvorená pomocou
   logických spojok resp. operácií $not, and, or$, pretože tým by sme do
   schém zaviedli niektoré fixne interpretované symboly.
   
   \end{note} % */
   
   \begin{definition}[Štandardná programová schéma] % /*
   
   Štandardnú programovú schému tvorí konečná postupnosť príkazov $S = \{st_0,
   st_1, \dots, st_n, st_{n+1}\}$, kde
   \begin{enumerate}
           \item $st_0$ je počiatočný príkaz
           \item $st_{n+1}$ je koncový príkaz
           \item $st_1$ $(1 \le i \le n)$ je podminekový, priraďovací alebo skokový
                   príkaz s~návestím $i$
           \item skok mieri na návestie z intervalu $\langle 1,n \rangle$, alebo na
                   návestie $\cmd{end}$
   \end{enumerate}
   
   \end{definition} % */
   
   \begin{note} % /*
   
   Programová schéma nemusí obsahovať koncový príkaz $\cmd{end}$, keď podľa
   terminológie teórie grafov neexistuje žiadna hrana, ktorá do neho vedie.
   
   \end{note} % */
   
   \begin{definition}[Interpretácia štandardnej programovej schémy] % /*
   
   Interpretáciou programovej schémy $S$ nazývame dvojicu $I = (D, i)$, kde
   
   \begin{itemize}
           \item $D$ je obor interpretácie
           \item $i$ je interpretačný morfizmus
                   \begin{itemize}
                           \item $\forall a \in F^0: i(a) \in D$
                           \item $\forall f \in F^n: i(f) \in D^n \mapsto D$
                           \item $\forall c \in B^0: i(c) \in \{0, 1\}$
                           \item $\forall p \in B^n: i(p) \in D^n \mapsto \{0, 1\}$
                   \end{itemize}
   \end{itemize}
   
   Pojem interpretácie sa dá primočiaro rozšíriť aj na termy a predikáty ($k$
   premenných v terme):
   
   \begin{itemize}
           \item $i(t) \in D^k \mapsto D$
           \item $i(q) \in D^k \mapsto \{0, 1\}$
   \end{itemize}
   
   \end{definition} % */
   
   \begin{definition}[Program] % /*
           Programom $P$ nazývame dvojicu $P = (S, I)$, kde $S$ je programová schéma a $I$ je
           interpretácia programovej schémy.
   \end{definition} % */
   
 \begin{example} % /* P_1 -> S_1  \begin{example} % /* P_1 -> S_1
   
 Máme program $P_1$. Zistite, čo program počíta a napíšte jeho schému.  Máme program $P_1$. Zistite, čo program počíta a napíšte jeho schému.
Line 185  $$
Line 310  $$
   
 \end{solution} % */  \end{solution} % */
   
   \begin{definition}[Herbrandovo univerzum] % /*
   
   Herbrandovo univerzum $\mathcal{H}$ pozostáva z reťazcov symbolov,
   zostrojených zo vstupných premenných a funkčných symbolov:
   
   \begin{itemize}
           \item ak $x_i \in X_x$ potom $"x_i" \in \mathcal{H}$
           \item ak $a \in F^0$ potom $" a" \in \mathcal{H}$
           \item ak $f \in F^n; "t_1", \dots, "t_n" \in \mathcal{H}$ potom $"f(t_1,
                   \dots, t_n)" \in \mathcal{H}$
   \end{itemize}
   
   \end{definition} % */
   
   \begin{definition}[Herbrandova voľná interpretácia] % /*
   
   Herbrandovou interpretáciou štandardnej programovej schémy $S$ nazývame
   dvojicu $I_H = (\mathcal{H}, i_H)$, kde:
   
   \begin{itemize}
           \item $\mathcal{H}$ je Herbrandovo univerzum
           \item $i_H$ je interpretačný morfizumus:
                   \begin{itemize}
                           \item $\forall x \in X_x: i_H(x) = "x"$
                           \item $\forall a \in F^0: i_H(a) = "a"$
                           \item $\forall f \in F^n: i_H(f) \in \mathcal{H}^n \mapsto
                                   \mathcal{H}$ $n$-tici $"t_1", \dots, "t_n"$ priradí $"f(t_1,
                                   \dots, t_n)"$
                   \end{itemize}
           \item Interpretácia premenných a funkčných symbolov je "pevná", voľná je
                   interpretácia predikátov.
           \item Existuje nekonečne veľa Herbrandových interpretácií danej
                   netriviálnej schémy, odlišujúcich sa interpretáciou predikátových
                   symbolov.
           \item Hebrandove interpretácie "zastupujú" triedu všetkých interpretácií.
   \end{itemize}
   
   \end{definition} % */
   
   \begin{definition}[Zladenie výpočtov a symbolických výpočtov] % /*
   
   Interpretácia $I$ s ohodnotením $v$ je zladená s voľnou interpretáciou $I_H$ s
   ohodnotením predikátov práve vtedy, keď pre každé $p \in B^n$ platí
   
   $$
   i_H(p)("t_1", \dots, "t_n") \iff i(p)(i^v(t_1), \dots, i^v(t_n))
   $$
   
   \end{definition} % */
   
 \begin{example} % /* H universum  \begin{example} % /* H universum
   
 Zostrojte Herbrandové univerzum pre predchádzajúcu schému~$S$.  Zostrojte Herbrandové univerzum pre predchádzajúcu schému~$S$.

Legend:
Removed from v.1.6  
changed lines
  Added in v.1.7

Platon Group <platon@platon.org> http://platon.org/
Copyright © 2002-2006 Platon Group
Site powered by Metafox CMS
Go to Top