O QUE É UM PROGRAMA? Para executar uma dada tarefa é geralmente necessário entender o sistema onde ela é realizada. Por exemplo, para fazer um bolo temos um sistema composto por: Ingredientes Cozinheiro Utensílios Receita Bolo 1º-Ingredientes 2º- Receita 3º- Utensílios 4º- Cozinheiro 5º- Consumidores do bolo 1
Fazendo o equivalente no caso de um sistema de processamento de dados temos: Ingredientes Receita Utensílios Cozinheiro Consumidores do bolo Dados de entrada Programa Computador Sistema de exploração Utilizadores Tal como numa receita, para escrever um programa necessitamos de uma linguagem e com ela definir precisamente os dados de entrada (ingredientes) e descrever cuidadosamente todas as acções necessárias para processar esses dados em função das necessidades dos utilizadores, definindo também a sequência pela qual devem ser executadas. 2
Podemos então considerar que para desenvolver um programa precisamos definir que dados vão ser processados por esse programa. Os dados são representações em formato digital de informações do mundo real que podem ser simples como um nome ou um salário ou estruturados como uma ficha de aluno contendo vários campos por exemplo: nome, morada, telefone... Por outro lado um programa é constituído também por um conjunto de acções que devem ser executadas sobre os dados obedecendo estas a uma determinada sequência. Um algoritmo define a sequência e o conjunto de acções que devem ser executadas sobre os dados, com o objectivo de gerar o resultado pretendido. PROGRAMA = ESTRUTURAS DE DADOS & ALGORITMO Para ser executado por um computador o programa tem que estar escrito numa linguagem que o computador seja capaz de processar - Linguagem de Programação - 3
Uma Linguagem de Programação é constituída por: o léxico, isto é, os vocábulos que estão disponíveis para escrita dos programas; a sintaxe ou seja, o conjunto de regras definindo como esses vocábulos se devem compôr para formar as frases válidas na linguagem e a semântica que estabelece precisamente o significado das palavras e frases. Exemplos de Linguagem de Programação: 1954-57 FORTRAN John Backus, IBM 58-60 ALGOL 60 Peter Naur 69 Pascal Niklaus Wirth, ETH Zurique 74 Pascal revisto 78 C Denis Ritchie, Bell Lab., ATT 79 Ada Jean Ichbiah 83 Pascal normalização ISO 86 C++ Bjarn Stroustrup, Bell Lab., ATT 88 C normalização ANSI, ISO 2000 C# Anders Heljsberg e Scott Wiltamuth 4
As Linguagem de Programação podem ser classificadas em: Alto nível - cujo vocabulário e construções sintácticas procuram estar próximas da linguagem natural. Baixo nível - cujas instruções são instruções elementares de máquina, que podem aceder componentes do computador, alterando directamente os valores armazenados nos mesmos A linguagem de programação C# pode ser classificada de alto nível pois possui características, vocabulário e construções sintácticas das linguagens de programação de alto nível. A linguagem C# baseia-se na linguagem C++ que por sua vez foi criada a partir da linguagem C. 5
A linguagem C foi criada por Dennis Ritchie, que, em 1972, juntamente com Ken Thompson, fez a primeira implementação de C, utilizando o sistema Operacional Unix. Com a proliferação dos microcomputadores, surgiram várias implementações da linguagem C, até que, em 1988, foi estabelecido o padrão ANSI ( American Nacional Standards Institute ), vigente até hoje. A linguagem C ++ foi descrita por Bjarne Stroustrup, como extensão da linguagem C para incorporar facilidades relativas à programação orientada a objetos e à verificação e conversão de tipos de argumentos de função. A linguagem C ++ Tornou-se disponível de modo geral em 1985. 6
A linguagem C# é uma linguagem de programação que foi criada para programar no ambiente.net da Microsoft e cujo design foi realizado para dar resposta aos aspectos positivos e negativos de outras liguagens como C++ e Java. A linguagem C# facilita a escrita de aplicações para a internet sendo também adequada ao desenvolvimento de aplicações tradicionais. Um programa em C#, é constituído, na sua forma mais simples, por uma função de nome Main. De um modo geral, um programa em C# possui (muitas) outras funções para além da Main, cuja estrutura lhes é, em tudo, semelhante à que se ilustra seguidamente: Cabeçalho class Exemplo Nome da Receita {static voidmain() Zona de comandos Ingredientes Declarações {int x, y; float z; outros comandos x = 5; y = 10; z = (x+y)/2; Acções System.Console.WriteLine ( O resultado é {0}.,z); }} 7
Para que um computador possa executar um programa escrito numa linguagem de programação de alto nível é necessário traduzir os comandos que formam esse programa (programa fonte) para instruções na linguagem máquina. Essa tradução pode ser feita por: por um compilador que é um outro tipo programa que permite traduzir o programa fonte para o formato directamente executável no sistema operativo, armazenando esse resultado (código objecto) num ficheiro. um interpretador, isto é, um programa que traduz para linguagem máquina um comando de cada vez e uma vez traduzido esse comando é executado. O interpretador trata todos os comandos até que o programa termine. A fim de se poder executar um programa escrito numa linguagem compilável devem descrever-se os seguintes passos, partindo do ponto em que o programa estaria já concebido e, por exemplo, escrito em papel acção descrição breve nome do ficheiro produzido? Edição produz um texto numa fonte linguagem como C#? Compilação traduz a fonte para um ficheiro objecto ficheiro objecto (ilegível)? Ligação liga diversos ficheiros executável objecto e produz um ficheiro executável? Execução invocação do programa para execução (usa a versão executável) formato do ficheiro produzido texto puro ou ASCII binário binário 8
O processo que conduz da versão em papel à versão executável, é resumidamente descrito pelo esquema da figura seguinte: texto class Exemplo main() {static voidmain() { int x, y; {int float z; x, y; float z; x = 5; y = 10; z = (x+y)/2; z = (x+y)/2; System.Console.WriteLine ( O} resultado é{0}.,z); }} objecto 0100110101000110 010100 01 010 100110 101101010 111010101 10110101010101011 0010 1 1010 10101011010011 1 101010101011 1010101011 0101 0100110101000110 010100 01 010 100110 101101010 0100110101000110 111010101 010100 1011010101010101100 010 100110 1 101101010 1010 0100110101000110 111010101 10101011010011 1 010100 1011010101010101100 101010101011 010 100110 11010101011 101101010 0101 111010101 10101011010011 1 1011010101010101100 101010101011 10 11010101011 0101 10101011010011 1 101010101011 1010101011 0101 0100110101000110 010100 01 010 100110 101101010 111010101 101101010101010110010 1 1010 10101011010011 1 101010101011 1010101011 0101 Para se executar um programa escrito numa linguagem interpretável e considerando que o programa está já concebido e escrito em papel acção descrição breve nome do ficheiro produzido? Edição produz um texto numa fonte linguagem como Basic? Execução Lê o ficheiro comando a comando. Para cada comando faz a interpretação para linguagem máquina e executa as instruções correspondentes formato do ficheiro produzido texto puro ou ASCII 9
Conceitos a saber: Programa de computador é um conjunto de instruções expressas numa linguagem de programação especificando o comportamento do computador durante a execução de um algoritmo pré-concebido. Algoritmo - estratégia para a resolução de um problema ou tipo de problemas (analogia com receita de culinária) Linguagem de programação é um sistema formal de regras de descrição, com sintaxe e semântica bem definidas, capaz de representar um programa de computador. Compilador - programa para traduzir programas fonte em código objecto (linguagem a nível de máquina) Interpretador - programa para traduzir e executar programas fonte. 10