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;