Como criar uma linguagem de programação do 0?

25/10/2015

0

Eu desejo criar meu próprio compilador do 0, porém não acho nenhum lugar explicando minhas dúvidas:
O mais perto que eu achei era um criando uma compilador usando C#, eu quero criar uma linguagem nova, do 0.
Por exemplo: Vamos supor que o C# não existe ainda, e eu vá cria-lo, em vez de eu criar uma linguagem a partir do C#.
Sei que é muito difícil, porém estou capacitado.
Sei as fases do compilador, tipo, análise léxica, semântica, sintática, esse tipo de coisa.
Só que não sei como definir tipos de código da minha linguagem, não sei por onde começar, tipo:
onde eu vou escrever a estrutura da minha linguagem;
como eu vou definir as funções dos códigos e o resultado.
Eu quero criar um linguagem funcional, tipo F# da vida, só que mais simplificado é claro. E junto criar minha plataforma onde essa minha linguagem pertencesse, assim como o .NET
João Quinaglia

João Quinaglia

Responder

Post mais votado

26/10/2015

Olha só posso desejar-te boa sorte, pois vais precisar. Não é nada trivial criar um linguagem anda mais sozinho é um trabalho para um vida.

Provavelmente não tenho muito como ajudá-lo, mas teria como dar mais detalhes?

Esta linguagem seria somente funcional ou seria programação imperativa, procedimental e orientada a objeto tradicional?

Seria interface gráfica (deskttop) e web?

Seria fortemente tipada ou fracamente tipada?

Seria escrita em C?

É um projeto acadêmico ou você pretende comercializá-lo?

Jothaz

Jothaz
Responder

Mais Posts

26/10/2015

João Quinaglia

Olha só posso desejar-te boa sorte, pois vais precisar. Não é nada trivial criar um linguagem anda mais sozinho é um trabalho para um vida.

Provavelmente não tenho muito como ajudá-lo, mas teria como dar mais detalhes?

Esta linguagem seria somente funcional ou seria programação imperativa, procedimental e orientada a objeto tradicional?

Seria interface gráfica (deskttop) e web?

Seria fortemente tipada ou fracamente tipada?

Seria escrita em C?

É um projeto acadêmico ou você pretende comercializá-lo?


Somente funcional, seria para desktop, fortemente tipada, seria escrita em c# ou c++ e é um projeto pessoal mesmo, tipo, só pra mim aprender, mas se der tudo certo posso ir aprimorando-a conforme o passar dos anos e talvez um dia torná-la comercial.
Responder

26/10/2015

Eduardo Pessoa

João Pedro, umas das perguntas mais inusitadas que vi no forum, tambem te desejo sorte e quando tiver algo pronto, disponibilize para nós conhecermos.
Responder

26/10/2015

Jothaz

Como você disse que é qualificado e conhece a fundo a disciplina de compiladores, acho que pode ser interessante dar um olhada em Brainf*ck e Lisp.

Eu começaria do básico e criaria um interpretador para uma "linguagem de scripts".

E faço minha as palavras do Eduardo, não se esqueça de postar os avanços sobre este projeto.
Responder

26/10/2015

Fernanda Acacia

Tentei pesquisar no Google sobre o titulo desse post e tambem com modificação para ver se encontro algo bem direcionado, mas é assunto que não é muito abordado e consequentemente dificil de achar até por onde começar!

O que a gente tem como base são as historias das linguagens de programação comerciais atuais, onde geralmente existe uma grande equipe de desenvolvimento.
Responder

26/10/2015

João Quinaglia

Eu achei um lugar que ensina mais ou menos isso, que é o que eu citei na descrição da pergunta, que ensina a criar através do C#: https://sites.google.com/site/tecguia/home/crie-sua-propria-linguagem-seu-proprio-compilador
Pelo que entendi nas minhas pesquisas, cria-se uma linguagem usando outra mesmo, e se for aquelas linguagens que criam interface gráfica, é só criar outro compilador dela mesma em seu próprio compilador, e ir evoluindo assim pro diante.
Responder

26/10/2015

Marcos P

João,

Existe bastante material na WEB sobre isso... a enorme maioria em inglês.

Separei alguns links mais simples :

http://www.drdobbs.com/architecture-and-design/so-you-want-to-write-your-own-language/240165488?pgno=1

http://programmers.stackexchange.com/questions/84278/how-do-i-create-my-own-programming-language-and-a-compiler-for-it

http://www.wikihow.com/Create-a-Programming-Language

