Informática Numaboa - Tutoriais e Programação
Linguagem C - Introdução
Sab 22 Nov 2008 23:15 |
- Detalhes
- Categoria: Linguagem C
- Atualização: Domingo, 23 Novembro 2008 00:49
- Autor: vovó Vicki
- Acessos: 67252
Na ciranda das linguagens de programação a linguagem C permanece firme e forte. Não é necessariamente uma linguagem orientada a objeto, mas você pode pode fazer uma programação orientada a objeto se assim o desejar. Não é uma linguagem funcional, mas você pode programar funcionalmente se quiser. Como dá para perceber, a C não impõe qualquer ponto de vista. Além disto, possui todas as características de uma linguagem de programação de uso geral, como recursividade, procedimentos como tipos de dados de primeira classe e muito mais.
Muitos acham que a C não tem a simplicidade da Java ou a sofisticação da C++. É verdade. C é uma linguagem simples, sem muitas frescuras. Mas é justamente esta simplicidade que faz com que se possa controlar o que os programas realizam sem ter que se preocupar com qualquer característica escondida. O compilador não fará nada a mais do que aquilo que tenha determinado. A linguagem permanece transparente, mesmo quando se implementa características mais sofisticadas, algo do tipo da "garbage collection" típica da Java.
As linguagens surgem e desaparecem, mas a C permanece. Foi o coração do desenvolvimento do sistema operacional UNIX nos anos 70, foi o centro da revolução dos microcomputadores nos anos 80 e, quando surgiram a C++, Delphi, Java e muitas outras, a linguagem C continuou fiel à sua própria natureza.
Minha experiência pessoal talvez sirva de exemplo: sabendo C, aprender qualquer outra linguagem fica fácil, ou seja, quando se domina uma língua, aprender um dialeto é bico. Mesmo se você não tiver a mínima noção de como programar, ainda assim vale a pena seguir este tutorial. Criança também aprende a falar
A organização de programas C
Um programa C é composto por funções, isto é, porções menores de código que realizam determinadas tarefas, e por dados, ou seja, variáveis ou tabelas que são inicializadas antes do início do programa. Existe uma função especial denominada main, onde a execução do programa se inicia. As funções são organizadas em módulos agrupados nos arquivos fonte. Em C, a organização do código em arquivos tem um significado semântico. O arquivo fonte principal, passado como argumento para o compilador, define uma unidade de compilação.
Uma unidade pode importar definições usando a diretiva #include ou apenas declarando algum identificador como externo.
A C permite um modelo de compilação separado, isto é, você pode dividir o programa em várias unidades independentes que são compiladas separadamente e depois são concatenadas com o link editor para construir o programa final. Normalmente, cada módulo é escrito num arquivo texto separado que contém funções ou declarações de dados. As interfaces entre os módulos são escritas em "header files" (arquivos de cabeçalho) que descrevem tipos ou funções visíveis para vários módulos do programa. Estes arquivos possuem a extensão ".h" e são de dois tipos: privados, específicos para aplicação que está sendo elaborada, e para o sistema.
Toda função possui uma lista de parâmetros, um corpo e, eventualmente, um valor de retorno. O corpo pode conter declarações de variáveis locais, ou seja, variáveis que são ativadas quando a execução alcançar o corpo da função.
Exemplo de programa
Ficando na mesmice de sempre, o primeiro exemplo se refere ao código de um programa que colocará na tela "Informática NumaBoa".
- Usando a característica do compilador chamada de "pre-processamento", incluímos textualmente um arquivo completo de fonte C com a diretiva "#include". Neste exemplo incluímos o arquivo cabeçalho "stdio.h", que faz parte das inclusões padrão do compilador.
- Definimos uma função chamada "main" que retorna o inteiro 0 (zero) e que não recebe argumentos (void).
- O corpo da função é composto por declarações delimitadas pelas chaves { }
- Chamamos a função padrão "printf" que formata seus argumentos numa string de caracteres que é mostrada na tela. Uma chamada de função em C é escrita da seguinte maneira: nome-da-função( lista-de-argumentos ). Neste exemplo, o nome da função é "printf" e sua lista de argumentos é a string "Informática NumaBoa\n". Strings são delimitadas por aspas duplas. Em C, são representadas como um array de caracteres terminados por um byte sero.
- A declaração "return" indica que o controle deve ser devolvido à função chamadora. Opcionalmente é possível especificar uma valor de retorno que, neste caso, é 0.
- A chave terminadora "}" indica o fim da área da função.
Programas em C são definidos em arquivos texto que normalmente possuem a extensão ".c".
Proposta de trabalho
Como em todos os outros tutoriais que escrevi, a proposta é aprender com exemplos práticos - e este tutorial não poderia ser diferente. Escolhi como ferramenta de trabalho um software gratuito, ao alcance de todos e de excelente qualidade.
Há muito tempo atrás esbarrei no lcc-win32 e, para minha surpresa, esta excelente plataforma de desenvolvimento continua sendo atualizada. Os autores do lcc são Chris Fraser e Dave Hanson. Jacob Navia escreveu o sistema de compilação lcc-win32 a partir do compilador lcc. O lcc-win32 não é um software de domínio público ou shareware, tampouco é protegido por copyleft, mas é livre para fins de instrução e para pesquisa pessoal.
Você encontra o software para download em www.cs.virginia.edu/~lcc-win32 e na Q software solutions. Faça o download nos endereços indicados para garantir que seja a versão mais atualizada ou baixe o lcc-win32 na seção de downloads da Aldeia (está em Informática/Programação).
O pacote contém instalador e desinstalador, além de alguns aplicativos interessantes. O mais importante deles é o Wedit, que será a ferramenta principal deste tutorial. Tenho certeza de que você ficará admirado com os resultados que pode obter sem muito esforço e em tempo recorde!