O que é preciso para fazer um programa de computador?

Espada Game Dev
4 min readJan 3, 2021
IDE Microsoft Visual Studio

O que preciso para fazer um programa de computador?

Então, basicamente você está no seu início da carreira de programação, decidiu ser programador e a ideia de fazer aplicativos e programas é algo que tem muito apelo para você, e no início não sabemos o que é necessário para se fazer um programa de computador, então…aqui estão todos os elementos básicos para se fazer um programa.
Primeiramente precisará de uma linguagem de programação. Nesse assunto há uma variedade de diferentes linguagens como C#, Javascript e Python e muito pode ser dito sobre isso, mas por agora vamos definir o que é uma linguagem de programação. Linguagem de programação é definido por regras léxicas (ortografia) e sintáticas(gramática) para se escrever o programa. Regras léxicas referem-se à correção de palavras “isoladas”, por exemplo se no código escrevermos “wihle” em vez da escrita correta “while” o código não vai funcionar, então regras de ortografia são aplicadas, o computador não tem como interpretar esses erros ortográficos com o que você espera que ele execute, então a ortografia dos códigos deve ser respeitado. Regras sintáticas dizem respeito à correção de sentenças (gramática). Por exemplo, se na linguagem de programação queremos fazer uma variável “x” receber o resultado de 2 + y, não posso escrever a equação matemática com os operadores e valores na ordem errada como “x = + 2 y” , por mais que não tenha um erro ortográfico em questão aqui, a ordem sintática do código esta errado, e o computador não consegue entender os valores, então teria que colocar na ordem sintática correta que seria nesse exemplo “x = 2 + y”. Estas regras sintáticas e léxicas que mudam em diferentes linguagens de programação.
Após escolher uma linguagem de programação precisará de uma IDE, que significa “Integrated Development Environment” (Ambiente Integrado de Desenvolvimento), uma IDE permite que os programadores consolidem os diferentes aspectos da escrita de um programa de computador. IDEs aumentam a produtividade do programador combinando atividades comuns de escrever software em um único aplicativo: edição de código-fonte, construção de executáveis e etc… Basicamente é um software para editar e testar programas. Para a linguagem C# temos o Microsoft Visual Studio, Code Blocks para C/C++, Eclipse e Netbeans para Java.
Outro software que irá precisar é um Compilador, que é um software que transforma o código fonte em código objeto. “Mas o que é Código Fonte e Código Objeto?”, Código-fonte (ou source code em inglês) é o conjunto de palavras ou símbolos escritos de forma ordenada, contendo instruções em uma das linguagens de programação existentes, de maneira lógica, pense nele como o código escrito pelo programador em linguagem de programação. Código Objeto é o produto do compilador. Código objeto é uma sequência de comandos ou instruções numa linguagem de computador. E finalmente também precisa-se de um gerador de código ou máquina virtual, que seria o software que permite que o programa seja executado. “ok, mas o que o compilador faz exatamente?” Bom…o compilador transforma o código fonte em código objeto certo, ele faz isso através de uma análise léxica e sintática do código fonte, gerando um novo código chamado Código Objeto. O Código Objeto passa por um Gerador de códigos para um processo chamado Build (construção) que finalmente gera um Código Executável, que este sim pode ser executado como um programa, tenha em mente que não são todas as linguagens que usam este método, C/C++ são exemplos de linguagens que usam esse método. Existe outro método chamado Interpretação, ocorre quando tempo um software interpretador que lê o código fonte e faz os processos de análise léxica, análise sintática, geração de código sob demanda, gradualmente lê o código fonte interpreta as informações para o código executável, este método é usado por linguagens como Phyton, Javascript, PHP e Ruby. Existe também uma terceira abordagem desse método que seria a Abordagem híbrida, nesse caso o código fonte passa por um processo de pré compilação (análise léxica e sintática) gerando um código objeto chamado ByteCode, este Bytecode é um código pré compilado que em vez de já gerar um código executável, ele passa por uma Máquina Virtual que interpreta o ByteCode em um código executável sob demanda, um exemplo de linguagem que usa esse método seria o Java que usa a máquina virtual “JVM” e C# que usa o “Microsoft. NET Framework”.

“Quais as vantagens desses diferente métodos?”, com o método da Compilação temos a velocidade do programa, como toda compilação e geração de código é feito antes, concluímos que naturalmente o programa será mais rápido, outra vantagem de estar lidando com uma linguagem compilada é um melhor auxílio do compilador previamente a execução, o compilador faz a análise léxica e sintática e se encontrar algum problema e não executa o programa. A interpretação também possui alguma vantagens, como a flexibilidade em manutenção do aplicativo em produção, se você tem um aplicativo rodando basta trocar algum ou mais arquivos fonte que o programa continua executando, tirando a necessidade de recompilar todo o programa para que retorne a funcionalidade, outra vantagem da Interpretação é o use de linguagem mais expressiva, que significa escrever códigos mais elegantes e complexa em poucas linhas, mais uma vantagem seria que o código fonte não precisa ser recompilado para executar em diferentes plataformas, apenas tendo um interpretador para cada uma das plataformas. A Abordagem híbrida usufrui de vantagens dos outros métodos, como o auxílio do compilador antes de execução, o código fonte não precisar ser recompilado para outros plataformas, também flexibilidade de manutenção do aplicativo em manutenção e velocidade do programa.

Isto é basicamente o que precisamos entender para criar um programa de computador, conceitos básicos para te ajudar a entrar na programação de algum software. Espero ter ajudado e Boa Sorte!

--

--

Espada Game Dev

All on making games, writing, Worldbuilding. I also create free content for anyone to start in game dev, you can buy me coffee here bit.ly/aEspada-Donate