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

O projeto é legal, amigo. Já tive ideia parecida, mas com um propósito bem diferente. Talvez você já conheça, mas mesmo assim vou recomendar o Logisim-evolution.

Ah, e tem o jogo Turing Complete na Steam. Nesse jogo você tem que fazer uma CPU usando portas lógicas e depois programar ela em assembly. É o jogo que eu mais tenho tempo de gameplay na Steam. É bem legal.

Carregando publicação patrocinada...
1

Oi Silva, conheço sim inclusive o primeiro renderizador do meu blog era feito com base nele haha, eu desenhava no logisim e passava o arquivo pra o meu tentar desenhar e simular só usando o arquivo do Logisim, que se chama .circ também haha.

Nunca ouvi falar desse jogo mas já to apaixonado haha, muito obrigado pela dica 😊

Aliás qual era o propósito do seu projeto?

1

É que eu tenho um projeto (atualmente pausado) chamado Mya, que resumidamente é uma linguagem formal para escrever a especificação de uma ISA: https://github.com/mya-project/. Tipo Sail, só que mais simples.

Com a linguagem Mya eu consigo descrever a arquitetura do processador e o formato das instruções em código de máquina, mas não o comportamento. Então a ideia era fazer uma linguagem textual para a especificação de circuitos lógicos com o propósito de especificar o comportamento das instruções da arquitetura especificada em Mya.

Eu não fui em frente com essa ideia porque seria complexo demais e a ideia da Mya é justamente ser simples, mas até deixei um esboço de como seria a linguagem no meu Notion:

component xor(A, B) -> C {
	C = (A & ~B) | (~A & B)
}

operator "^"(A, B) = xor A, B -> C
1

Muito interessante, adorei o jeito de declarar componente. Pensei em algo parecido no circ, mas acabei dropando porque dei preferência ao import, que ia acabar dando um resultado parecido, tanto que hoje a std lib do circ é escrita em circ haha.

Outra coisa que inicialmente pensei em fazer no circ era usar uma sintaxe de operadores infixos parecida com essa, com um estilo meio inspirado no Python, mas acabei percebendo que no meu caso prefixar seria melhor lido.

Um futuro que quero adicionar no meu projeto é poder escrever testes, justamente pra chegar no ponto de ter uma ISA testada nela mesma, mesmo que seja uma ISA simples haha.