Como criar uma linguagem de programação: 15 etapas (com imagens)

Índice:

Como criar uma linguagem de programação: 15 etapas (com imagens)
Como criar uma linguagem de programação: 15 etapas (com imagens)

Vídeo: Como criar uma linguagem de programação: 15 etapas (com imagens)

Vídeo: Como criar uma linguagem de programação: 15 etapas (com imagens)
Vídeo: MANUTENÇÃO NO PC: Como LIMPAR corretamente, ERROS comuns e PRODUTOS. Evitando AQUECIMENTO 2024, Abril
Anonim

Muitas pessoas têm dificuldades ou frustrações com as linguagens de programação que usam todos os dias. Alguns desejam que as coisas sejam tratadas de forma mais abstrata, enquanto outros não gostam de implementar recursos que desejam que sejam 'padrão'. Quer você seja um profissional de TI ou apenas um hobby, muitas vezes você pode querer criar uma nova linguagem de programação.

Passos

Crie uma Linguagem de Programação, Etapa 1
Crie uma Linguagem de Programação, Etapa 1

Etapa 1. Familiarize-se com a tecnologia

Você não pode criar uma linguagem de programação se não souber usar um computador.

Crie uma Linguagem de Programação, Etapa 2
Crie uma Linguagem de Programação, Etapa 2

Etapa 2. Familiarize-se com a terminologia

Os escritores de compiladores costumam usar uma terminologia desconhecida. Leia sobre compiladores antes de prosseguir. Certifique-se de saber tudo o que você precisa saber.

Crie uma Linguagem de Programação, Etapa 3
Crie uma Linguagem de Programação, Etapa 3

Etapa 3. Decida qual problema seu idioma está resolvendo

Trata-se de um problema específico de domínio ou é uma linguagem de uso geral?

Crie uma Linguagem de Programação, Etapa 4
Crie uma Linguagem de Programação, Etapa 4

Etapa 4. Pense sobre a semântica de sua linguagem e os conceitos dela

  • Você vai permitir o acesso direto do ponteiro ou não?
  • Quais são os tipos de dados do seu idioma?
  • É uma linguagem estática ou dinâmica?
  • Qual é o seu modelo de memória? Você vai usar um coletor de lixo ou gerenciamento manual de memória? (Se você usa um coletor de lixo, prepare-se para escrever um ou adaptar um existente ao seu idioma.)
  • Como vamos lidar com a simultaneidade? Você vai usar um modelo de threading / bloqueio simples ou algo mais complexo como Linda ou o modelo de ator? (Uma vez que hoje em dia os computadores têm vários núcleos.)
  • Existem funções primitivas embutidas na linguagem ou tudo virá de uma biblioteca?
  • Qual é o paradigma ou paradigmas da sua linguagem? Funcional? Orientado a Objeto? Protótipo (como JavaScript)? Orientado para aspectos? Orientado a modelos? Ou algo totalmente novo?
  • Como sua linguagem fará a interface com as bibliotecas e linguagens existentes (principalmente C)? Este ponto é importante se você estiver construindo uma linguagem específica de domínio.
  • Finalmente, algumas das respostas a essas perguntas serão respondidas na segunda etapa e o ajudarão a responder na próxima etapa.
Crie uma Linguagem de Programação, Etapa 5
Crie uma Linguagem de Programação, Etapa 5

Etapa 5. Pense em algumas tarefas específicas que alguém gostaria de realizar com o seu idioma

Por exemplo, 'eles podem querer direcionar um robô para seguir uma linha' ou 'eles podem querer criar programas de desktop relativamente portáteis nele' ou 'eles podem querer criar aplicativos da web com ele'.

Crie uma Linguagem de Programação, Etapa 6
Crie uma Linguagem de Programação, Etapa 6

Etapa 6. Experimente ideias de sintaxe (o texto da linguagem) para os exemplos acima

Tenha o cuidado de manter seu idioma na categoria de idioma livre de contexto ou algo dentro dela. Seu gerador de analisador e você irá apreciá-lo mais tarde

Crie uma Linguagem de Programação, Etapa 7
Crie uma Linguagem de Programação, Etapa 7

Etapa 7. Escreva uma gramática formal para a sintaxe

