SISTEMAS DE INFORMAÇÃO Disciplina: Introdução à Computação Professora: Dina Françoile – [email protected] Aula 3: Linguagens de Programação 1 Linguagens de Programação Linguagem de Programação É um método padronizado para expressar instruções para um computador. Permite ao programador desenvolver os conjuntos de instruções que constituem o programa de computador 2 Linguagens de Programação Linguagem de Máquina Uma linguagem de programação em que as instruções são expressas no código binário do computador A linguagem de máquina é considerada uma linguagem de baixo nível porque não existe esquema de codificação de programa menos sofisticado do que este que usa símbolos binários (zeros e uns) Sendo ainda a única linguagem capaz de instruir diretamente a Unidade Central de Processamento (UCP ou CPU). Desta forma, toda instrução de programa em outra linguagem deve ser traduzida para a linguagem de máquina antes da sua execução 3 Linguagens de Programação Linguagem de Baixo Nível Uma linguagem em que cada declaração corresponde a uma instrução de máquina. Linguagem de Alto Nível As linguagens de alto nível utilizam ordens, chamadas instruções, que utilizam formulações ou expressões aritméticas. As instruções individuais em linguagens de alto nível são, na verdade, macroinstruções, ou seja, cada instrução individual gera várias instruções de máquina quando traduzidas em linguagem de máquina 4 Linguagens de Programação Tradução As linguagens de programação podem converter ou traduzir o código-fonte ou programa-fonte, descrito em linguagens de alto nível, em código de máquina; Esse processo denomina-se tradução e os três métodos gerais são: Compilação; interpretação pura; sistemas híbridos . 5 Linguagens de Programação Compilação Primeiramente, traduz todo o texto do programa (código-fonte ou programa-fonte), para só depois executar o programa então se diz que o programa foi compilado e que o mecanismo utilizado pra a tradução é um compilador. A versão compilada do programa tipicamente é armazenada, de forma que o programa pode ser executado um número indefinido de vezes, diretamente no computador, sem que seja necessária nova compilação. Isso é chamado de implementação compilada. Esse método tem a vantagem de uma execução de programa muito rápida, assim que o processo de tradução for concluído. 6 Processo de Compilação Programa-fonte Analisador Léxico Unidades Léxicas Analisador Sintático Árvores de Análise Tabela de Símbolos Gerador de Código Intermediário e Analisador Semântico Código Intermediário Gerador de Código Final Linguagem de Máquina Dados de Entrada Computador Resultados 7 Processo de Compilação Programa-fonte Programa-fonte: Texto do programa escrito em uma linguagem de programação; instruções descritas através das sintaxes das linguagens de programação. 8 Processo de Compilação Analisador Léxico Analisador léxico: reúne os caracteres do programa-fonte em unidades léxicas e (identificadores, as palavras especiais, os operadores e os símbolos de pontuação etc.) atribui códigos internos às unidades de acordo com sua estrutura. 9 Processo de Compilação Analisador Sintático Analisador Sintático: verifica se o programa está sintaticamente correto pegando as unidades do analisador léxico. 10 Processo de Compilação Gerador de Código Intermediário e Analisador Semântico O gerador de código intermediário produz um programa em uma linguagem diferente, no nível intermediário entre o programa-fonte e a saída final do compilador; O analisador semântico faz parte integralmente do gerador de código intermediário e verifica se há erros referente a semântica da sintaxe. 11 Processo de Compilação Gerador de Código Final Gerador de Código Final: código converte a versão do código intermediário do programa para um programa em linguagem de máquina equivalente. 12 Processo de Compilação Tabela de Símbolos Tabela de Símbolos: serve como um banco de dados para o processo de compilação. Seu principal conteúdo são informações sobre tipos e atributos de cada nome definido pelo usuário no programa 13 Processo de Compilação Programa-fonte Analisador Léxico Unidades Léxicas Analisador Sintático Árvores de Análise Tabela de Símbolos Gerador de Código Intermediário e Analisador Semântico Código Intermediário Gerador de Código Final Linguagem de Máquina Dados de Entrada Computador Resultados 14 Linguagens de Programação Interpretação Pura ou Interpretação Se o texto do programa (código-fonte ou programa-fonte) é traduzido à medida que vai sendo executado, num processo de tradução de trechos seguidos de sua execução imediata, então diz-se que o programa foi interpretado e que o mecanismo utilizado para a tradução é um interpretador. Essa técnica é chamada de interpretação pura ou, simplesmente interpretação. Programas interpretados são geralmente mais lentos que os programas compilados, a principal causa dessa lentidão é a decodificação das instruções de linguagem de alto nível, bem mais complexas do que as instruções em linguagem de máquina. 15 Interpretação Interpretação Pura ou Interpretação Programa-fonte Dados de entrada Interpretador Resultados 16 Interpretação Programa-fonte Programa-fonte: Texto do programa escrito em uma linguagem de programação; instruções descritas através das sintaxes das linguagens de programação. 17 Interpretação Interpretador Interpretador: tradutor acionado exatamente no momento de execução do programa. Tradução da LP de alto nível durante o tempo de execução. 18 Interpretação Programa-fonte Dados de entrada Interpretador Resultados 19 Linguagens de Programação Sistemas de Implementação Híbridos Alguns sistemas de implementação de linguagem são um meio-termo entre o compilador e o interpretador. Eles traduzem programas em linguagem de alto nível para uma linguagem intermediária projetada para permitir fácil interpretação 20 Sistemas Híbridos Programa-fonte Analisador Léxico Unidades Léxicas Analisador Sintático Árvores de Análise Gerador de Código Intermediário Código Intermediário Dados de entrada Interpretador Resultados 21 Sistemas Híbridos Programa-fonte Programa-fonte: Texto do programa escrito em uma linguagem de programação; instruções descritas através das sintaxes das linguagens de programação. 22 Sistemas Híbridos Analisador Léxico Analisador léxico: reúne os caracteres do programa-fonte em unidades léxicas. 23 Sistemas Híbridos Analisador Sintático Analisador Sintático: verifica se o programa está sintaticamente correto pegando as unidades do analisador léxico. 24 Sistemas Híbridos Gerador de Código Intermediário o gerador de código intermediário produz um programa em uma linguagem diferente, no nível intermediário entre o programa-fonte e a linguagem de máquina. 25 Sistemas Híbridos Interpretador Interpretador: a tradução do código intermediário gerado será acionada exatamente no momento de execução do programa. Efetiva tradução para linguagem de máquina somente em tempo de execução. 26 Sistemas Híbridos Programa-fonte Analisador Léxico Unidades Léxicas Analisador Sintático Árvores de Análise Gerador de Código Intermediário Código Intermediário Dados de entrada Interpretador Resultados 27 Bibliografia SEBESTA, Robert W. Conceitos de Linguagens de Programação 28 SISTEMAS DE INFORMAÇÃO Disciplina: Introdução à Computação Professora: Dina Françoile – [email protected] Aula 4: Gerenciamento de Dados 29 Gerenciamento de Dados Banco de Dados Coleção de dados e informações organizados de modo que possam ser acessados e utilizados em muitas aplicações diferentes Sistema Gerenciador de Banco de Dados (SGBD) Funciona como interface de software entre usuário e os bancos de dados; É um conjunto de programas de computador que controla a criação, manutenção de uso dos bancos de dados por uma organização e seus usuários finais. 30 Gerenciamento de Dados Os quatro maiores usos de um SGBD Desenvolvimento do Banco de Dados Consulta ao Banco de Dados Manutenção dos Bancos de Dados Desenvolvimento de Aplicações Administração de Banco de Dados controle e níveis de acesso 31 Gerenciamento de Dados Administração de Banco de Dados Os bancos de dados e os sistemas de gerenciamento de bancos de dados são instalados e coordenados por uma pessoa ou um grupo que executa uma função chamada administração de banco de dados; Controle de acesso: tem como função permitir ou não o acesso ao sistema; Níveis de acesso: determinam onde e como o usuário pode acessar informações específicas 32 Bibliografia O´BRIEN, James A. Sistemas de Informação e as decisões gerenciais na era da Internet. ed. Saraiva. 2ª Edição - 2004 STAIR, Ralph. Princípios de sistemas de informação: uma abordagem gerencial. Rio de Janeiro. Editora: LTC. Tradução da 6ª Edição, 2006 33