From faf41ed43590b5743033286799dd0dfd0d976620 Mon Sep 17 00:00:00 2001 From: dakkar Date: Tue, 5 Aug 2008 20:55:08 +0000 Subject: qualche altra riga git-svn-id: svn://luxion/repos/intro-perl@346 fcb26f47-9200-0410-b104-b98ab5b095f3 --- corso.content.tex | 161 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 158 insertions(+), 3 deletions(-) diff --git a/corso.content.tex b/corso.content.tex index c8e043a..d20938b 100644 --- a/corso.content.tex +++ b/corso.content.tex @@ -6,9 +6,10 @@ \usepackage{listings} \usepackage{tikz} +\lstset{numbers=left,numberstyle=\tiny ,numbersep=5pt,language=Perl,printpod=true,showspaces=false,frame=single,framerule=0pt,backgroundcolor=\color{black!20},basicstyle=\small\ttfamily} + \mode { -%\usetheme{JuanLesPins} \usetheme[hideothersubsections]{Goettingen} \usecolortheme{beaver} \usecolortheme{rose} @@ -29,10 +30,18 @@ %% \end{frame} %% } -\newcommand{\Perl}{\textit{Perl}} +\newcommand{\Perl}{\textsf{Perl}} \newcommand{\perl}{\texttt{perl}} -\title{\Perl\ - corso introduttivo} +% 'sto coso non va... ed è pure copiato dalla documentazione di beamer! +%% \newenvironment{itemframe} +%% {\begin{frame}\frametitle{gino}\startitemframe} +%% {\stopitemframe\end{frame}} +% +%% \newcommand\startitemframe{\begin{itemize}} +%% \newcommand\stopitemframe{\end{itemize}} + +\title{\Perl\ --- corso introduttivo} \author[perl.it]{perl.it \url{http://www.perl.it/}} \date[IPW2008]{Italian Perl Workshop 2008} @@ -46,12 +55,156 @@ \section{Introduzione} +\subsection{Informazioni generali} + +\begin{frame}\frametitle{Cosa imparerete} +\begin{itemize} +\item a scrivere ed eseguire programmi Perl +\item a leggere molti semplici programmi altrui +\item a trovare ulteriori informazioni +\end{itemize} +\end{frame} + +\begin{frame}\frametitle{Cosa dovete già sapere} +\begin{itemize} +\item usare un editor di testi +\item usare la linea di comando +\item programmare in qualche linguaggio \uncover<2->{(anche se comincia per P)} +\end{itemize} +\end{frame} + \subsection{Cos'è Perl?} % ma perché non va con \textit??? +\begin{frame}\frametitle{Il nome} +\begin{itemize}[<+->] +\item \Perl\ è il nome del linguaggio +\item \perl\ è il nome del programma +\item PERL è un errore +\end{itemize} +\end{frame} + +\begin{frame}\frametitle{Il nome} +\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 + \end{itemize} +\end{itemize} +\end{frame} + +\begin{frame}\frametitle{Interprete o compilatore?} +\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 + \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} + \end{itemize} +\end{description} +\end{frame} + +\begin{frame}\frametitle{Interpreti --- esempi} +\begin{itemize}[<+->] +\item la CPU è un interprete +\item \texttt{bash} è un interprete +\item la JVM è un interprete +\item \perl\ è un interprete +\end{itemize} +\end{frame} + +\begin{frame}\frametitle{Compilatori --- esempi} +\begin{itemize}[<+->] +\item \texttt{GCC} è un compilatore +\item \texttt{javac} è un compilatore +\item \perl\ è un compilatore +\end{itemize} +\end{frame} + +\begin{frame}\frametitle{Interprete \textit{e} compilatore} +\perl\ esamina l'intero programma, e se non ci sono errori lo +\emph{compila} in una struttura dati in RAM, la quale viene poi +\emph{interpretata} +\end{frame} + +\begin{frame}\frametitle{La filosofia} +\begin{itemize}[<+->] +\item simile a un linguaggio naturale +\item TMTOWTDI +\item making easy things easy, and hard things possible +\item \emph{manipulexity} vs. \emph{whipuptitude} +\end{itemize} +\end{frame} + \subsection{Dove trovare \perl} +\begin{frame}\frametitle{Forse non serve} +\begin{itemize} +\item praticamente tutti i sistemi *NIX lo includono +\item pure il MacOS X +\end{itemize} +\end{frame} + +\begin{frame}\frametitle{Ma io uso Windows!} +\begin{overprint} +\onslide<1|handout:0>{Mi dispiace per te} +\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'' +\end{itemize}} +\end{overprint} +\end{frame} + \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} +\end{frame} + +\begin{frame}\frametitle{Convenzioni} +\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} +\item i file che definiscono i moduli devono avere nomi particolari +\end{itemize} +\end{frame} + +\begin{frame}[fragile]\frametitle{Esempio minimo} +\begin{lstlisting} +#!/usr/bin/env perl +use strict; +use warnings; + +# qui il vostro programma +\end{lstlisting} +\end{frame} + +\begin{frame}\frametitle{Esecuzione} +\begin{itemize}[<+->] +\item \texttt{perl nomefile} +\item *NIX: \texttt{chmod +x nomefile; ./nomefile} +\item Windows: trucchi con i file \texttt{.BAT} +\end{itemize} +\end{frame} + \section{Scalari} \subsection{Numeri} @@ -167,4 +320,6 @@ % mode: outline-minor % outline-regexp: "\\(. -+ \\)\\|\\\\part\\|\\\\section\\|\\\\subsection" % coding: iso-8859-1 +% tex-command: "pdflatex" +% tex-main-file: "corso.slides.tex" % End: -- cgit v1.2.3