Agora, se prepare, é um trabalho de anos ( exatamente como o Jothaz destacou ) e como um desses artigos define : "First off, you're in for a lot of work…years of work…most of which will be wandering in the desert."
Responder

26/10/2015

Fernanda Acacia

Pelo que entendi nas minhas pesquisas, cria-se uma linguagem usando outra mesmo, e se for aquelas linguagens que criam interface gráfica, é só criar outro compilador dela mesma em seu próprio compilador, e ir evoluindo assim pro diante.


A ideia parece ser um pouco complexa, mas é interessante.
Responder

27/10/2015

Aluisio Cavalcante

João Pedro, umas das perguntas mais inusitadas que vi no forum, tambem te desejo sorte e quando tiver algo pronto, disponibilize para nós conhecermos.


[2]
Responder

04/07/2019

Jairo

Boa noite, tenho um projeto de compilador que comecei em meados de 2014 apelidado por JPL, o post ja é meio antigo, mas caso ainda tenha interesse, avise-me, pois, entrei na faculdade este ano e irei abrir um projeto para disponibilizar o que já tenho pronto, é em C#, vou deixar anexada duas fotos do projeto, uma é o assembler (o projeto tem um assembler próprio com uma sintaxe Assembly própria (PAsm)) e outra é a sintaxe da minha linhagem de programação.


https://ibb.co/FwL0JwF (PAsm)
https://ibb.co/FngWWjr (JPL)
Responder

18/09/2020

Ramon

Boa noite, tenho um projeto de compilador que comecei em meados de 2014 apelidado por JPL, o post ja é meio antigo, mas caso ainda tenha interesse, avise-me, pois, entrei na faculdade este ano e irei abrir um projeto para disponibilizar o que já tenho pronto, é em C#, vou deixar anexada duas fotos do projeto, uma é o assembler (o projeto tem um assembler próprio com uma sintaxe Assembly própria (PAsm)) e outra é a sintaxe da minha linhagem de programação.


https://ibb.co/FwL0JwF (PAsm)
https://ibb.co/FngWWjr (JPL)


eu tenho interesse se puder monstrar
Responder

19/09/2020

Devair

para criar um compilador e huma linguagem nova , você pode usar o Assembler , ou linguagem Assembly , que é a origem de todas as Linguagens existentes , pois essa reside no próprio processador , dentro dele estão os comandos do Assembly , que na verdade é a Linguagem de Máquina que é formada por números , e mais especificamente dois números , que são ZERO e UM , pois como máquinas que funcionam através de energia elétrica , e nelas só pode ter dois casos , ou com energia , que corresponde a LIGADO , ou sem energia que corresponde a DESLIGADO , então o assembly tem comando para colocar e ler dados das posições de memória , e esses comandos trabalham com registradores nomeados assim :
eax
ecx
ebx
edi
esi
e outros . . .
e comandos como esses :
sub -> que faz a subtração do registrador A por um outro número
mov -> coloca um valor no registrador A
push -> arquiva o valor de algum registrador preservando seu valor e usa-lo depois
call -> faz uma chamada para uma surotina , que em linguagens de alto nível são chamadas de função
ret -> sai do programa assembler e retorna para o windows ou Linus ou Mac OS , etc . . .
Responder

03/03/2022

Nadson Gomes

Eu desejo criar meu próprio compilador do 0, porém não acho nenhum lugar explicando minhas dúvidas:
O mais perto que eu achei era um criando uma compilador usando C#, eu quero criar uma linguagem nova, do 0.
Por exemplo: Vamos supor que o C# não existe ainda, e eu vá cria-lo, em vez de eu criar uma linguagem a partir do C#.
Sei que é muito difícil, porém estou capacitado.
Sei as fases do compilador, tipo, análise léxica, semântica, sintática, esse tipo de coisa.
Só que não sei como definir tipos de código da minha linguagem, não sei por onde começar, tipo:
onde eu vou escrever a estrutura da minha linguagem;
como eu vou definir as funções dos códigos e o resultado.
Eu quero criar um linguagem funcional, tipo F# da vida, só que mais simplificado é claro. E junto criar minha plataforma onde essa minha linguagem pertencesse, assim como o .NET


Soube recentemente de um projeto bem interessante dos professores Shimon Shocken e Noam Nisan, ele se chama From Nand to Tetris. Ainda não consumi o conteúdo completo mas pelo que vi até agora, nele você aprende a construir um computador completo, do hardware ao software, desde componentes NAND até rodar um software nele, como o jogo Tetris. Ao longo desse processo você vai aprender como criar um compilador e uma linguagem de programação, segundo os professores. O curso está disponível na plataforma Coursera e tem legendas em português.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar