summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordakkar <dakkar@luxion>2008-08-20 16:53:53 +0000
committerdakkar <dakkar@luxion>2008-08-20 16:53:53 +0000
commit53b4f3f43985a593679b8bf97fe8acf0464e3a3e (patch)
tree4477b85e100bcf16972de404aac6f792f9c80403
parentfine! (forse) (diff)
downloadintro-perl-53b4f3f43985a593679b8bf97fe8acf0464e3a3e.tar.gz
intro-perl-53b4f3f43985a593679b8bf97fe8acf0464e3a3e.tar.bz2
intro-perl-53b4f3f43985a593679b8bf97fe8acf0464e3a3e.zip
ritocchi
git-svn-id: svn://luxion/repos/intro-perl@364 fcb26f47-9200-0410-b104-b98ab5b095f3
-rw-r--r--corso.content.tex80
1 files changed, 44 insertions, 36 deletions
diff --git a/corso.content.tex b/corso.content.tex
index c1870e4..5837cde 100644
--- a/corso.content.tex
+++ b/corso.content.tex
@@ -3,15 +3,18 @@
\usepackage[T1]{fontenc}
\usepackage{times}
\usepackage{colortbl}
+\usepackage{textcomp}
\usepackage{listings}
\usepackage{tikz}
-\lstset{extendedchars,numbers=left,numberstyle=\tiny ,numbersep=5pt,language=Perl,showspaces=false,frame=single,framerule=0pt,backgroundcolor=\color{black!20},basicstyle=\small\ttfamily}
+\colorlet{p}{black!20}
+
+\lstset{extendedchars,numbers=left,numberstyle=\tiny ,numbersep=5pt,language=Perl,showspaces=false,frame=single,framerule=0pt,backgroundcolor=\color{p},basicstyle=\small\ttfamily ,upquote=true,keepspaces=true}
\mode<presentation>
{
\usetheme[hideothersubsections]{Goettingen}
-\usecolortheme{beaver}
+%\usecolortheme{beaver}
\usecolortheme{rose}
\setbeamertemplate{sections/subsections in toc}[ball]
}
@@ -77,7 +80,7 @@
\subsection{Cos'è Perl?} % ma perché non va con \textit???
\begin{frame}\frametitle{Il nome}
-\begin{itemize}[<+->]
+\begin{itemize}
\item \Perl\ è il nome del linguaggio
\item \perl\ è il nome del programma
\item PERL è un errore
@@ -85,37 +88,37 @@
\end{frame}
\begin{frame}\frametitle{Il nome}
-\begin{itemize}[<+->]
+\begin{itemize}
\item \emph{non} è una sigla
\item è un nome
\item se proprio volete...
- \begin{itemize}[<+->]
- \item Practical Extraction and Report Language
- \item Pathologically Eclectic Rubbish Lister
- \item Polymorphic Existential Recursive Lambdas
+ \begin{itemize}
+ \item<2-> Practical Extraction and Report Language
+ \item<2-> Pathologically Eclectic Rubbish Lister
+ \item<2-> Polymorphic Existential Recursive Lambdas
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}\frametitle{Interprete o compilatore?}
-\addtocounter{beamerpauses}{1}
+%\addtocounter{beamerpauses}{1}
\begin{description}
\item[Interprete] legge un'istruzione alla volta e la esegue
- \begin{itemize}[<+->]
- \item scova gli errori solo quando ci sbatte
- \item non fa ottimizzazioni serie
+ \begin{itemize}
+ \item<2-> scova gli errori solo quando ci sbatte
+ \item<3-> non fa ottimizzazioni serie
\end{itemize}
\item[Compilatore] trasforma il programma da un linguaggio a un altro
- \begin{itemize}[<+->]
- \item può scovare molti errori staticamente
- \item può ottimizzare il codice
- \item \emph{non è mai sufficiente}
+ \begin{itemize}
+ \item<2-> può scovare molti errori staticamente
+ \item<3-> può ottimizzare il codice
+ \item<4-> \emph{non è mai sufficiente}
\end{itemize}
\end{description}
\end{frame}
\begin{frame}\frametitle{Interpreti --- esempi}
-\begin{itemize}[<+->]
+\begin{itemize}
\item la CPU è un interprete
\item \texttt{bash} è un interprete
\item la JVM è un interprete
@@ -124,7 +127,7 @@
\end{frame}
\begin{frame}\frametitle{Compilatori --- esempi}
-\begin{itemize}[<+->]
+\begin{itemize}
\item \texttt{GCC} è un compilatore
\item \texttt{javac} è un compilatore
\item \perl\ è un compilatore
@@ -138,7 +141,7 @@
\end{frame}
\begin{frame}\frametitle{La filosofia}
-\begin{itemize}[<+->]
+\begin{itemize}
\item simile a un linguaggio naturale
\item TMTOWTDI
\item making easy things easy, and hard things possible
@@ -161,7 +164,7 @@
\onslide<2|handout:1>{\begin{itemize}
\item \url{http://win32.perl.org/}
\item \href{http://www.activestate.com/Products/activeperl/index.mhtml}{ActivePerl}, di ActiveState
-\item \href{http://win32.perl.org/wiki/index.php?title=Strawberry_Perl}{Starwberry Perl}, se volete qualcosa di più ``normale''
+\item \href{http://win32.perl.org/wiki/index.php?title=Strawberry_Perl}{Strawberry Perl}, se volete qualcosa di più ``normale''
\end{itemize}}
\end{overprint}
\end{frame}
@@ -169,18 +172,16 @@
\subsection{Scrivere ed eseguire programmi}
\begin{frame}\frametitle{File di testo}
-\uncover<+->{Come la maggior parte dei linguaggi di programmazione,
-Perl legge i programmi da semplici file di testo.}
-
-\uncover<+->{Per il momento supponiamo di usare soltanto i caratteri
- dell'insieme ASCII (niente accentate)}
-
-\uncover<+->{È più semplice se usate i fine-linea normali per la
- vostra piattaforma}
+\begin{itemize}
+\item Come la maggior parte dei linguaggi di programmazione,
+Perl legge i programmi da semplici file di testo.
+\item È più semplice se usate i fine-linea normali per la
+vostra piattaforma
+\end{itemize}
\end{frame}
\begin{frame}\frametitle{Convenzioni}
-\begin{itemize}[<+->]
+\begin{itemize}
\item per i programmi potete usare i nomi che volete
\item certe volte si usa \texttt{.pl} come estensione
\item \texttt{\#!/usr/bin/perl} o \texttt{\#!/usr/bin/env perl}
@@ -199,7 +200,7 @@ use warnings;
\end{frame}
\begin{frame}\frametitle{Esecuzione}
-\begin{itemize}[<+->]
+\begin{itemize}
\item \texttt{perl nomefile}
\item *NIX: \texttt{chmod +x nomefile; ./nomefile}
\item Windows: trucchi con i file \texttt{.BAT}
@@ -385,7 +386,7 @@ Usate le graffe intorno al nome per evitare che i caratteri che seguono vengano
\begin{lstlisting}
print "Buh!\n";
my $a='qualcosa';print $a,"\n";
-print "a","b","c";
+print 'a','b','c';
\end{lstlisting}
\visible<2->{%
@@ -624,11 +625,10 @@ print $a[3],"\n";
\visible<2->{
\lstinline!4!
-}
-\visible<3->{Sì, \lstinline!@a! è il nome dell'intero array, ma l'accesso a elemento comincia con \lstinline!$!. Potete usare una variable array in ogni posto dove usereste una lista.}
+Sì, \lstinline!@a! è il nome dell'intero array, ma l'accesso a elemento comincia con \lstinline!$!. Potete usare una variable array in ogni posto dove usereste una lista.
-\visible<4->{Una variabile array cui non è mai stato assegnato nulla ha valore \lstinline!()! (lista vuota).}
+Una variabile array cui non è mai stato assegnato nulla ha valore \lstinline!()! (lista vuota).}
\end{frame}
\begin{frame}[fragile]\frametitle{Assegnamento, di nuovo}
@@ -1458,7 +1458,7 @@ punti che corrispondono alla regex, non solo il primo
\section{Controllo del flusso}
\begin{frame}[fragile]\frametitle{Strutture di controllo}
-Abbiamo visto \lstinline{if}:
+Abbiamo visto \lstinline!if!:
\begin{lstlisting}
if ($totale < 0) { print "Eh?\n" }
\end{lstlisting}
@@ -1475,7 +1475,7 @@ while (<> !~ /^[sn]/) {
\subsection{Controlli negati} % unless, until
\begin{frame}[fragile]\frametitle{Controlli negati}
-Il contrario di \lstinline{if} è \lstinline!unless!:
+Il contrario di \lstinline!if! è \lstinline!unless!:
\begin{lstlisting}
unless ($totale >= 0) { print "Eh?\n" }
\end{lstlisting}
@@ -2056,6 +2056,14 @@ for my $elem (@lista) {
}
\end{lstlisting}
\end{overprint}
+\begin{onlyenv}<handout>
+equivalente a:
+\begin{lstlisting}
+for my $elem (@lista) {
+ print $elem;
+}
+\end{lstlisting}
+\end{onlyenv}
\end{frame}
\begin{frame}[fragile]\frametitle{Variabile implicita (2)}