Executando verificação de segurança...
5

Como se cria uma liguagem de programação?

vamos lá eu queria saber como cria uma liguagem de programação eu já pesquisei passos para criar um liguagem mas tem termos que eu não entendo e eu queria ver alguém botando a mão na massa não só na parte teórica alguém pode me explicar isso eu também queria fazer minha liguagem e explicar também Alocação de memoria e essas coisas kk.

Carregando publicação patrocinada...
6

Não querendo te desanimar, mas criar uma linguagem é um processo bem complexo. Tenha isso em mente antes de começar, para não se frustrar logo de cara.

Algumas respostas deram um resumo em tópicos, mas já adianto que cada tópico citado é um mundo à parte. Vc também disse que não entende alguns termos, o que mostra que ainda tem muito pra aprender antes de começar de fato.

Complementando o que os demais já disseram, aqui tem um bom resumo sobre como uma linguagem é criada. Sim, é um resumo, cada item citado ali é um mundo à parte e demandará muito estudo. E não deixe de seguir todos os links do texto, pois eles detalham melhor o que foi dito.

Sim, é muita coisa, mas se for pra fazer algo sério e da maneira correta, não tem jeito. De qualquer forma, mesmo se vc não chegar a implementar, o processo de estudo te dará um entendimento maior sobre como as coisas funcionam por baixo dos panos, o que por si só já te torna um programador melhor.

2

Obrigado pelo link (ali é o resumo do resumo). Também pode interessar: https://pt.stackoverflow.com/q/104814/101. Compilador e linguagem são coisas bem diferentes.

Eu sempre pensei em uma linguagem hipotética. Ela já teve várias formas ao longo de décadas. Mas nunca criei coragem para escrever um compilador para ela. Depois, toda biblioteca padrão, outras ferramentas e bibliotecas auxiliares que envolvem IO, incluindo as UIs que é IO.

Para quem programa muito bem, entende todos os mecanismos das linguagens existentes, quem acompanha o desenvolvimento das linguagens que circulam por aí e analisam como as decisões são tomadas, e estuda bastante sobre compiladores, facilita bastante criar uma linguagem real.

Criar algo para brincar, que nunca será usado em produção, que faça coisas bem básicas com mecanismo muito simples, pode não ser tão difícil assim, mas ainda exigirá um bom entendimento da computação. A não ser que a pessoa pegue algo pronto e faça apenas pequenas modificações, o que ainda exigirá uma certa experiência em programação.

Confirmando o já dito, a maior vantagem de aprender tudo isso, paradoxalmente ao que eu disse, é que se tornará um programador melhor.

Faz sentido para você?

Espero ter ajudado.


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).

1
5

Claro! Vamos lá, vou tentar simplificar ao máximo e te dar um panorama geral de como criar uma linguagem de programação. Vai ser um resumo bem básico, tá? Se você quiser se aprofundar, vai precisar estudar cada etapa com mais detalhes. Vamos nessa!

1. Defina o propósito da sua linguagem
Antes de mais nada, você precisa saber pra que sua linguagem vai servir. É pra fazer jogos? Pra desenvolver apps? Ou só pra brincar mesmo? Isso vai te ajudar a decidir as características dela.

2. Escolha a sintaxe
A sintaxe é tipo a "gramática" da sua linguagem. Como as coisas vão ser escritas? Por exemplo, em Python, pra imprimir algo na tela, a gente usa print("Olá, Mundo!"). Como seria na sua linguagem?

Exemplo Prático:

Vamos criar uma linguagem de programação muito simples chamada "SimpleLang". Ela terá apenas uma instrução: print.

Sintaxe:

print "Olá, Mundo!"

Interpretador (em Python):

def interpretar(codigo):
    if codigo.startswith("print "):
        texto = codigo.split("print ")[1]
        print(texto)

# Testando
codigo = 'print "Olá, Mundo!"'
interpretar(codigo)

Este é um exemplo extremamente simplificado e apenas para fins ilustrativos.

3. Crie um compilador ou interpretador
Aqui começa a parte mais "cabeluda". O compilador (ou interpretador) é o que vai transformar o código da sua linguagem em algo que o computador entenda. Basicamente, ele vai ler o que você escreveu e traduzir pra linguagem de máquina.

4. Alocação de memória
Aqui é onde a coisa fica mais técnica. Quando você cria variáveis ou usa funções na sua linguagem, precisa dizer pro computador onde guardar essas informações. Isso é a alocação de memória. Em linguagens de alto nível, muita dessa parte é automática, mas se você quer criar sua linguagem, vai precisar entender um pouco disso.

5. Crie uma biblioteca padrão
Sabe quando você usa funções prontas, tipo print() ou len()? Elas fazem parte da biblioteca padrão da linguagem. Você vai querer criar funções assim pra sua linguagem também, pra facilitar a vida de quem for usar.

6. Teste, teste e teste!
Agora que você tem uma versão inicial da sua linguagem, é hora de testar. Escreva programas nela, veja se tudo funciona direitinho, e corrija os bugs que aparecerem.

7. Divulgue e melhore
Se você acha que sua linguagem é legal e quer que outras pessoas usem, divulgue! E esteja pronto pra receber feedbacks e fazer melhorias.

Lembre-se: criar uma linguagem de programação é um projeto grande e complexo. Mas se você tiver paixão e paciência, pode ser uma experiência muito legal e recompensadora. Boa sorte! 🚀

2
1
2

Se você é iniciante, eu não recomendo que comece por aí. Adquira um pouco de experiência primeiro, compiladores é uma matéria bastante densa. Eu tive aulas disso na faculdade por volta do terceiro ano, depois de aprender estruturas de dados e mais outras coisas básicas de programação, então comece por aí.

Já tem um comentário bastante explicativo aqui sobre isso, então não vou me alongar, só vou dizer que existem ferramentas que tornam o trabalho mais simples, como o LLVM, que inclusive tem um tutorial inteiro de como criar uma linguagem simples chamada Kaleidoscope. É bem denso e precisa ter um bom conhecimento de C++, mas se você estudar bastante, chega lá.

2

Olá! Se você está interessado em criar sua própria linguagem de programação e deseja não apenas entender a teoria, mas também a prática, recomendo fortemente o livro "Structure and Interpretation of Computer Programs" (SICP). Vou lhe dar algumas razões:

Abordagem Prática: Embora o SICP tenha uma base teórica sólida, ele é conhecido por sua abordagem "mão na massa". Ele não apenas apresenta conceitos, mas também mostra como implementá-los passo a passo.

Compreensão de Conceitos Complexos: Se termos como "Alocação de memória" são novos ou confusos para você, o SICP faz um excelente trabalho ao quebrar esses conceitos em pedaços gerenciáveis, tornando-os compreensíveis.

Construção de uma Linguagem de Programação: O livro realmente entra nas entranhas de como as linguagens de programação funcionam e até conduz o leitor através da criação de uma linguagem, proporcionando uma compreensão aprofundada do processo.

Edição Atualizada com JavaScript: Em 2022, uma nova edição do SICP foi lançada utilizando JavaScript como a linguagem a ser implementada. Considerando a popularidade e a natureza intuitiva do JavaScript, esta edição torna o conteúdo do livro muito mais palatável para iniciantes e aqueles não familiarizados com muitas outras linguagens de programação.

Em suma, se você quer mergulhar fundo na criação de linguagens de programação e entender tanto a teoria quanto a prática, o SICP é uma leitura mais que essencial.

1
1

A criação de uma linguagem de programação é um projeto complexo e desafiador, que requer conhecimentos avançados em teoria da computação, design de linguagens, engenharia de compiladores e outros campos relacionados à ciência da computação. É importante entender que criar uma linguagem de programação não é uma tarefa para iniciantes e geralmente é realizada por equipes de engenheiros de software altamente qualificados.

Dito isso, vou fornecer uma visão geral simplificada do processo de criação de uma linguagem de programação:

1- Definição dos Objetivos: Antes de começar, você precisa ter uma clara compreensão dos objetivos da sua linguagem de programação. Você deve decidir que tipo de problemas a linguagem deve resolver, quem é o público-alvo e quais recursos ela deve oferecer.

2- Design da Linguagem: Projete a sintaxe (a forma como os programas escritos na linguagem serão estruturados) e a semântica (o significado dos programas escritos na linguagem). Isso envolve a criação de gramáticas formais e a definição de como os programas serão executados.

3- Implementação do Compilador/Interpretador: Você precisa criar um compilador (para linguagens compiladas) ou um interpretador (para linguagens interpretadas). Um compilador traduz o código-fonte em código de máquina ou código intermediário, enquanto um interpretador executa diretamente o código-fonte. Isso envolve a escrita de código em uma linguagem de programação existente (por exemplo, C, C++, Python) que traduzirá ou executará o código da sua linguagem.

4- Geração de Código: Se você está criando uma linguagem compilada, precisa escrever um gerador de código que transforme o código intermediário em código de máquina executável.

5- Testes e Depuração: Teste sua linguagem exaustivamente para garantir que ela funcione conforme o esperado e seja livre de erros. Isso envolve a criação de programas de teste, a execução de testes de unidade e a depuração de problemas.

6- Documentação: Documente sua linguagem de programação, fornecendo um manual do usuário e documentação técnica para desenvolvedores.

7- Comunidade e Suporte: Construa uma comunidade em torno da sua linguagem, ofereça suporte aos desenvolvedores e forneça recursos para ajudar na aprendizagem e no desenvolvimento.

8- Alocação de Memória: Se a sua linguagem incluir gerenciamento de memória (por exemplo, alocação e desalocação de memória), você precisará implementar essas funcionalidades com cuidado para evitar vazamentos de memória e erros.

Lembre-se de que, ao criar uma linguagem de programação, você também precisará entender conceitos avançados, como análise léxica, análise sintática, análise semântica, árvores de sintaxe abstrata, estruturas de dados de alto desempenho e muito mais.

É altamente recomendável estudar a teoria da computação, a linguagem de programação existente e os compiladores antes de embarcar em um projeto tão ambicioso. Além disso, criar uma linguagem de programação é um empreendimento de longo prazo que requer um compromisso substancial de tempo e recursos.