Buscar

aula11_LinguagemProgramacao

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

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

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ê viu 3, do total de 35 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

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

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ê viu 6, do total de 35 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

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

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ê viu 9, do total de 35 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

Prévia do material em texto

PROGRAMA DE INFORMÁTICA BÁSICA 
Linguagens de Programação 
Prof. João Dallyson 
 
Aula passada... 
 
 
 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 2 
Sumário 
• Introdução; 
• Os Tipos de Linguagem; 
• Tradutores; 
• Compiladores; 
• Interpretadores; 
• Evolução das Linguagens; 
• Introdução a Linguagem C 
 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 3 
Linguagem de Programação 
 
 
 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 4 
Segundo Marçula e Benini 
• “É um conjunto de palavras e um conjunto de 
regras gramaticais que serve para instruir o sistema 
de computação a realizar tarefas especificas e com 
isso, criar os programas.” 
Terminologia Básica 
 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 5 
Código-Fonte 
• Conjunto de instruções escritas em alto nível; 
Programador 
• Pessoa responsável por determinar a lógica das instruções que são 
escritas no código-fonte; 
Linguagem de Máquina 
• Conjunto de instruções que são compreensíveis pelo computador; 
Tradutor 
• Programa responsável por traduzir o código-fonte para linguagem de 
máquina 
Tipos de Linguagem 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 6 
Alto Nível 
• Apresentam comandos mais próximos da linguagem usual; 
• maior nível de entendimento; 
• Possui palavras chaves que devem seguir uma sintaxe e 
semântica, ou seja, gramática; 
Baixo Nível 
• Apresentam comandos mais próximos da linguagem de 
máquina; 
• baixo nível de entendimento; 
• Programas nesse tipo de linguagem são difíceis de fazer e de 
serem entendidos; 
Tradutor 
• Os programas escritos em linguagem de alto nível, 
apesar de muito convenientes para o ser humano, 
devem ser executados pela máquina; 
• A linguagem de alto nível não é interpretada pelo 
computador; 
• Assim os programas de alto nível devem passar por 
um processo de tradução que os converterá para os 
seus respectivos códigos em linguagem de 
máquina; 
• Existem dois tipos de tradutores: Compilador e 
Interpretador; 
 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 7 
Compilador 
• É um programa responsável pela tradução do 
código-fonte (em alto nível) em um programa 
executável (linguagem de máquina); 
• Geralmente um compilador é direcionado 
especificamente para uma linguagem de 
programação; 
• O código-fonte deve ser escrito dentro das normas 
estabelecidas pela linguagem; 
• Antes da tradução o compilador analisa se o código-
fonte esta de acordo com a gramática da 
linguagem; 
 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 8 
Processo de Compilação 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 9 
Código Fonte 
Código Objeto 
Código Executável 
Compilação 
Linkedição 
Linguagem de Alto Nível 
Linguagem de Máquina 
Micro código 
O compilador é responsável por fazer as analises: 
• Léxica (tokens) 
• Sintática (verifica se um conjunto de tokes está 
de acordo com a regra gramatical da linguagem) 
• Semântica (erros semânticos, ex: inteiro / float 
) 
Responsável por adicionar as bibliotecas 
necessárias ao código objeto, para que funcione 
de modo autônomo 
Diagrama sintaxe – se-então-senão 
• Exemplo: 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 10 
Se 
Expressão 
Booleana 
Senteça Senteça então senão 
Interpretação 
• Executa o código-fonte através da interpretação direta 
das instruções; 
• A interpretação é realizada por um interpretador; 
• Nesse processo de interpretação não existe o código 
objeto e nem código executável, ou seja, ambos não 
são criados; 
• Os interpretadores, assim como, os compiladores 
também são direcionados para uma única linguagem 
de programação; 
• O interpretador também realiza os procedimentos de 
análise do código-fonte antes da tradução; 
 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 11 
