Ferramentas Programação UDESC - Prof. Juliano Maia 1 Índice Seção Seção Seção Seção 1 2 3 4 – – – – Linguagens de Programação Interpretador Compilador / Linkeditor Ambientes de Desenvolvimento UDESC - Prof. Juliano Maia 2 Linguagens de Programação Seção 1 Linguagem de Programação LP de Alto Nível LP de Baixo Nível Interpretador / Compilador UDESC - Prof. Juliano Maia 3 Linguagem de Programação Método padronizado para expressar instruções para um computador. Conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. UDESC - Prof. Juliano Maia 4 LP de Alto Nível Linguagens de programação com um nível de abstração relativamente elevado, longe do código de máquina e mais próximo à linguagem humana. Ex.: COBOL, Pascal, Delphy, Java, C. UDESC - Prof. Juliano Maia 5 Exemplo Programa C Imprime o caracter * em tela: #include <stdio.h> //adiciona biblioteca padrão de I/O ao programa int main() { //declara/inicia função “principal” do programa puts("*"); //escreve o caratcer * em tela } //finaliza a função “principal” e o programa UDESC - Prof. Juliano Maia 6 LP de Baixo Nível Linguagem de programação mais próxima ao código da máquina e, portanto, menos abstrata. Possui forte relação entre as operações implementadas pela linguagem e as operações implementadas pelo hardware. Ex.: Assembly. UDESC - Prof. Juliano Maia 7 Exemplo Programa Assembly Imprime o caracter * em tela: .model small ;modelo de memória .stack ;espaço de memória para instruções do programa na pilha .code ;as linhas seguintes são instruções do programa mov ah,2h ;move o valor 2h p/ o registrador ah mov dl,2ah ;move o valor 2ah p/ o registrador dl (ASCII do caractere *) int 21h ;interrupção 21h mov ah,4ch ;função 4ch, sai para o sistema operacional int 21h ;interrupção 21h end ;finaliza o programa UDESC - Prof. Juliano Maia 8 Interpretador / Compilador Programas (utilitários) que processam linguagens de alto nível, traduzindo-as em linguagens de baixo nível. UDESC - Prof. Juliano Maia 9 Interpretador Seção 2 Interpretador Fluxo / Iteração Interpretação Vantagens / Desvantagens UDESC - Prof. Juliano Maia 10 Interpretador Um interpretador, no momento da execução do programa, traduz cada instrução do programa e a executa em seguida. UDESC - Prof. Juliano Maia 11 Fluxo / Iteração Interpretação Programa Fonte Interpretador Interpretador Saída Dados UDESC - Prof. Juliano Maia 12 Vantagens / Desvantagens Vantagem: Permite implementação de sub-processos / rotinas dinâmicas, ou seja, que podem mudar durante a execução do programa. Desvantagem:Tempo gasto na tradução das instruções de um programa toda vez que este for executado. UDESC - Prof. Juliano Maia 13 Compilador / Linkeditor Seção 3 Compilador Fluxo / Iteração Compilação Vantagens / Desvantagens Linkeditor Processo Compilação - Linkedição Bibliotecas UDESC - Prof. Juliano Maia 14 Compilador Um compilador lê um programa e o traduz completamente antes que o programa seja executado. Neste caso, o programa escrito em linguagem de alto nível é chamado de código fonte, e o programa traduzido é chamado de código objeto. Uma vez que um programa é compilado, você pode executá-lo repetidamente, sem que precise de nova tradução. UDESC - Prof. Juliano Maia 15 Fluxo / Iteração Compilação Código Fonte Dados Compilador Compilador Arquivo Executável UDESC - Prof. Juliano Maia Saída 16 Vantagens / Desvantagens Vantagem: A execução é mais rápida, pois o programa executado já se encontra totalmente traduzido. Desvantagem: Programa totalmente estático – não é possível a implementação de sub-processos / rotinas dinâmicas. UDESC - Prof. Juliano Maia 17 Linkeditor Programa (utilitário) responsável por gerar, a partir de um ou mais códigos objeto, um único programa executável. Suas funções básicas são resolver todas as referências simbólicas existentes entre os módulos e reservar memória para a execução do programa. UDESC - Prof. Juliano Maia 18 Processo Compilação - Linkedição Programa ProgramaFonte Fonte Programa ProgramaFonte Fonte Compilador Compilador Compilador Compilador Programa ProgramaObjeto Objeto Programa ProgramaObjeto Objeto Ligador Ligadorou ou Linkeditor Linkeditor Biblioteca Biblioteca Biblioteca Biblioteca Programa ProgramaExecutável Executável UDESC - Prof. Juliano Maia 19 Bibliotecas Bibliotecas são conjuntos de sub-rotinas (programas ou funções) que podem ser utilizadas em qualquer programa. A biblioteca stdio.h (Standart Input and Output) da linguagem C, por exemplo, é a biblioteca que contem todas as funcionalidade de leitura / escrita (entrada e saída de dados). UDESC - Prof. Juliano Maia 20 Ambientes de Desenvolvimento Seção 4 Ambiente Integrado (IDE) O IDE Dev-C++ Depurador de Programa UDESC - Prof. Juliano Maia 21 IDE IDE, Integrated Development Environment ou Ambiente de Desenvolvimento Integrado, é um utilitário que reúne características e ferramentas de apoio ao desenvolvimento de software com o objetivo de agilizar este processo. UDESC - Prof. Juliano Maia 22 Exemplo IDE Dev-C++ UDESC - Prof. Juliano Maia 23 Depurador de Programa O depurador, ou debuger, é um utilitário que permite ao programador controlar toda a execução de um programa a fim de detectar erros. UDESC - Prof. Juliano Maia 24 Funcionalidades Acompanhar a instrução de um programa instrução por instrução. Alterar e visualizar o conteúdo de variáveis em tempo de execução. Implementar “breakpoints” – pontos de parada na execução do programa. UDESC - Prof. Juliano Maia 25 Depurando um Programa ... UDESC - Prof. Juliano Maia 26 Informações úteis Baixe o IDE Dev-c++ (free) em: www.superdownloads.com.br Em plataforma Linux, não há um IDE similar. Neste caso, usar: Editor de texto Kedit Utilitário console, para compilação e execução: gcc –o <arq exe> <código fonte> ./ <arq exe> UDESC - Prof. Juliano Maia 27