From 53b4f3f43985a593679b8bf97fe8acf0464e3a3e Mon Sep 17 00:00:00 2001 From: dakkar Date: Wed, 20 Aug 2008 16:53:53 +0000 Subject: ritocchi git-svn-id: svn://luxion/repos/intro-perl@364 fcb26f47-9200-0410-b104-b98ab5b095f3 --- corso.content.tex | 80 ++++++++++++++++++++++++++++++------------------------- 1 file 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 { \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} +equivalente a: +\begin{lstlisting} +for my $elem (@lista) { + print $elem; +} +\end{lstlisting} +\end{onlyenv} \end{frame} \begin{frame}[fragile]\frametitle{Variabile implicita (2)} -- cgit v1.2.3