Linguagem de ção I Curso de Sistemas de Informação Karla Donato Fook karladf@ifmaedubr DESU / DAI 2015 O que é um programa de computador? 2 1
de computador E_1 E_n Resultado Entrada(s) Processamento Saída(s) O que um programa de computador pode fazer? 3 Um tanque no formato cilíndrico é utilizado no armazenamento de combustível de uma transportadora de produtos alimentícios As medidas desse tanque são as seguintes: raio da base medindo 4 metros e altura igual a 12 metros Qual é o volume do tanque? 4 2
Sabendo que o volume de um cilindro é dado por V = π * r² * h, onde r = raio da base do cilindro e h = altura do cilindro, pode-se desenvolver um programa em C que resolva problemas do tipo mencionado de forma genérica, ou seja, para qualquer raio da base e altura 5 Como fazer? 1 O que foi pedido? Identificar a saída do programa 2 Quais são as entradas? O que o usuário deve informar ao programa? 3 O programa calcula ou fornece algum valor? Qual? 6 3
No problema 1 O que foi pedido? Identificar a saída do programa 2 Quais são as entradas? O que o usuário deve informar ao programa? 3 O programa calcula ou fornece algum valor? Qual? V = π * r² * h saída escreva printf pi = 31416 entrada leia scanf 7 Ciclo da ção Algoritmo Linguagem de ção Qual é o volume de um tanque cilíndrico, sabendo-se os valores do raio da base e a altura? Tradutor 4
Ciclo da ção Algoritmo Linguagem de ção Tradutor Ciclo da ção Algoritmo Linguagem de ção Tradutor 5
Ciclo da ção Algoritmo Linguagem de ção Tradutor Ciclo da ção Algoritmo Linguagem de ção Tradutor volume_tanquec volume_tanqueexe volume_tanqueo Código Fonte Executável Código Objeto 6
#include <stdioh> int main() { float volume, pi=31416, raio, altura; printf("*** para calculo do volume do cilindro *** "); printf("\n\n\tdigite as informacoes solicitadas "); printf("\nraio: "); scanf("%f",&raio); printf("\naltura: "); scanf("%f",&altura); } volume = pi * (raio * raio) * altura; printf("\n\nvolume do cilindro: %f \n", volume); return 0; 13 Interpretadores e Compiladores Interpretadores Fazem a interpretação de cada instrução do programafonte executando-a dentro de um ambiente de programação Compiladores Fazem a tradução de todas as instruções do programafonte gerando um programa executável Estes programas executáveis (*exe) podem ser executados fora dos ambientes de programação 7
Ambiente de Desenvolvimento Code::blocks Ambiente de Desenvolvimento de Típico em C Editor Pré-Processador Compilador Editor de Ligação Cortesia: Prof Raimundo Osvaldo / Profa Evaldinolia Disco Disco Disco Disco Fase 1: O programador cria um programa no editor e armazena no disco Fase 2: O programa préprocessador processa o código Este programa obedece às diretivas do pré-processador Fase 3: O compilador cria um código objeto e o armazena no disco Fase 4: O editor de ligação liga o código objeto às bibliotecas Cria um arquivo executável e o armazena no disco 8
Ambiente de Desenvolvimento de Típico em C Carregador Memória Principal Disco Fase 5: O carregador coloca o programa na memória CPU Memória Principal Fase 6: A CPU recebe cada instrução e a executa, possivelmente, executa novos valores de dados enquanto o programa é executado Cortesia: Prof Raimundo Osvaldo / Profa Evaldinolia Transformação no texto: eliminação de espaços desnecessários, substituição de macros, inclusão de outros textos indicados pelas diretivas de compilação C O Processo de Compilação Pré-Processamento Compilação Montagem Códigos- Fontes Código escrito em linguagem de programação C Unidade de Compilação Análise sintática e semântica da unidade de compilação Geração do Código Assembler 1AFF2 3B411 Código Assembler Código gerado na linguagem de máquina da arquitetura alvo Porém não pode ser executado diretamente pelo processador Geração do código objeto Os comandos são transformados em linguagem de máquina 10010 01011 Código Objeto Código-Objeto (Biblioteca) Combinação de todos os códigos objetos que compõem o programa Ligação Código Executável Código gerado na linguagem de máquina da arquitetura alvo 9
Ambiente de Desenvolvimento de Típico em C Extensões Padronizadas dos Arquivos Extensão Descrição c s-fonte, contendo código a ser compilado h s Declarações de programas-fontes que podem ser usadas por outras unidades de compilação (arquivos de cabeçalho) s assembler Em geral são removidos pelo compilador ao término da compilação o s objetos, gerados na terceira etapa de compilação Cortesia: Prof Raimundo Osvaldo / Profa Evaldinolia Ambiente de Desenvolvimento Integrado (IDE) Editor de Texto + Compilador + Ferramenta de Depuração Ambientes baseados em janelas DevC++ Code::Blocks Cortesia: Prof Raimundo Osvaldo / Profa Evaldinolia 10
Code::Blocks Cortesia: Prof Raimundo Osvaldo / Profa Evaldinolia 11