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) Programa Executável Código de Bibliotecas
Linguagem de Programação Pascal
Breve histórico Linguagem de programação estruturada; Niklaus Wirth 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. 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 program OlaMundo; begin write('olá, Mundo!'); end. OlaMundo.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
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;