Executando verificação de segurança...
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
Carregando publicação patrocinada...
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.