libreplanet-br-sp
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [lp-br-sp] Patch para aula de compilação


From: Sergio Durigan Junior
Subject: Re: [lp-br-sp] Patch para aula de compilação
Date: Mon, 09 Mar 2015 13:44:54 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.4 (gnu/linux)

On Monday, March 09 2015, Raniere Silva wrote:

>> > @@ -84,40 +84,60 @@
>> >      \item \texttt{-o meu\_programa} : Informa o nome do arquivo de saída.
>> >      \item \texttt{-Wall} : Ativa todos os Warnings do compilador.
>> >      \item \texttt{-Werror} : Transforma os Warnings em erros.
>> > -    \item Existem diversas outras flags úteis: \texttt{-g}, \texttt{-O3}, 
>> > \texttt{-pedantic}, ...
>> > +    \item Existem diversas outras flags úteis: \texttt{-c}, \texttt{-g}, 
>> > \texttt{-O3}, \texttt{-pedantic}, ...
>> 
>> IMHO o rationale de colocar uma flag nessa lista de exemplos é: "Você
>> consegue explicá-la de maneira simples pros bixos?".  Você consegue?  Se
>> sim, então não tenho problemas com esse hunk :-).
>
> Eu adicionei o -c para poder utilizá-lo no final.

No final?

>> > -    \begin{itemize}
>> > -  \item Executando seu programa:
>> > -  \end{itemize}
>> > -    \begin{shell}[0.9]
>> > -    \usercmd{./meu\_prog}
>> > +
>> > +\begin{frame}{Executando o código que compilou}
>> > +
>> > +  \begin{shell}[0.9]
>> > +      \usercmd{./meu\_prog [parametros] [io]}
>> >    \end{shell}
>> > +  \begin{itemize}
>> > +    \item parâmetros para o seu programa.
>> > +    \item io:
>> > +      \begin{itemize}
>> > +        \item \texttt{<} : entrada
>> > +        \item \texttt{>} : saída
>> > +        \item \texttt{>>} : saída (\textbf{incrementa})
>> > +        \item ``Here document'':
>> > +            \begin{shell}[0.9]
>> > +                \usercmd{./meu\_prog <<EOF} \\
>> > +                \code{foo} \\
>> > +                \code{bar} \\
>> > +                \code{EOF}
>> > +            \end{shell}
>> 
>> Definitivamente não concordo em citar "here document".
>
> Algum motivo em especial exceto cobrir na aula de shell?

Nem sei se rola cobrir isso na aula de shell.

O motivo é "o mesmo de sempre": essa parte é mais avançada, pode causar
dúvidas, e definitivamente não é algo que eles precisam saber pra
"compilar um programa", que é o objetivo da aula.

>> > +\begin{frame}{Dicas avançadas}
>> > +  \begin{itemize}
>> > +  \item \texttt{gdb} é seu amigo para as horas difíceis.
>> > +  \item binutils possui ferramentas úteis:
>> > +    \begin{itemize}
>> > +      \item \texttt{nm}: lista símbolos nos objetos.
>> > +      \item \texttt{objdump}: mostra informações dos objetos.
>> > +    \end{itemize}
>> > +  \end{itemize}
>> > +\end{frame}
>> 
>> Não concordo em colocar esse último frame.
>
> Algum motivo?

Mesma coisa, com o agravante de que, IMNSHO, falar de "objdump" e "nm" é
extremamente desnecessário e confuso pra eles.  A não ser que você tenha
uma explicação super fácil e legal sobre o que o "objdump" faz :-).

Essa aula é uma aula *básica* de compilação; eventualmente, o grupo
poderia fazer uma aula *avançada* de conceitos, no segundo ou terceiros
semestres, na qual poderíamos explicar melhor essas coisas aí de cima.
Na verdade, a gente já teve essa idéia dezenas de vezes, mas nunca
levamos pra frente.

-- 
Sergio
GPG key ID: 0x65FC5E36
Please send encrypted e-mail if possible
http://sergiodj.net/

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]