https://github.com/mtaciano/cmc
Um compilador para a linguagem C- derivada de C.
https://github.com/mtaciano/cmc
c cminus compiler rust
Last synced: 11 months ago
JSON representation
Um compilador para a linguagem C- derivada de C.
- Host: GitHub
- URL: https://github.com/mtaciano/cmc
- Owner: mtaciano
- License: mit
- Archived: true
- Created: 2022-01-26T22:03:29.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-02-03T21:32:04.000Z (over 3 years ago)
- Last Synced: 2025-03-31T02:19:50.619Z (over 1 year ago)
- Topics: c, cminus, compiler, rust
- Language: Rust
- Homepage:
- Size: 365 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Compilador para C-
## Sobre
Nesse repositório está o compilador para um _subset_ da linguagem C, conhecido como C-.
Todas as etapas foram implementadas, sendo elas:
- [x] Lexer
- [x] Parser
- [x] Analyser
- [x] Gerador de código intermediário
- [x] Gerador de código assembly
- [x] Gerador de código binário
Pode-se melhorar diversas partes do código. No entanto, para o propósito desejado, a implementação atual é o suficiente.
## Instalação
Após clonar o repositório, entre nele e crie a pasta para onde os arquivos de compilação serão armazenados:
```
cd cmc
mkdir build
```
Para realizar o desenvolvimento do compilador `cmc` é recomendado usar seguinte comando:
```
make debug # Gera código ideal para o desenvolvimento
```
Para utilizar o compilador `cmc` como um produto final é recomendado usar o seguinte comando:
```
make release # Gera código otimizado em tanto tamanho e velocidade
```
## Dependências
- Rust
- Clang
- Bison
- Flex
## Contribuição
Caso ache erros, use a aba de _issues_ para relatá-los.
## Licença
A licença usada para o compilador é a licença permissiva MIT.