Interpretação 
• Então como ocorre o processo de tradução usando 
um interpretador? 
– Precisam ter a linguagem de programação instalada 
na máquina; 
– Cada instrução é analisada no momento de sua 
execução; 
– Essa característica faz com que o programa não seja 
autônomo e bem mais lento que os programas 
compilados; 
 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 12 
Compilação e Interpretação 
• Mas existe uma linguagem que é compilada e 
interpretada? 
– A linguagem Java ela é primeiramente compilada 
para gerar um conjunto de arquivos .class; 
– Esses arquivos contém uma espécie de micro código 
próprio dessa linguagem (Bytecodes); 
– Esses bytecodes são interpretados durante a 
execução da aplicação pela máquina virtual; 
 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 13 
Evolução das Linguagens de Programação 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 14 
Gerações 
Problemas solucionados em um 
ambiente no qual o humano deve 
estar em conformidade com as 
características da máquina 
Problemas solucionados em um 
ambiente no qual a máquina deve 
estar em conformidade com as 
características do humano 
2ª 3ª 4ª 1ª 
Linguagem de 1ª Geração 
• São linguagens de mais baixo nível; 
• O programador necessita escrever comando praticamente no 
mesmo nível da máquina (0s e 1s); 
• Inicialmente os programas eram codificados bit a bit, mas com o 
tempo surgiu a linguagem Assembly; 
• Surgiram os programas montadores para converter expressões 
mnemônico (Assembly) para código de máquina. 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 15 
Linguagem de Máquina 
 156C 
 166D 
 5056 
 30CE 
 C000 
Linguagem Assembly 
LD R5, Price 
LD R6, ShipCharge 
ADDI R0, R5 R6 
ST R0, TotalCost 
HLT 
Linguagem de 2ª Geração 
• Maior facilidade de programação; 
• Em vez de comandos que se aproximam da linguagem de 
máquinas foram utilizadas palavras mais próximas do nosso 
cotidiano (Se, se não, enquanto, para, etc); 
• Alguns autores não consideram o Assembly como linguagem de 
programação fazendo, assim, esta geração como o marco inicial 
das LPs; 
 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 16 
Foram muito utilizadas e serviram como base para as atuais: 
• FORTRAN: Reconhecida como a 1ª linguagem de alto nível; 
• COBOL: Primeira linguagem voltada para aplicações comerciais; 
• BASIC: Linguagem desenvolvida para o ensino de programação (anos 70); 
• ALGOL: Linguagem voltada para aplicações científicas, bastante utilizada na 
Europa, mas apresenta compiladores caros; 
Linguagem de 3ª Geração 
• Linguagens de Alto Nível de Uso Geral: 
– Pascal: Primeira linguagem de programação estruturada, criada 
para ensino de programação; 
– C: Muito utilizada para o desenvolvimento de SO e Compiladores, 
mas pode ser usada para aplicações comerciais e científicas; 
 
• Linguagem Orientadas a Objeto: 
– Smaltalk: criada para explicar os conceitos de POO; 
– C++: derivada da linguagem estruturada C. Considerada Híbrida: 
estruturada e Orientada a objeto; 
– Java: Linguagem orientada a objeto pura. 
 
• Linguagens Especializadas: 
– Lisp e Prolog: Construção de sistemas especialistas na área de 
inteligência artificial. 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 17 
Linguagem de 4ª Geração 
• Linguagens de Consulta: 
– linguagens de programação declarativas criadas para trabalhar em 
conjunto com banco de dados;– Não são consideradas linguagens de programação, pois não geram 
código de máquina; 
– Exemplo: SQL (Structured Query Language); 
• Geradores de Programa: 
– Permitem a criação de programas inteiros usando apenas 
declarações baseadas nos modelos gerados pelo projeto do 
programa; 
– Exemplo: Rational Rose e ERWin 
• Linguagens de Prototipação: 
– Facilitam a criação da interface com o usuário; 
– São conhecidas como Orientadas a Eventos; 
– Exemplos: Delphi, Visual Basic, Java, etc 
 
 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 18 
Evolução das Linguagens 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 19 
Linguagem C 
 As Origens de C 
 
 
 
 
 
 Ken Thompson e Dennis Ritchie(da esquerda pra 
direita), os criadores das linguagens Be C, 
respectivamente: 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 20 
As Origens de C 
• Nas palavras de D. Ritchie: 
 “C é ardilosa, imperfeita e um enorme sucesso. 
Enquanto que acidentes de história seguramente 
ajudaram, ela evidentemente satisfez uma necessidade 
por uma linguagem de implementação de sistema 
eficiente o bastante para descartar a linguagem 
assembler, contudo suficientemente abstrata e fluente 
para descrever algoritmos e interações em uma larga 
variedade de ambientes.” 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 21 
Por que aprender C? 
• Portabilidade 
• Próxima a linguagem de máquina 
• Código Legado 
• Popularidade 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 22 
Fonte: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html 
C - Características 
• Nível Médio 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 23 
C - Características 
• Linguagem Estruturada 
– É normalmente referenciada como linguagem 
estruturada 
• estruturas: sequência, decisão e iteração 
• C não permite que blocos ou funções sejam definidos 
dentro de outras funções 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 24 
C - Características 
• Linguagem para programadores 
– C foi criada, influenciada e testada em campo por 
programadores profissionais 
– Para o programador: 
• Poucas restrições 
• Poucas reclamações 
• Estrutura de bloco 
• Funções isoladas 
• Conjunto compacto de palavras-chave 
• Eficiência aproximada à linguagem assembly 
 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 25 
C - Características 
• Linguagem para Programação de Sistemas 
– Inicialmente C era somente usada na programação 
de componentes de Sistemas Operacionais 
• Interpretadores 
• Editores 
• Compiladores 
• Gerenciamento de BD 
• O próprio SO 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 26 
Estrutura Geral de um Programa em C 
• Funções 
– Todo programa em C consiste em uma ou mais 
funções 
• A única função que todo programa C deve conter é a 
função main() 
– Função a se chamada quando a execução começa 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 27 
Estrutura Geral de um Programa em C 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 28 
Estrutura Geral de um Programa em C 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 29 
Exemplo programa C 
 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 30 
IDE (Integrated Development Environment) 
• DevCpp 
• Code::Blocks + gcc 
• jGRASP + gcc 
• TurboC 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 31 
Links 
Tutorial CodeBlocks 
http://www.ime.usp.br/~jose/codeblocks/codebloc
ksintro.html 
 
Download CodeBlocks 
http://www.codeblocks.org/downloads 
 
Linguagem C Descomplicada 
http://programacaodescomplicada.wordpress.com/c
omplementar/ 
 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 32 
Agradecimentos 
 
 
 
• Ao Prof. Me. Geraldo Braz, DEINF/UFMA 
• Ao Prof. Me. Osvaldo Silva Sousa Junior, NTI/UFMA 
 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 33 
Referências 
• MARÇULA, M.; BENINI FILHO, P. A. Informática 
Conceitos e Aplicações. 3ª Ed. São Paulo: Érica, 2008; 
• BROOKSHEAR, J. G. Ciência da Computação: Uma visão 
abrangente. 11ª Ed. Porto Alegre, 2013. 
• MANZANO, J. A. N. G; OLIVEIRA, J. F. Algoritmos: Lógica 
para Desenvolvimento de Programação de 
Computadores. 26ª Ed. São Paulo: Érica, 2013; 
• MANZANO, J. A. N. G; OLIVEIRA, J. F. Algoritmos: 
Estudo Dirigido. 15ª Ed. São Paulo: Érica, 2013; 
 
 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 34 
Perguntas.... 
01/11/2013 Prof. João Dallyson (BCT – UFMA) Fundamentos da Computação 35

Outros materiais

Materiais recentes

Perguntas Recentes