Introdução a Linguagem de Programação Pascal

Propaganda
Linguagem de Programação
Aula 2 – Introdução
Universidade Federal de Santa Maria
Colégio Agrícola de Frederico Westphalen
Curso Técnico em Informática
Prof. Bruno B. Boniati – www.cafw.ufsm.br/~bruno
O que é uma linguagem de programação?
Linguagem de Programação
• Método padronizado utilizado para
expressar instruções a um computador;
• Não é um software e sim um conjunto de
regras sintáticas e semânticas que irão
definir um programa de computador.
Sintaxe = Forma
• A sintaxe são as regras que definem o formato de
uma linguagem, estabelecendo com são
compostas e combinadas suas palavras.
• Compõe-se de:
▫ Regras léxicas que descrevem combinações de
caracteres válidas para formar os tokens (palavras
reservadas, operadores, comandos);
▫ E regras sintáticas que descrevem como as palavras
podem ser combinadas para formar instruções válidas.
Semântica = Significado
• A semântica diz respeito ao significado das
construções sintáticas;
• Um programa pode estar sintaticamente correto
mesmo com erros semânticos.
▫ Erros semânticos comuns ...
 Utilizar uma variável que não foi declarada;
 Acessar uma posição inválida em uma lista (vetor);
 Atribuir um conteúdo inválido em uma variável;
Nível de uma LP
• Linguagem de baixo nível
▫ Suas construções aproximam mais da linguagem
de máquina;
▫ Ex. Assembly
WRITE_CHAR PROC
push AX
;coloca na pilha o valor do registrador AX
mov AH,2 ;coloca o valor hexadecimal 2 no registrador AH
int 21h ;interrupção 21h
pop AX
;extrai da pilha o valor de AX
ret
;retorna o controle ao procedimento que chamou
WRITE_CHAR ENDP
Nível de uma LP (cont.)
• Linguagem de alto nível
▫ Linguagens que fornecem abstrações e adoção de
tipos de dados, palavras reservadas, funções e
comandos de uso comum e mais próximos da
linguagem natural.
▫ Ex. C, Pascal, Java, PHP, Python
program Exemplo
begin
write("Sejam bem vindos");
end;
Compilação x Interpretação
Linguagens Interpretadas
• Em uma linguagem de programação interpretada um
programa é executado instrução a instrução;
• O comando precisa ser primeiramente traduzido para
linguagem de máquina para só então executado;
• Sua execução é necessariamente mais lenta que
linguagens que são executadas diretamente em código
de máquina (em função da etapa de tradução);
• O código-fonte precisa ficar disponível para ser
interpretado;
Linguagens Compiladas
• Em uma linguagem compilada o programa é executado
somente após toda sua tradução ter sido completada;
• Somente o programa executável precisa ser
disponibilizado (o código-fonte não é necessário para a
execução);
• A compilação de um programa fonte (texto escrito
diretamente na linguagem de alto nível) prevê que o
mesmo seja traduzido para a linguagem da máquina
correspondente antes da execução (processo conhecido
por compilação).
Etapas da compilação
1. Depuração sintática
▫ Avalia se o código produzido no programa-fonte está
codificado corretamente;
2. Geração do código de máquina
▫ Transforma o código-fonte linguagem de montagem;
3. Ligação ou Linkagem
▫ Empacota o código produzido com o conjunto de bibliotecas
utilizadas e gera um programa executável independente;
Etapas da compilação
Programa
Fonte
Compilador
Ligador
(Linker)
Código de Bibliotecas
Programa
Executável
Linguagem de Programação Pascal
Breve histórico
Niklaus Wirth
• Linguagem de programação estruturada;
• Criada em 1970 pelo suíço Niklaus Wirth;
• Surgiu com o intuito de ser uma linguagem de
programação simples para ser utilizada
academicamente no ensino de programação.
• Seu nome é uma homenagem ao matemático Blaise
Pascal (inventor das primeiras máquinas lógicas);
Características
• Imperativa (baseada em um programa principal que
eventualmente executa sub-rotinas);
• Compilada (produz um executável independente);
• Fortemente tipada (as variáveis precisam ser
declaradas com seus tipos de dados associados);
• Não é case sensitive (não há diferenciação entre letras
maiúsculas e minúsculas);
Pascal na atualidade
• Evoluiu para a linguagem Object Pascal, utilizada em ambientes
desenvolvimento como Delphi, Kylix e Lazarus;
• Continua sendo uma excelente linguagem para aprendizado de
programação;
Ranking de Popularidade das Linguagens de Programação (Agosto/2013)
Fonte: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Estrutura básica de um programa
PASCAL
program nome_programa;
uses crt; //bibliotecas
var //Declaração de variáveis
instituicao : string;
begin //Início do programa
instituicao := 'UFSM';
write(instituicao);
end.
Compilador PASCAL
• Existe uma extensa lista de compiladores de linguagem
Pascal ... http://pascaland.org/pascall.htm
• Dois em especial nos interessam ...
 Borland Turbo Pascal
 Lançado comercialmente em 1983 para atingir o mercado de
