Linguagem C Básico Aula01: Introdução

GDB Online
Exemplo de programa em C na plataforma GDB Online

Introdução

    Começamos hoje nosso primeiro curso de uma linguagem de programação de interesse comercial e muito importante para os estudantes de Sistemas Embarcados. Na primeira fase desse curso migraremos os conhecimentos obtidos no curso de algoritmos e lógica de programação para a linguagem C.

    Se você está chegando nesse site pela primeira vez e não possui nenhum conhecimento de lógica de programação, sugiro revisar o curso anterior antes de seguir adiante.

    Ressaltamos a importância da Linguagem C para Embarcados porque ela é um linguagem de alto nível que permite "falar" diretamente com o hardware sem a complexidade de uma linguagem de baixo nível como o Assembly.

Como é feito um programa em C

    No curso de Portugol vimos que os nossos programas eram digitados em um Editor de Texto da própria IDE do Portugol Studio e era nessa IDE que o programa rodava. Quando salvávamos o programa ele gerava um arquivo de texto com extensão .POR, correto?

    Agora na linguagem C também escreveremos o nosso código com um editor de texto que pode ser até o Bloco de Notas do Windows, pois precisamos que ele gere um arquivo de puro texto, sem formatações. Também podemos usar  uma IDE como o Visual Studio Code, com a vantagem de termos mais recursos para codificação.

   No entanto, diferente do Portugol que era uma linguagem interpretada, isto é, que precisava de um interpretador (IDE/navegador) para interpretar o nosso código antes de passar as instruções para o Sistema Operacional, a Linguagem C é uma linguagem compilada.

    Lembrando que linguagens compiladas são aquelas em que o nosso código escrito passará por uma etapa de compilação onde é gerado um programa em linguagem de máquina que dispensa o uso de um interpretador e "conversa" diretamente com o Sistema Operacional.

    Podemos descrever o processo de criação de um programa em C dessa forma:

Arquivo Texto com Código em C + Compilação = Arquivo Executável pelo Sistema Operacional

Diferentes versões de C

    Uma questão que gera muitas dúvidas são as diferentes versões do C. A linguagem C original foi criada como uma linguagem de paradigma de programação estruturada nos laboratórios da AT&T nos anos 70 para criação de Sistema Operacional Unix em substituição ao Assembly. 

    Passou posteriormente por diversas padronizações e atualizações, a princípio estabelecidos pela  ANSI e posteriormente pela ISO, até chegar a versão C17 lançada em 2018. 

    Já o C++ (leia-se C Plus Plus) é uma evolução do C onde foram implementadas funcionalidades para permitir o uso do paradigma de programação orientado a objetos, além da programação estruturada já implementada. Por essa razão dizemos que ela é uma linguagem multiparadigma.

    Posteriormente, a Microsoft criou um ambiente de programação conhecida como .Net para facilitar o desenvolvimento de aplicações Windows, Web e jogos, criando uma versão do C++ conhecida como C# (leia-se C Sharp), estritamente orientada a objetos, visando a produtividade no desenvolvimento, mas sacrificando um pouco da eficiência e o controle de baixo nível da família C. 

    Assim, hoje o C e C++ basicamente são usado em projetos que necessitam de desempenho e comunicação com o hardware, por isso sua força na área de sistemas embarcados. 

Compiladores

    Como já dissemos, no processo de criação de um programa em C, o código que escrevemos na forma de um arquivo texto com a codificação em C, passará por uma etapa chamada compilação. Nessa etapa o arquivo texto gera um outro arquivo executável em linguagem de máquina. O responsável por essa transformação é o compilador.

    Ao longo do desenvolvimento da linguagem C, também surgiram diferentes compiladores para uso do C/C++ mantidos por diferentes fornecedores, entre eles Borland e Microsoft. Nos computadores com Sistema Windows a um predomínio de compiladores C++. Entre eles podemos citar o Microsoft Visual C++ Compiler, o MinGW, o Intel C++ Compiler, o Dev C++, etc.

  Já no Sistema Operacional Linux temos o compilador GCC mantido pelo projeto GNU, que atualmente está na versão 12 e é oferecido nativamente nas principais distribuições do Sistema.

    Para facilitar o seu aprendizado, nessa primeira parte do curso utilizaremos a plataforma GDB Online que servirá como uma especie de IDE. Ela permitirá a remoção de erros do programa, operação que chamamos de Debugger e permitirá a execução do código como se tivesse feito uma compilação, mas sem gerar arquivo executável.

    Por enquanto não nos preocuparemos em salvar arquivos, mas saiba que o GDB Online permite o download do código que trabalharemos na forma de uma arquivo chamado main.c.

Arduino IDE

    Outra confusão que surge em Sistemas Embarcados é referente a programação feita com uso da IDE Arduino. É comum as pessoas se referirem a linguagem utilizada dentro dessa IDE como sendo a linguagem Arduino. Na realidade ela é um Framework da linguagem C++ , mas o que é um Framework?

    A tradução pura de Framework é "estrutura". Em software um Framework é um estrutura que serve de modelo para programação. Para visualizar e entender melhor o que é um Framework vamos extrapolar uma situação culinária: 

    Você pode fazer um bolo de chocolate a partir de alguns ingredientes seguindo uma receita de bolo, correto? No entanto você também pode fazer um bolo utilizando uma dessas caixinhas de bolo pronto, adicionando pouquíssimos ingredientes na quantidade que vem nas instruções, sem muita preocupação com a receita, não é mesmo?

    Pois bem, digamos que fazer o bolo começando do zero seja programar em C/C++ e o bolo de caixinha seja um Framework de bolo, porque é uma estrutura pra fazer bolo. Entendeu? Usar o Framework não é mais fácil? No entanto ele não é tão flexível. Se eu quiser tirar um ingrediente que vem na caixinha ficará difícil, não é mesmo?

    Futuramente você verá em outros cursos desse site que, para projetos mais profissionais, utilizaremos o C++ ao invés da Arduino IDE

Resumindo

    Nesse curso você verá conceitos básicos de linguagem C testados na plataforma GDB Online e nosso foco será pensando em Sistemas Embarcados. Não abordaremos por enquanto C++ nem a Arduino IDE, pois veremos isso em cursos mais a frente.


Próxima Aula                                                                                                                        Aula Anterior

Referências

DAMAS, L. Linguagem C. Rio de Janeiro: LTC Editora, 2007.

GBD ONLINE. C for Beginners. Disponível em: <https://learn.onlinegdb.com/c_for_beginners> Acesso em 05 ago. 2024.

GBD ONLINE. C Programming Examples Disponível em: <https://learn.onlinegdb.com/c_program_examples> Acesso em 05 ago. 2024.

W3SCHOOLS. C Tutorial. Disponível em: <https://www.w3schools.com/c/index.php> Acesso em 05 ago. 2024.