linguagem de programação - instituto federal farroupilha -...
TRANSCRIPT
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
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;
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
Breve histórico
• 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);
Niklaus Wirth
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;
Fonte: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Ranking de Popularidade das Linguagens de Programação (Agosto/2013)
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. Edite o código em um editor de textos ou ambiente de desenvolvimento;
2. Salve o arquivo em uma pasta de sua preferência com extensão .PAS
3. Abra uma janela de interpretador de comandos do sistema operacional
(prompt de comandos, no Windows ou tela de terminal no Linux);
4. 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
program OlaMundo;
begin
write('Olá, Mundo!');
end. OlaMundo.pas
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/
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.
Comentários
• Reescreva o código
ao lado indicando
para cada linha, o
que é esperado que
ela faça.
program Test;
uses crt;
var a, b: integer;
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;