%--*- latex -*-----------------------------------------------------------------
%$Author: saulius $
%$Date: 2020-06-04 14:58:32 +0300 (Thu, 04 Jun 2020) $ 
%$Revision: 1524 $
%$URL: svn+ssh://saulius-grazulis.lt/home/saulius/svn-repositories/seminarai/2020-verifikacjos-seminarui/slides.tex $
%------------------------------------------------------------------------------

\documentclass[mathserif,aspectratio=169]{beamer}
\usetheme{Warwick}
\useoutertheme{infolines}
\setbeamertemplate{headline}{} % removes the headline the infolines inserts
%\setbeamertemplate{footline}[frame number]
\renewcommand\familydefault{\rmdefault}
% For XeLaTeX:
% https://tex.stackexchange.com/questions/452151/how-do-i-render-the-word-v%C7%ABlundarkvi%C3%B0a-with-bookman-and-xelatex
% "Use an OpenType clone of Bookman, for instance TeX Gyre Bonum":
\usepackage{fontspec}
\setmainfont{TeX Gyre Bonum}

\usepackage[style=authoryear,maxnames=1,doi=true,url=true,backend=biber]{biblatex}
\addbibresource{bibliography/citations.bib}
\newcommand{\mycite}{\parencite}


\usepackage{colordvi}
\usepackage{graphicx}
\usepackage{tikz}
\usetikzlibrary{snakes}
\usepackage{verbatim}
\usepackage{listings}
\usepackage{chemfig}
\usepackage{listings}

\hypersetup{
  colorlinks=true,
  linkcolor=blue,
  citecolor=blue,
  urlcolor=blue
}

% https://en.wikibooks.org/wiki/LaTeX/Algorithms
% http://mirror.datacenter.by/pub/mirrors/CTAN/macros/latex/contrib/algorithmicx/algorithmicx.pdf
\usepackage{algpseudocode}
\usepackage{algorithm}
\usepackage{amssymb}

\include{commands}

