| version 1.8, 2007/07/14 20:53:45 |
version 1.9, 2007/07/30 04:55:09 |
|
|
| % 26/02/2003 - created |
% 26/02/2003 - created |
| % |
% |
| |
|
| % $Platon: doc/ztp-zbierka/04-semantika-programov.tex,v 1.7 2007-07-14 06:56:14 nepto Exp $ |
% $Platon: doc/ztp-zbierka/04-semantika-programov.tex,v 1.8 2007-07-14 20:53:45 nepto Exp $ |
| |
|
| \chapter{Sémantika programov} |
\chapter{Sémantika programov} |
| |
|
| Line 199 Konštrukcia riešenia je nasledovná: |
|
| Line 199 Konštrukcia riešenia je nasledovná: |
|
| \end{enumerate} |
\end{enumerate} |
| \end{dosledok} % */ |
\end{dosledok} % */ |
| |
|
| \begin{example} % /* |
%%%\begin{example} % /* |
| Ako nájsť pevný bod nejakého funkcionálu? |
%%% Ako nájsť pevný bod nejakého funkcionálu? |
| \end{example} % */ |
%%%\end{example} % */ |
| |
%%% |
| \begin{solution} % /* |
%%%\begin{solution} % /* |
| Pevný bod funkcionálu nájdeme vykonaním nasledujúcich krokov: |
%%% Pevný bod funkcionálu nájdeme vykonaním nasledujúcich krokov: |
| \begin{enumerate} |
%%% \begin{enumerate} |
| \item Použijeme krok výpočtu a zjednodušovanie: |
%%% \item Použijeme krok výpočtu a zjednodušovanie: |
| \begin{enumerate} |
%%% \begin{enumerate} |
| \item Z funkcionálu $\phi_1$ dostaneme funkcionál $\phi_2$ a |
%%% \item Z funkcionálu $\phi_1$ dostaneme funkcionál $\phi_2$ a |
| platí $\phi_1 = \phi_2$. |
%%% platí $\phi_1 = \phi_2$. |
| \item |
%%% \item |
| Pri zjednodušovaní používame špeciálne pravidlo, |
%%% Pri zjednodušovaní používame špeciálne pravidlo, |
| pomockou ktorého sa dostaneme bližšie k riešeniu. |
%%% pomockou ktorého sa dostaneme bližšie k riešeniu. |
| |
%%% |
| Musíme používať korektné pravidlo, ktorým máme |
%%% Musíme používať korektné pravidlo, ktorým máme |
| garanatované, že nech ho použijeme ako chceme, vždy |
%%% garanatované, že nech ho použijeme ako chceme, vždy |
| dospejeme k~správnemu riešeniu. Je teda jedno ktorý |
%%% dospejeme k~správnemu riešeniu. Je teda jedno ktorý |
| podterm zasubstituujeme. |
%%% podterm zasubstituujeme. |
| |
%%% |
| Preto budeme používať pravidlo {\it Full |
%%% Preto budeme používať pravidlo {\it Full |
| substitution (FS)}. To znamená, že urobíme |
%%% substitution (FS)}. To znamená, že urobíme |
| substitúciu pre každý výskyt rekurzívneho |
%%% substitúciu pre každý výskyt rekurzívneho |
| funkcionálu. |
%%% funkcionálu. |
| \end{enumerate} |
%%% \end{enumerate} |
| \item Použijeme Kleeneho vetu. |
%%% \item Použijeme Kleeneho vetu. |
| \end{enumerate} |
%%% \end{enumerate} |
| \end{solution} % */ |
%%%\end{solution} % */ |
| |
|
| \begin{example} % /* |
\begin{example} % /* |
| Majme program: |
Majme program: |
|
|
| f_\tau = \frac{x(x + 1)}{2} |
f_\tau = \frac{x(x + 1)}{2} |
| $$ |
$$ |
| |
|
| Na tomto mieste je vhodné sa zamyslieť, čo znamená najmenšia horná hranica. To je taký funkcionál, |
% Na tomto mieste je vhodné sa zamyslieť, čo znamená najmenšia horná hranica. To je taký funkcionál, |
| že všetky ostatné sú od neho menej schopné. Takže $k$-ta aproximácia dokáže sumy prvých $i$ čísiel, |
% že všetky ostatné sú od neho menej schopné. Takže $k$-ta aproximácia dokáže sumy prvých $i$ čísiel, |
| ale nie pre ľubovoľné~$i$. Zato pevný bod to dokáže pre hocijaké $i$. Pevný bod je teda najmenší, čo |
% ale nie pre ľubovoľné~$i$. Zato pevný bod to dokáže pre hocijaké $i$. Pevný bod je teda najmenší, čo |
| dokáže nájsť našu sumu. |
% dokáže nájsť našu sumu. |
| |
|
| \end{solution} % */ |
\end{solution} % */ |
| |
|
|
|
| \end{array} |
\end{array} |
| $$ |
$$ |
| |
|
| Teraz ju zapíšeme v ???(neviem) tvare: |
Teraz ju zapíšeme v~tvare: |
| |
|
| $$ |
$$ |
| \phi(x): \cmd{if}~ x = 0 ~\cmd{then}~ 0 ~\cmd{else}~ \phi(\phi(x - 1)) ~\cmd{fi} |
\phi(x): \cmd{if}~ x = 0 ~\cmd{then}~ 0 ~\cmd{else}~ \phi(\phi(x - 1)) ~\cmd{fi} |