Practical C Programming, 3rd Edition by Steve Oualline

How C Works

C is designed as a bridge between the programmer and the raw computer. A idéia é deixar o programador organizar um programa de uma forma que ele possa facilmente entender. O compilador então traduz a linguagem em algo que a máquina pode usar.

Programas de computador consistem em duas partes principais: dados e instruções. O computador impõe pouca ou nenhuma organização a estas duas partes. Afinal, os computadores são projetados para ser o mais geral possível. O programador deve impor sua organização no computador, e não o contrário.

Os dados em um computador são armazenados como uma série de bytes. C organiza esses bytes em dados úteis. As declarações de dados são usadas pelo programador para descrever as informações com as quais ele está trabalhando. Por exemplo:

int total; /* Total number accounts */

diz ao C que queremos usar uma secção da memória do computador para armazenar um número inteiro chamado total. Deixamos o compilador decidir que bytes particulares de memória usar; essa decisão é um pequeno detalhe de contabilidade com o qual não queremos nos preocupar.

A nossa variável total é uma variável simples. Ela pode conter apenas um número inteiro e descrever apenas um total. Uma série de inteiros pode ser organizada em um array da seguinte forma:

int balance; /* Balance (in cents) for all 100 accounts */

Again, C irá lidar com os detalhes de impor essa organização na memória do computador. Finalmente, existem tipos de dados mais complexos. Por exemplo, um retângulo pode ter uma largura, uma altura, uma cor, e um padrão de preenchimento. C nos permite organizar esses quatro itens em um grupo chamado estrutura.

struct rectangle { int width; /* Width of rectangle in pixels */ int height; /* Height of rectangle in pixels */ color_type color; /* Color of the rectangle */ fill_type fill; /* Fill pattern */};

O ponto é que as estruturas permitem ao programador organizar os dados de acordo com suas necessidades, não importa o quão simples ou complexo esses dados sejam. A tradução desta descrição de dados em algo que o computador pode usar é o trabalho do compilador, não do programador.

Mas os dados são apenas uma parte de um programa. Também precisamos de instruções. No que diz respeito ao computador, ele não sabe nada sobre o layout das instruções. Ele sabe o que está fazendo para a instrução atual e onde obter a próxima, mas nada mais.

C é uma linguagem de alto nível. Ele nos permite escrever uma instrução de alto nível como:

area = (base * height) / 2.0; /* Compute area of triangle */

O compilador irá traduzir esta instrução em uma série de instruções criptográficas de baixo nível. Este tipo de declaração é chamado de declaração de atribuição. Ela é usada para calcular e armazenar o valor de uma expressão aritmética.

Também podemos usar instruções de controle para controlar a ordem de processamento. Declarações como as instruções if e switch permitem que o computador tome decisões simples. As instruções podem ser repetidas vezes sem conta usando instruções em loop como while e para.

Grupos de instruções podem ser embrulhados para formar funções. Assim, só temos que escrever uma função de propósito geral para desenhar um retângulo uma vez, e então podemos reutilizá-lo sempre que quisermos desenhar um novo retângulo.

C fornece ao programa um rico conjunto de funções padrão que executam funções comuns como busca, ordenação, entrada e saída.

Um conjunto de funções relacionadas pode ser agrupado em um único arquivo fonte. Muitos ficheiros-fonte podem ser compilados e ligados entre si para formar um programa.

Um dos principais objectivos da linguagem C é organizar as instruções em componentes reutilizáveis. Afinal, você pode escrever programas muito mais rápido se você puder “emprestar” a maioria do seu código de algum outro lugar. Grupos de funções reutilizáveis podem ser combinados em uma biblioteca. Desta forma, quando você precisa, por exemplo, de uma rotina de ordenação, você pode pegar a função padrão qsort da biblioteca e ligá-la ao seu programa.

As declarações de dados, estruturas e instruções de controle, e outros elementos da linguagem C, não são para o benefício do computador. O computador não pode dizer a diferença entre um milhão de bytes aleatórios e um programa real. Todos os elementos da linguagem C são concebidos para permitir ao programador expressar e organizar claramente as suas ideias de uma forma adaptada a ele, não ao computador.

Organização é a chave para escrever bons programas. Por exemplo, neste livro você sabe que a Tabela de Conteúdos está na frente e o Índice está no verso. Nós usamos esta estrutura porque os livros são organizados dessa forma. A organização facilita a utilização deste livro.

A linguagem C permite-lhe organizar os seus programas usando uma sintaxe simples mas poderosa. Este livro vai além da sintaxe C e ensina-lhe regras de estilo que lhe permitem fazer programas altamente legíveis e fiáveis. Ao combinar uma sintaxe poderosa com um bom estilo de programação, você pode criar programas poderosos que realizam operações complexas e maravilhosas, mas que também são organizados de uma forma que facilita a sua compreensão quando o tempo de mudança chega.

Leave a Reply