\newcommand{\RCSid}[1]{\fontsize{7pt}{7pt}\selectfont $#1$ \today}

%%BEGIN LANGUAGE lt
\title{Ados dizaino principai}
%%END LANGUAGE lt


\author{Saulius Gražulis}

\date{Vilnius, \the\year}

\begin{document}

%------------------------------------------------------------------------------

\begin{frame}
    \titlepage

\input{affiliation_lt}
    
    \begin{center}
      \mbox{}
      \hfill\hfill\hfill
      \includegraphics[height=1.5cm]{images/sp_VU_zenklas.eps}
      \hfill
      \includegraphics[height=1.5cm]{images/2019-05-02_Melynas_MIF-zenklas242x244.png}
      \hfill\hfill\hfill
      \mbox{}
    \end{center}

    \vfill

    %% \tiny
    %% \RCSid{
    %%   $Id: slides.tex 1524 2020-06-04 11:58:32Z saulius $
    %% }
    \begin{flushright}
      \begin{minipage}[c]{0.67\textwidth}
        \tiny\raggedright
        %%BEGIN LANGUAGE lt
        Šį skaidrių rinkinį galima kopijuoti,
        kaip nurodyta Creative Commons
        %%END LANGUAGE lt
        \myhref{http://creativecommons.org/licenses/by-sa/4.0/}{Attribution-ShareAlike
          4.0 International}
licenzijoje
      \end{minipage}
      %%
      \begin{minipage}[c]{1.5cm}
        \myhref{http://creativecommons.org/licenses/by-sa/4.0/}{
          \includegraphics[width=1.5cm]{images/CC-BY-SA.eps}
        }
      \end{minipage}
    \end{flushright}

\end{frame}

%==============================================================================

\begin{frame}
\frametitle{Kas yra Ada}


  %%BEGIN LANGUAGE lt
  Ada yra programavimo kalba su įrankių rinkiniu ir ekosistema, kuri:
  %%END LANGUAGE lt

  \vfill
  \begin{itemize}
    %%BEGIN LANGUAGE lt
  \item Siūlo saugią ir patikimą programavimo kalbą;
  \item Sukurta didelėms, ilgai gyvuojančioms programų sistemoms;
  \item Naudojama ten, kur patikimumas ir efektyvumas yra esminiai;
  \item Suteikia skaitomumą, patogų palaikymą ir perkeliamumą;
    %%END LANGUAGE lt
  \end{itemize}

  \vfill
  \vfill
  \scriptsize {
    \url{https://www.adaic.org/},
žiūrėta
    2026-01-01T13:39+02:00
  }
  
\end{frame}

%------------------------------------------------------------------------------

\begin{frame}
\frametitle{Ada kalbos savybės}


  %%BEGIN LANGUAGE lt
  Ada yra kompiliuojama multiparadigminė programavimo kalba, plačiai
  palaikanti procedūrinį programavimo stilių.
  %%END LANGUAGE lt

  \vfill
  \begin{itemize}
    %%BEGIN LANGUAGE lt
  \item Statiškai griežtai tipizuota kalba;
  \item Kompiliuojama ir optimizuojama;
  \item Turtinga tipų sistema: abstrakcijos, tinkančios taikymo sričiai;
  \item Apibendrintieji tipai (\emph{angl.} generic types);
  \item Išimtinės situacijos;
    %%END LANGUAGE lt
  \end{itemize}

  \vfill
  \vfill

\end{frame}

%------------------------------------------------------------------------------

\begin{frame}
\frametitle{Unkalios Ada savyvės}


  %%BEGIN LANGUAGE lt
  Nėra plačiai palaikomos kitose programavimo kalbose:
  %%END LANGUAGE lt

  \vfill
  
  \begin{itemize}
    %%BEGIN LANGUAGE lt
  \item Vienalaikio (\emph{angl.} concurretn) programavimo palaikymas
    kalbos lygyje;
  \item Itin turtinga tipų sistema;
  \item Formalaus programų verifikavimo palaikymas (SPARK poaibyje);
  \item Suderinamumas ir panaudojamumas su kitomis programavimo
    kalbomis ir bibliotekomis;
    %%END LANGUAGE lt
  \end{itemize}

  \vfill
  

  %%BEGIN LANGUAGE lt
  Artimiausios alternatyvos: C++, Rust;
  %%END LANGUAGE lt
  
\end{frame}

%------------------------------------------------------------------------------

\begin{frame}
\frametitle{Ados panaudojimo sritys}


  %%BEGIN LANGUAGE lt
  Apgrindinės taikymo sritys: įteprtos kritinės svarbos sistemos,
  inžinerinis ir mokslinis programavimas.

  Adą naudoja:
  %%END LANGUAGE lt

  \vfill
  \begin{itemize}
  \item Air Traffic Control (EuroControl)
  \item Aviation (Commercial, Defence) (Airbus, Eurocopter)
  \item Communications, Satellites and Receivers (Inmarsat)
  \item Defense Related Projects (Raytheon)
  \item Rail Transportation (French High-Speed Rail System (TGV))
  \item Financial Applications (BNP Paribas)
  \item Science (Lawrence Livermore National Labs, National Ignition
    Facility)
  \end{itemize}

  \vfill
  \vfill
  \scriptsize {
    \url{https://www.adaic.org/advantages/projects/}
žiūrėta
    2026-01-01T21:45+02:00
  }
  
\end{frame}

%------------------------------------------------------------------------------

\begin{frame}
\frametitle{Ada trūkumai}


  %%BEGIN LANGUAGE lt
  Inžineriniuose moklsuose, beveik viskas yra kompromisas. Ados
  kūrėjai taip pat darė komproomisus.
  %%END LANGUAGE lt

  \vfill
  \begin{itemize}
    %%BEGIN LANGUAGE lt
  \item Sudėtingas kompiliatorius;
  \item Reikia viską padaryti teisingai prieš ką nors išbandant;
  \item Vykdymo meto patikrinimai gali sulėtinti programas;
  \item Nėra garantuotas atminties surinkėjas – reikės pagalvoti apie
    atminties valdymą;
    %%END LANGUAGE lt
  \end{itemize}

\end{frame}

%------------------------------------------------------------------------------

\lstset{
  % Documentation:
  %
  % [1] https://www.overleaf.com/learn/latex/XeLaTeX [2026-01-01T19:47+02:00]
  %
  % [2] https://texdoc.org/serve/fontspec/0 [2026-01-01T19:48+02:00]
  %
  % [3] https://tug.org/FontCatalogue/luximono/ [2026-01-01T19:50+02:00]
  %
  % [4] https://www.latex-project.org/help/documentation/fntguide.pdf [2026-01-01T20:03+02:00]
  language=Ada,
  basicstyle=\footnotesize\ttfamily,
  % All of the followint lines worked:
  %% basicstyle=\setmainfont{Luxi Mono}
  %% keywordstyle=\setmainfont{Luxi Mono Bold},
  keywordstyle=\setmainfont{Luxi Mono}\fontsize{7.5}{7.5}\bfseries,
  %% keywordstyle=\setmainfont{Courier}\bfseries
  %% keywordstyle=\setmainfont{Courier New}\bfseries
}

%------------------------------------------------------------------------------

\begin{frame}
\frametitle{Pavyzdys Ada kalba}


  %%BEGIN LANGUAGE lt
  ``Labas, pasauli'' Ada kalba:
  %%END LANGUAGE lt

  \lstinputlisting[language=Ada]{examples/hello_world/ada_hello_world.adb}
  
\end{frame}

%------------------------------------------------------------------------------

\begin{frame}
\frametitle{Kiek įdomesnis pavyzdys}


  %%BEGIN LANGUAGE lt
  ``Labas, pasauli'' Ada kalba su data ir laiku:
  %%END LANGUAGE lt

  \lstinputlisting[language=Ada]{examples/hello_world/ada_hello_date_time.adb}
  
\end{frame}

%------------------------------------------------------------------------------

\begin{frame}
\frametitle{Vykdymo meto patikrinimai}


  %%BEGIN LANGUAGE lt
  Skirtingai negu C, Ada tikrina artimetikos perpildymą ir daug kitų sąlygų:
  %%END LANGUAGE lt

  \only<1> {
    \lstinputlisting[language=Ada,linerange={1-17}]{examples/aliquot_sequences/ada_aliquot_sequence.adb}
  }
  \only<2> {
    \lstinputlisting[language=C,linerange={1-15}]{examples/aliquot_sequences/c_aliquot_sequence.c}
  }
  \only<3> {
    \lstinputlisting[language=Ada,linerange={30-42}]{examples/aliquot_sequences/ada_aliquot_sequence.adb}
  }
  \only<4> {
    \lstinputlisting[language=C,linerange={32-40}]{examples/aliquot_sequences/c_aliquot_sequence.c}
  }

\end{frame}

%------------------------------------------------------------------------------

\begin{frame}
\frametitle{Elgesys vykdymo metu}


  %%BEGIN LANGUAGE lt
  \only<1-6>{
    C ir Ada suskaičioja vienodus rezultatus, kol...
  }
  \only<7-8>{
    Pala pala, o kas čia? Kaip galėjo suma tapti neigiama?
  }
  %%END LANGUAGE lt

  \only<1> {
    \lstinputlisting[language=bash]{examples/aliquot_sequences/c_aliquot_sequence_8.log}
  }
  \only<2> {
    \lstinputlisting[language=bash]{examples/aliquot_sequences/ada_aliquot_sequence_8.log}
  }
  \only<3> {
    \lstinputlisting[language=bash]{examples/aliquot_sequences/c_aliquot_sequence_15.log}
  }
  \only<4> {
    \lstinputlisting[language=bash]{examples/aliquot_sequences/ada_aliquot_sequence_24.log}
  }
  \only<5> {
    \lstinputlisting[language=bash]{examples/aliquot_sequences/ada_aliquot_sequence_28.log}
  }
  \only<6> {
    \lstinputlisting[language=bash]{examples/aliquot_sequences/ada_aliquot_sequence_30.log}
  }
  \only<7-8> {
    \lstinputlisting[language=bash]{examples/aliquot_sequences/c_aliquot_sequence_276.log}
  }
  \only<8-9> {
    \lstinputlisting[language=bash]{examples/aliquot_sequences/ada_aliquot_sequence_276.log}
  }
  \only<9> {
    \vspace{-0.5\baselineskip}
    \begin{center}
      \begin{minipage}{0.7\textwidth}
        \lstinputlisting[language=Ada,linerange={8-17},numbers=left,firstnumber=8,basicstyle=\scriptsize\tt]{examples/aliquot_sequences/ada_aliquot_sequence.adb}
      \end{minipage}
    \end{center}
  }  
  
\end{frame}

%------------------------------------------------------------------------------

\begin{frame}
\frametitle{Pasekmės ne visada būna nekaltos}


  %%BEGIN LANGUAGE lt
  %%END LANGUAGE lt

  \begin{minipage}{0.55\textwidth}
    \includegraphics[width=\linewidth]{images/Explosion_of_first_Ariane_5_flight_June_4_1996.jpg}
  \end{minipage}
  \hspace{1ex}
  \begin{minipage}{0.4\textwidth}
    \raggedright
    %%BEGIN LANGUAGE lt
    Ariane 5: sveiko skaičiaus perpildymas sukėlė išimtinę situaciją...
    %%END LANGUAGE lt

    \rule{0pt}{2cm}

    %%BEGIN LANGUAGE lt
    (Nepaisant šios nesėkmės, Ariane yra viena patikimiasių raketų-nešėjų)
    %%END LANGUAGE lt
  \end{minipage}
  
  \vfill

  {
    \scriptsize \url{https://www.esa.int/ESA_Multimedia/Images/2009/09/Explosion_of_first_Ariane_5_flight_June_4_1996}
  }
  
\end{frame}

%------------------------------------------------------------------------------

\begin{frame}
\frametitle{Naudingos nuorodos}

  \footnotesize

Knygos apie Adą:
  \url{https://bookauthority.org/books/best-ada-books}
  
  \vfill
Atviros knygos iš AdaCore:
  \url{https://learn.adacore.com/}

  \vfill
  \begin{center}
    \includegraphics[height=0.5\textheight]{images/ada-books.png}
  \end{center}
  
\end{frame}

%------------------------------------------------------------------------------

\setbeamertemplate{footline}{
  \tiny
  \rule[-0.4\baselineskip]{0pt}{1.2\baselineskip}
  \hspace{1ex}
  {\em
    A path to freedom: 
    GNU $\rightarrow$
    Linux $\rightarrow$
    Ubuntu $\rightarrow$
    MySQL $\rightarrow$
    R $\rightarrow$
    \LaTeX $\rightarrow$
    TikZ $\rightarrow$
    Dia $\rightarrow$
    Beamer
  }
}
  
\begin{frame}

\centerline{\Large Klausimai?}

  \vfill

  \begin{centering}
    %% \includegraphics[height=3cm]{images/Sphalerite-Quartz-261762.eps.gz}
      \begin{tabbing}
        \hspace{8mm} \=
        \includegraphics[width=4cm]{images/topaz-picture.png} \=
        \hspace{1cm} \=
        \includegraphics[width=5cm]{images/topaz-structure.png} \\
        \>
        \tiny
        \mywebref{http://en.wikipedia.org/wiki/Topaz} \> \>
        \tiny
        \mywebref{http://www.crystallography.net/2207377.html} \\
      \end{tabbing}
  \end{centering}

\end{frame}

%------------------------------------------------------------------------------

\begin{frame}%%[allowframebreaks]
\frametitle{Šaltiniai}

  %%\scriptsize
  %%\bibliographystyle{plain}

  %%\bibliographystyle{apalike}
  %%\bibliography{bibliography/citations}
  \renewcommand{\bibfont}{\scriptsize}
  \printbibliography

\end{frame}

%------------------------------------------------------------------------------

\end{document}
% 2026-01-10 16:59:50 EET