micro computadores (em plena expansão na época). É o
grande responsável pela popularização do Pascal;
 Free Pascal
 Iniciativa da comunidade de software livre, disponível para
download no endereço www.freepascal.org.
Compilador Free Pascal
• Etapas de compilação
1.
2.
Edite o código em um editor de textos ou ambiente de desenvolvimento;
Salve o arquivo em uma pasta de sua preferência com extensão .PAS
program OlaMundo;
begin
write('Olá, Mundo!');
end.
3.
4.
OlaMundo.pas
Abra uma janela de interpretador de comandos do sistema operacional
(prompt de comandos, no Windows ou tela de terminal no Linux);
Execute o comando para compilação:
fpc OlaMundo.pas <enter>
5.
O resultado da compilação será um arquivo OlaMundo.o (código objeto)
e o arquivo executável: OlaMundo.exe
IDE – Ambiente de Desenvolvimento
(Integrated Development Environment)
• Oferece recursos de produtividade ao desenvolvedor:
▫ Indicação de sintaxe (syntax highlighting);
▫ Código automático (code completion);
▫ Integração das etapas de compilação;
Geany IDE
 Editor de código gratuito e multi-plataforma;
 Oferece recursos para diferentes linguagens de programação;
 Disponível em: http://www.geany.org/
Geany IDE
Exercícios para fixação
Compilar e Executar
• Compile e execute o código abaixo e verifique o que está
irá aparecer na tela;
program DeQuePaisEhEssaBandeira ;
uses crt;
var i: integer;
begin
for i:=1 to 640 do
begin
textcolor (9);
write (#178);
end;
for i:=1 to 720 do
begin
textcolor (15);
write (#178);
end;
for i:=1 to 640 do
begin
textcolor (4);
write (#178);
end;
end.
program Test;
uses crt;
var a, b: integer;
Comentários
• Reescreva o código
ao lado indicando
para cada linha, o
que é esperado que
ela faça.
begin
textbackground(2);
textcolor(1);
clrscr;
gotoxy(15,10);
write('Type a number for A...: ');
read(a);
gotoxy(15,12);
write('Type a number for B...: ');
read(b);
gotoxy(15,14);
if (a > b) then
writeln('A is greater than B')
else if (a < b) then
writeln('B is greater than A')
else
writeln('B is equals A');
readkey;
end.
Jogo dos 7 erros
• Identifique e corrija os sete erros do código abaixo:
program SquareRoot;
var raiz: real;
begin
write('Informe um numero: ');
read(x)
if (x<0) then
writeln('Numeros negativos nao sao permitidos!)
else
begin
raiz := Sqrt(x);
writeln('O raiz de ', x:0:4, ' e ', raiz:0:4);
writeln('Bom dia';
readkey;
end;
Download