Crie uma Linguagem de Programação, Etapa 8
Crie uma Linguagem de Programação, Etapa 8

Etapa 8. Decida se a linguagem será interpretada ou compilada

O que significa que no mundo interpretado, seu usuário normalmente editará seu programa em um editor e o executará diretamente no intérprete; enquanto no mundo compilado, seu usuário irá editar seu programa, compilá-lo, salvar o executável resultante em algum lugar e executá-lo.

Crie uma Linguagem de Programação, Etapa 9
Crie uma Linguagem de Programação, Etapa 9

Etapa 9. Escreva o scanner e analisador front-end ou encontre uma ferramenta que o ajude com isso

Além disso, pense em como o seu compilador / interpretador avisará o usuário sobre programas errôneos e erros de sintaxe

Crie uma Linguagem de Programação Etapa 10
Crie uma Linguagem de Programação Etapa 10

Etapa 10. Use as informações do analisador para escrever o código do objeto ou uma representação intermediária

Faça com que o analisador crie um AST e, em seguida, crie seu código de objeto a partir do AST usando três códigos de endereço ou seu irmão mais velho SSA e, em seguida, crie uma tabela de símbolos para definir suas funções, variáveis globais, etc.

Além disso, dependendo do seu idioma, você também pode criar tabelas de ponteiros virtuais ou tabelas de informações para suas classes (a fim de oferecer suporte a reflexão ou RTTI)

Crie uma Linguagem de Programação, Etapa 11
Crie uma Linguagem de Programação, Etapa 11

Etapa 11. Escreva o executor ou gerador de código que ligará tudo junto

Crie uma Linguagem de Programação, Etapa 12
Crie uma Linguagem de Programação, Etapa 12

Etapa 12. Escreva muitos programas de teste para testar o idioma

Você deseja criar programas que enfatizem o fardo de sua gramática formal para ver se seu compilador aceita tudo que está dentro de sua definição e rejeita tudo que está fora dela

Crie uma Linguagem de Programação Etapa 13
Crie uma Linguagem de Programação Etapa 13

Etapa 13. Considere como o usuário irá depurar seus próprios programas

Crie uma Linguagem de Programação, Etapa 14
Crie uma Linguagem de Programação, Etapa 14

Etapa 14. Se o seu idioma usa uma biblioteca padrão, você vai querer escrevê-la

Junto com um coletor de lixo ou outros recursos de tempo de execução, se necessário.

Especificamente, se você escrever um compilador, precisará do código que o sistema operacional executará para começar a executar o código do usuário (por exemplo, alocar todas as variáveis globais)

Crie uma Linguagem de Programação Etapa 15
Crie uma Linguagem de Programação Etapa 15

Etapa 15. Publique seu idioma, junto com as especificações e alguns exemplos do que você pode fazer nele

Não se esqueça de documentar como você pode integrar com bibliotecas, linguagens existentes e como usar os recursos de tempo de execução e / ou biblioteca padrão

Vídeo - Ao usar este serviço, algumas informações podem ser compartilhadas com o YouTube

Pontas

  • Comece projetando sua linguagem e não escreva nenhum código, até que esteja satisfeito e tenha respondido todas (ou a maioria) das questões ou problemas relacionados ao seu design, pois é mais fácil alterar o design mais cedo do que mais tarde.
  • Conheça a plataforma alvo (sistema operacional e bibliotecas) do seu compilador / interpretador, afinal você vai utilizá-la e manipulá-la.

Avisos

  • Pense se você realmente precisa de um novo idioma, e o que seu idioma tem de novo que outros idiomas não têm (pode ser uma combinação de recursos ou um único recurso).
  • Escrever línguas é difícil se você não sabe o que está fazendo. Também requer muita prática.
  • Prepare-se para passar algum tempo no design da linguagem, uma vez que você não terá a chance de mudar sua linguagem depois de escrever o compilador e passar do ponto de design.
  • Não tente basear suas características em uma união de vários idiomas, como dizer que seu idioma será uma união de idioma X, idioma Y e idioma Z. A história nos mostra que idiomas criados dessa forma nunca terão sucesso, ou todos estariam programando PL / 1 em vez de algo baseado em C.

Recomendado: