Como escrever sua própria linguagem de programação?

COMPARTILHAR:

Enquanto muitos novos programadores geralmente começam aprendendo um dos “grandes nomes” e linguagens de programação facilmente compreensíveis, como Python , outros alunos de programação podem estar interessados ​​em começar do zero. Com isso, queremos dizer escrever sua própria linguagem para usar para qualquer propósito final que você possa ter em mente. Esteja você criando aplicativos para dispositivos móveis, projetando um videogame, desejando criar sites ou interessado em ciência de dados (entre as dezenas de outras necessidades de linguagens de programação dinâmicas), certamente há um apelo em criar sua própria linguagem e vê-la adotada por programadores em todo o mundo.

Como escrever sua própria linguagem de programação?

Bem, como qualquer coisa que envolva programação, a resposta é um pouco mais complicada do que um blog pode responder – mas faremos o nosso melhor aqui. A resposta curta que exploraremos mais é basicamente que há uma série de decisões estruturais e filosóficas que você precisa tomar antes mesmo de começar a construir sua nova linguagem.

Então, quais são as questões-chave que podem ajudá-lo a começar a criar sua própria linguagem de programação? Aqui estão apenas algumas coisas a serem consideradas quando você começar a fazer um brainstorming e mapear sua criação ideal.

Linguagem interpretada ou compilada? 

Existem duas “classes” centrais de linguagens de programação, conhecidas como compiladas e interpretadas:

  • No caso de uma linguagem compilada, um compilador identifica tudo o que um programa fará, transforma-o em “código de máquina” (um formato que um computador pode rodar muito rapidamente) e, posteriormente, o salva para ser executado posteriormente.
  • Enquanto isso, para uma linguagem interpretada, um intérprete percorre o código-fonte linha por linha, descobrindo o que está fazendo à medida que avança.

Para ser justo, qualquer linguagem poderia teoricamente ser compilada ou interpretada, mas geralmente uma ou outra opção faz mais sentido para uma linguagem específica. Programadores experientes dirão que a interpretação tende a ser a opção mais flexível, enquanto a compilação oferece melhor desempenho. 

Esta é uma decisão essencial a ser tomada no início do processo de brainstorming, porque muitas decisões de design de linguagem são baseadas nela (por exemplo, a tipagem estática é um grande benefício para linguagens compiladas, mas não tanto para linguagens interpretadas).

Escolhendo uma linguagem para o sua linguagem

Sabemos que isso parece um pouco confuso, mas a maneira mais fácil de pensar sobre isso é perceber que as linguagens de programação são, elas mesmas, programas e, portanto, precisam ser escritas em uma linguagem. Linguagens como C ++ são frequentemente usadas por causa de vantagens estruturais, embora, novamente, essa decisão seja afetada pela escolha que você fizer acima:

  • Se você deseja criar uma linguagem interpretada, é mais sensato escrever sua linguagem dentro de uma compilada (como C , C ++ ou Swift ) porque o desempenho perdido na linguagem de seu intérprete e do intérprete que está interpretando seu intérprete aumentará .
  • Se você optar por compilar, uma linguagem mais lenta (como Python ou JavaScript ) é perfeitamente aceitável. Embora o tempo de compilação possa ser fraco, muitos programadores consideram um bom tempo de execução mais importante e essas linguagens podem oferecer isso.

Outros fatores na criação de sua própria linguagem 

Para lhe dar um instantâneo dos muitos outros fatores que você precisará considerar ao escrever sua própria linguagem de programação, aqui está uma lista rápida de algumas das outras decisões que você precisará tomar durante o processo:

  • Design de alto nível – incluindo a maneira como você formatará os dados em cada nível da linguagem
  • Lexing – o lexer deve incorporar uma string contendo o valor de um arquivo inteiro do código-fonte e cuspir uma lista contendo todos os tokens. O processo de lexing basicamente divide a linguagem em tokens, que podem ajudá-lo a organizar a linguagem.
    •  Tokens são pequenas unidades de uma linguagem de programação, como um nome de variável ou função (também conhecido como identificador), um operador ou um número.
  • Análise – o processo pelo qual você adiciona estrutura à lista de tokens que são produzidos durante o estágio de lexing.
  • Ferramentas externas para ajudar a escrevê-lo – existem inúmeras soluções prontas para usar disponíveis para os programadores que criam sua própria linguagem, como Bison (uma biblioteca de análise importante) ou LLVM (uma coleção de ferramentas de compilador). Você precisará fazer algumas pesquisas (e visitar os fóruns de desenvolvedores) enquanto trabalha para descobrir quais são os ideais para a linguagem de programação escolhida.

Parece muito trabalho? Isto é. Mas isso não quer dizer que você não deva escrever sua própria linguagem, especialmente se a criatividade é o verdadeiro apelo da programação para você. No entanto, o melhor método para qualquer novo aprendiz de programação é começar aprendendo o básico de linguagens estabelecidas e polivalentes, como Python e Java, e depois evoluir para construir a sua própria linguagem de programação.

Leia também: Carreira em TI: Habilidades de programação necessárias
COMPARTILHAR:
brayan

Brayan Monteiro

Bacharel em Sistemas de Informação pela Faculdade Maurício de Nassau e desenvolvedor PHP. Além de programador, produzo conteúdo e gerencio blogs. Sou especialista em desenvolvimento de software, SEO de sites e em negócios digitais.