• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Jeronimus Linuxius

[Pascal] Roadbook C --> Pascal (com direito a bilhete de regresso, claro)

3 mensagens neste tópico

Inventei este tutorial porque, qual vidente, não preciso de confirmar que o Pascal tem o mesmo defeito de todas as linguagens alguma vez utilizadas para ensinar a programar. Esse defeito é: quase todos os tutoriais disponiveis começam por ensinar o básico dos básicos.

Acho que isso é quase um insulto, e por isso, resolvi documentar o meu processo de aprendizagem de Pascal (i.e. neste momento, eu não sei quase nada de Pascal, mas quero aprender, porque é bom conhecer muitas linguagens de programação. :)). Vou fazer isto por comparação com o C, não só por ser quase a língua franca da programação (ao ponto de toda a gente a conhecer mais ou menos, quer directamente quer por ter aprendido C++), mas também por ser geralmente apresentada como um parente próximo do Pascal, e também porque é a linguagem que eu conheço melhor.

Como vou escrever o tutorial à medida que for aprendendo, é natural que cometa alguns erros, e por isso aceito de bom grado correcções/sugestões. O tutorial começa depois da horizontal rule. Vou editando o post, com o respectivo Changelog de cada vez que o alterar.

* 30/01/2009 -  Adicionadas as secções iniciais (Paladar da sintaxe,

                Terminologia, Comentários e Estrutura do programa).


Paladar da sintaxe

No Pascal, as palavras-chave não são case sensitive. Pessoalmente, ganhei o hábito de as escrever com a primeira letra em maiúscula, e vou seguir essa convenção para o resto do tutorial.

A linguagem também se apoia muito menos em parêntecis e chavetas do que o C, o que dá uma aparência muito mais leve aos programas.

Por exemplo, se no C uma instrução composta tem a forma:

{
    instrução1;
    instrução2;
    instrução3;
    ...
}

No Pascal, ela tem a forma:

Begin
    instrução1;
    instrução2;
    instrução3;
    ...
End

O ponto-e-vírgula não serve para transformar expressões em instruções, ao contrário de no C. Em vez disso, serve para separar as instruções umas das outras. Isto implica que o ponto-e-vírgula não é necessário na última instrução de um bloco.

Em Pascal não há pré-processador. Isso pode parecer, como sempre, uma limitação, no entanto a funcionalidade tradicionalmente desempenhada pelo preprocessador pode ser desempenhada pelo compilador propriamente dito. Por exemplo, a directiva #include do C é, em Pascal, substituida pelo comando "Uses".

Terminologia

Um pormenor importante que é preciso notar ao distinguir o C do Pascal é os dois tipos de funções (i.e. blocos de código executável) que há.

Em Pascal, procedimentos e funções são coisas diferentes. Um procedimento do Pascal é como uma função void em C, ou seja, uma função sem valor de retorno. Uma função do Pascal é como uma função com valor de retorno em C, isto é, qualquer função que não seja void.

O Pascal tem passagens por variável. Uma passagem por variável é uma passagem por referência. Corresponde aos argumentos de saida, que em C são implementados por meio de passagens por apontador.

Comentários

Os comentários têm duas formas clássicas:

(* Comentário 1 *)
{  Comentário 2  }

Estes comentários podem-se expandir por várias linhas. No Delphi, entre outros, também são suportados comentários à lá C++:

// Comentário single-line.

Estrutura do programa

Em Pascal, os programas seguem uma estrutura muito mais rígida do que em C. Mais do que acontecia no C antes do standard C99 (em que as declarações tinham de estar no início das funções e das instruções compostas, não pudendo estar "misturadas" com o código), em Pascal, as declarações têm um lugar reservado na estrutura sintáctica do programa e dos procedimentos/funções (para declarações locais).

A estrutura geral do programa é:

Program <nome do programa>;

// Módulos externos utilizados pelo programa.
Uses <módulo1>;
Uses <módulo2>;
Uses <módulo3>;

Const    // Secção de definição de constantes globais.
    constante1 = "texto";
    constante2 = 1337;
Var     // Secção de declaração de variáveis globais.
    variavel1: string;
    variavel2: integer;

// Definições de funções e procedimentos aqui.

Begin
    // Código aqui
    instrução1;
    instrução2;
    instrução3;  // <--- O ponto-e-vírgula serve para separar instruções,
        // pelo que não é necessário aqui. No entanto, acredito que ajude a tornar o
        // código menos error-prone, para além de não desabituar o veterano do C de
        // colocar os ponto-e-vírgulas nos lugares certos.
End.    // <-- No final do programa, é necessário um ponto final. Faz parte da sintaxe.

A formatação é livre, tal como no C. Por exemplo, o ponto final que termina o programa pode ficar 50 linhas abaixo do End, embora isso provavelmente não ajudasse ninguem.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

cons    // Secção de definição de constantes globais.

    constante1 = "texto";

    constante2 = 1337;

var    // Secção de declaração de variáveis globais.

é

const    // Secção de definição de constantes globais.
    constante1 = "texto";
    constante2 = 1337;
var     // Secção de declaração de variáveis globais.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
const    // Secção de definição de constantes globais.

Obrigado. Não me lembrei.

JJ

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora