Baixe o app para aproveitar ainda mais
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
Compartilhar