Paradigmas de Linguagens Conceitos Básicos Prof. Thiago Pereira Rique thiagorique2011@gmail.com http://thiagorique.wordpress.com/
Agenda Algoritmos e programas Linguagens de programação Desenvolvimento de programas
Algoritmos e programas Conjunto finito de passos sequenciais que descrevem como resolver um determinado problema. Informações de entrada, modificação da informação, informações de saída.
Algoritmos e programas Exemplo: Receita de bolo: Misture os ingredientes Unte a forma com manteiga Despeje a mistura na forma Se houver coco ralado então despeje sobre a mistura Leve a forma ao forno Enquanto não corar deixe a forma no forno Retire do forno Deixe esfriar
Algoritmos e programas Construção de algoritmos Dividir-e-conquistar: divide-se sucessivamente o problema em subproblemas cada vez menores. Exemplo: Trocar pneu de um carro 1. pegue o macaco . levante o carro . retire o pneu furado . pegue o estepe . coloque-o na roda . aperte os parafusos . abaixe o carro . reaperte os parafusos
Algoritmos e programas Construção de algoritmos Exemplo: Refinamento do passo 1. Refinamento ou procedimento do passo 1 1.1 abra a mala 1.2 remova o macaco do porta-malas 1.3 coloque o macaco sob o carro, próximo ao pneu furado 1.4 desaperte os parafusos da roda 1.5 insira a manivela no macaco 1.6 coloque um calço sob o carro para impedi-lo de se mover 1.7 levante o carro com o macaco até que haja espaço suficiente para colocar o estepe
Algoritmos e programas Construção de algoritmos Qual o limite do refinamento? Um algoritmo pode ser escrito de forma gráfica ou textual.
Algoritmos e programas Formas de representação dos algoritmos Descrição narrativa Fluxograma convencional Pseudocódigo
Algoritmos e programas Descrição narrativa Pouco usada na prática (permite equívocos). Algoritmos expressos em linguagem natural.
Algoritmos e programas Descrição narrativa Exemplo: Calcular média de um aluno Obter as suas 2 notas de provas Calcular a média aritmética Se a média for maior que 7, o aluno foi aprovado, senão ele foi reprovado
Algoritmos e programas Fluxograma convencional Formas geométricas diferentes implicam ações distintas. Não se preocupa com detalhes de implementação do programa.
Algoritmos e programas Fluxograma convencional
Algoritmos e programas Fluxograma convencional Exemplo:
Algoritmos e programas Pseudocódigo Algoritmo escrito em português utilizando convenções próximas de uma linguagem de programação. Forma de representação rica em detalhes. Encontra bastante aceitação.
Algoritmos e programas Pseudocódigo Algoritmo <nome_do_algoritmo> <declaração_de_variáveis> <subalgoritmos> Início <corpo do algoritmo> Fim
Algoritmos e programas Pseudocódigo Exemplo: Algoritmo Calculo_Media Var N1, N2, MEDIA: real Início Leia N1, N2 MEDIA (N1 + N2) / 2 Se MEDIA >= 7 então Escreva “Aprovado” Senão Escreva “Reprovado” Fim_se Fim
Algoritmos e programas Conjunto de instruções executadas numa certa sequência de modo a resolver algum problema. Formalização de um algoritmo em alguma linguagem de programação.
LINGUAGENS DE PROGRAMAÇÃO Conjunto limitado de instruções (vocabulário), associado a um conjunto de regras (sintaxe) que define como as instruções podem ser associadas. Cada linguagem possui um conjunto único de palavras-chave ou palavras reservadas e uma sintaxe específica.
LINGUAGENS DE PROGRAMAÇÃO De acordo com a sua similaridade com a linguagem humana: Linguagem de máquina Linguagem simbólica Linguagem de alto nível
LINGUAGENS DE PROGRAMAÇÃO Linguagem de máquina Mais baixo nível de entendimento pelo ser humano e a única entendida pelo processador (UCP). Instrução típica em linguagem de máquina: 0100 1111 1010
LINGUAGENS DE PROGRAMAÇÃO Linguagem simbólica (Assembly) Linguagem de nível imediatamente acima da linguagem de máquina. Permite o uso de nomes (mnemônicos) e símbolos em lugar de números. Linguagem simbólica para linguagem de máquina (Montador: Assembler). Instrução típica em linguagem simbólica: MOV R1, R2 ADD R1, R2
LINGUAGENS DE PROGRAMAÇÃO Linguagem de alto nível Possui uma estrutura e palavras-chave mais próximas da linguagem humana. Programas escritos em linguagem de alto nível são convertidos para linguagem de baixo nível através de uma programa denominado compilador ou de um interpretador. Instrução típica em linguagem de alto nível: if (A > 10) then A := A – 7;
Desenvolvimento de programas É associado ao uso de ferramentas ou ambientes de desenvolvimento Principais etapas: Geração de código-fonte Tradução do código-fonte Editores de ligação Depuradores
Desenvolvimento de programas Geração de código-fonte Codificação em alguma linguagem de programação Editores
Desenvolvimento de programas Tradução do código-fonte O código-fonte não é executável. É necessário que o código-fonte seja traduzido para o código de máquina. Esta tradução (ou conversão) é realizada de forma automática graças à existência de ferramentas como os montadores (ou Assemblers) e os compiladores. O código gerado por essas ferramentas é denominado código-objeto.
Desenvolvimento de programas Editores de ligação Conhecidos como linkers Rearranjar o código do programa, incorporando a ele todas as partes referenciadas no código original.
Desenvolvimento de programas Depuradores ou debuggers Auxiliar o programador a eliminar a quantidade de “bugs”.