Buscar

Aula02_Conceitos_basicos_AP

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 26 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Universidade Federal da Grande Dourados
Faculdade de Ciências Exatas e de Tecnologias
Curso de Bacharelado em Sistemas de Informação
Algoritmos e Programação
Conceitos Básicos
Profª Janne Oeiras Lachi
1
Plano de aula
` Conceitos básicos:
` Programação.
` Algoritmos.
2
Computador
` O que queremos dizer com a 
palavra “computador”?
` O computador é uma máquina
que armazena dados (números, 
palavras, figuras), interage com 
dispositivos (a tela do monitor, o 
sistema de som, a impressora) e 
executa programas.
3
Programação
` Programação de computadores é o ato de projetar e 
implementar programas de computador.
` O programa determina a seqüência de etapas 
necessárias para realizar uma tarefa
` Orienta o computador a executar tarefas.
` Um programa é uma codificação de um algoritmo em 
uma linguagem de programação
` Exemplo: C, Java, Pascal, Python, Ruby, Lua...
4
Algoritmo Æ Programa
` Escreva um algoritmo que receba como entrada dois 
números inteiros e apresente como saída o resultado da 
soma somente se o valor obtido for maior que 10.
5
programa SOMA_10
var
N1, N2, SOMA: inteiro
início
escreva “Informe dois números inteiros:”
leia NI, N2
SOMA Å N1 + N2
se SOMA > 10 então
escreva “O resultado eh: ”, SOMA
fim_se
fim
#include <stdio.h>
int main()
{
int n1, n2, soma;
printf(“Informe dois números inteiros:”);
scanf(“%d%d”, &n1, &n2);
soma = n1+n2;
if (soma > 10)
printf(“O resultado eh: %d”, soma);
return 0;
}
Algoritmo Programa em C
De linguagem de alto nível para a 
linguagem do hardware
` Os primeiros programadores se comunicavam com os 
computadores em números binários.
` Depois inventaram novas notações mais parecidas com a 
maneira como os humanos pensam.
` Inventou-se programas para traduzir da notação 
simbólica para binário (no princípio, a tradução era feita 
manualmente).
6
Abstração
Algoritmo em:
•Português estruturado ou
•Diagrama de blocos ou 
•Diagrama de Chapin
7
De linguagem de alto nível para a 
linguagem do hardware
` Uma máquina eletrônica recebe instruções através de 
sinais elétricos.
` Os sinais mais fáceis de serem entendidos são ligado e 
desligado.
` O alfabeto do computador é formado por números na 
base 2 (0 e 1).
` Dígito binário (bit): um dos dois números na base 2 que 
são componentes da informação.
8
De linguagem de alto nível para a 
linguagem do hardware
` Linguagem de programação de alto nível:
` Uma linguagem como C, Pascal ou Fortran, composta de 
palavras e notação algébrica, pode ser traduzida por um 
compilador para a linguagem assembly.
9
Compilador: O que é?
` Um programa que aceita como entrada um texto de 
programa em uma certa linguagem (linguagem fonte) e 
produz como saída um texto de programa em outra 
linguagem (linguagem alvo).
Programa
alvo
Programa 
fonte compilador
Mensagens de erro
Tradução
` É o processo realizado pelo compilador. Assim 
chamado porque “traduzem” uma linguagem (fonte) em 
outra (alvo).
` A linguagem usada para escrever o tradutor é chamada 
de linguagem de implementação.
` Exemplo: C, Java, Pascal...
Tradução: por que fazer?
` Como dizer ao computador o que fazer?
Pensamento humano
(não-estruturado) Computador
Linguagem de programação (LP):
meio de comunicação entre o usuário e o computador
Tradução: por que fazer?
` Hierarquia de linguagens:
` Linguagem de alto nível: próxima ao pensamento humano (C, 
Pascal, Java...)
` Linguagem de baixo nível: usada pelo computador (assembly, 
linguagem de máquina).
Assembly
` É uma Linguagem de programação denominada de baixo 
nível que compreende as características da arquitetura 
do computador. 
` O conjunto de comandos é fortemente relacionado à
arquitetura do computador onde será executado o 
programa
` É uma representação simbólica das instruções de 
máquina.
` O programador deve escrever uma linha para cada 
instrução que a máquina seguirá, obrigando o
programador a pensar como a máquina.
` Veja exemplos em http://pt.wikipedia.org/wiki/Assembly
De linguagem de alto nível para a 
linguagem do hardware
` Vantagens das linguagens de alto nível:
` Permite que o programador pense em uma língua natural mais 
próxima da sua;
` Maior produtividade do programador;
` Os programas são independentes do computador no qual elas 
são desenvolvidas, já que os compiladores e montadores podem 
traduzir programas de linguagem de alto nível para instruções 
binárias de qualquer máquina;
` Linguagens assembly e de máquina dependem da arquitetura específica 
do computador.
15
Um pouco de história...
` 1954, IBM develops the 704
` Successor to the 701
` Problem
` Software costs exceeded
hardware costs!
` All programming done in assembly
http://www.stanford.edu/class/cs143/
FORTRAN I
` Enter John Backus idea:
` Translate high-level code to assembly
` Many thought this impossible
` Had already failed in other projects
http://www.stanford.edu/class/cs143/
FORTRAN I Project
` 1954-57: duração do projeto
` 1958: >50% of all software is in FORTRAN
` Development time halved (reduziu pela metade)
` FORTRAN I was the first compiler
` Huge impact on computer science
` Led to an enormous body of theoretical work
` Modern compilers preserve the outlines of FORTRAN I
http://www.stanford.edu/class/cs143/
Tradutores de LPs
` Montadores (assembler):
` Mapeiam instruções de linguagem simbólica (assembly) para 
instruções de linguagem de máquina; 1 para 1
` Exemplo:
` add A, B
` 1000110010100000
` Macro-assemblers:
` Mapeiam instruções de linguagem simbólica (assembly) para 
instruções de linguagem de máquina; 1 para várias
Um comando macro é traduzido para uma 
seqüência de comandos simbólicos antes de ser 
feita a tradução para linguagem de máquina
Tradutores de LPs
` Compiladores:
` Convertem programas escritos em Linguagem de Alto 
Nível (LAN) para programas equivalentes em linguagem 
simbólica ou de máquina
` Execução de um programa em LAN em dois passos:
` tempo de compilação: intervalo no qual o programa fonte é
traduzido para o programa executável.
` tempo de execução: intervalo no qual o programa executável é
executado.
Tradutores de LPs
` Compiladores:
Programa
alvo
Programa 
fonte compilador
Dados de 
entrada
Programa 
executável Resultados
Tradutores de LPs
` Interpretadores: 
` Aceitam como entrada o código intermediário de um programa 
anteriormente traduzido e produzem o efeito da execução do 
algoritmo original sem mapeá-lo para linguagem de máquina.
Programa
intermediário INTERPRETADOR
(máquina virtual)
ResultadosPrograma
fonte TRADUTOR
dados
Compilador x Interpretador
` Interpretação:
` O pré-processamento é
mais rápido;
` O mecanismo de 
interpretação é um 
programa;
` A execução de programas é
lenta.
` Compilação:
` O pré-processamento de 
programas é considerável;
` O mecanismo de 
interpretação é a CPU;
` A execução do programa é
mais rápida.
Compilador x Interpretador
Compilação
MáquinaCódigofonte
Código
executável
Pré-processamento Processamento
Interpretação
InterpretadorCódigo
intermediário
Código
fonte
Pré-processamento Processamento
Vantagem x Desvantagem
` Interpretadores: 
` Vantagem: facilidade de implementação de novas linguagens para 
diferentes equipamentos (portabilidade);
` Desvantagem: tempo de execução é maior que um programa 
executável equivalente. Ocorre porque cada instrução do 
código intermediário, quando operada, precisa de uma tradução 
para o código de máquina.
Referências
` Aho, A.; Sethi, R.; Ullman, J. Compiladores: Princípios, técnicas
e ferramentas. D.Rio de Janeiro; Editora Guanabara Koogan S.A. 
344p.
` Grune, D.; Bal H.; Jacobs, C.; Langendoen, K. Projeto Moderno
de compiladores – Implementação e Aplicações. Rio de 
Janeiro: Editora Campus, 2001. 671 p.
` Slides do Profº Nielsen Simões
` https://sites.google.com/a/comp.uems.br/pci2010/arquivos
` Slides da Profª Valguima Odakura
` Patterson, Hennessy. Organização e Projeto de 
Computadores – A Interface Hardware/Software. 
Editora Campus. 2005
` Ascencio, A. F. G. Campos, E. A. V. Fundamentos da 
programação de computadores. Pearson/Prentice Hall, 2ª ed. 
2007. 
26
	Algoritmos e Programação
	Plano de aula
	Computador
	Programação
	Algoritmo  Programa
	De linguagem de alto nível para a linguagem do hardware
	Abstração
	De linguagem de alto nível para a linguagem do hardware
	De linguagem de alto nível para a linguagem do hardware
	Compilador: O que é?
	Tradução
	Tradução: por que fazer?
	Tradução: por que fazer?
	Assembly
	De linguagem de alto nível para a linguagem do hardware
	Um pouco de história...
	FORTRAN I
	FORTRAN I Project
	Tradutores de LPs
	Tradutores de LPs
	Tradutores de LPs
	Tradutores de LPs
	Compilador x Interpretador
	Compilador x Interpretador
	Vantagem x Desvantagem
	Referências

Outros materiais