linguagem de programação - instituto federal farroupilha -...

25
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

Upload: dinhkhuong

Post on 13-Dec-2018

215 views

Category:

Documents


0 download

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

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

• 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/

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.

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;