Skip to content

erikborella/projeto-compiladores-ifsc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

projeto-compiladores-ifsc

1. Pré-requisitos

Compilador Java: JDK 19 ou maior.
LLVM: Clang 16.0.0.

2. Download

Baixe o programa já compilado e pronto para ser executado na ultima versão aqui. Veja nas Releases também outras versões disponiveis.

3. Utilização

O programa compilado tem como objetivo compilar o código suportado para a linguagem intermediaria do LLVM na forma textual, ou seja, ele irá fazer o papel de frontend do compilador gerando uma representação para o backend (LLVM) poder realizar os proximos passos de otimização, geração de código alvo e linkagem em um executavel.

Para rodar o executavel utilize o comando:

java -jar .\projeto-compiladores-ifsc-1.0-SNAPSHOT.jar

Execute com o argumento -h para obter a informação de comandos que o compilador suporta

java -jar .\projeto-compiladores-ifsc-1.0-SNAPSHOT.jar -h

image

Executando o programa sem nenhuma argumento será iniciado o modo interativo onde o código a ser compilado pode ser escrito sem necessitar estar em um arquvio salvo. Para compilar o código digitado é necessário digitar --stop e para encerrar o programa é necessário digitar --exit.

java -jar .\projeto-compiladores-ifsc-1.0-SNAPSHOT.jar

image

Para compilar de um arquivo salve em disco, passe o caminho do arquivo como o primeiro argumento do programa. Na pasta exemplos existe um exemplo de jogo da velha.

java -jar .\projeto-compiladores-ifsc-1.0-SNAPSHOT.jar .\exemplos\jogoVelha.txt

image

Por padrão o programa imprime o código LLVM IR compilado em tela, mas também é possivel especificar um arquivo para o código compilado ser salvo em disco com o argumento -o. Exemplo compilando o jogo da velha e salvando em arquivo na pasta exemplos.

java -jar .\projeto-compiladores-ifsc-1.0-SNAPSHOT.jar .\exemplos\jogoVelha.txt -o .\exemplos\jogoVelha.ll

Recomendado sempre salvar os arquivos compilador com a extensão .ll para o compilador do LLVM indentificar corretamente o arquivo. \

image

É possivel também habilitar a visualização da arvore de derivação usada pelo compilador na parte das analiases lexica e sintatica com o argumento -t:

java -jar .\projeto-compiladores-ifsc-1.0-SNAPSHOT.jar -t

image

4. Gerando um executavel

Para criar um executavel é necessario ter o clang na versão 16. É necessário apenas especificar o caminho do código LLVM IR compilado para o clang:

clang-16 .\exemplos\jogoVelha.ll

E então um executavel deverá ser criado e o programa poderá ser executado.

5. Compilando o projeto

Caso deseja compilar o programa, siga os seguintes passos:

  1. Clone o projeto com o comando:

    git clone https://github.com/erikborella/projeto-compiladores-ifsc.git
  2. Abra o projeto projeto-compiladores-ifsc localizado dentro da pasta do projeto clonado na sua IDE de preferencia.
    Captura de tela 2024-03-13 081727

  3. Compile o projeto usando o Maven executando o Goal package:

    1. Exemplo pela IDE NetBeans:
      Captura de tela 2024-03-13 084506 image

    2. Exemplo usando pelo cmd:
      Executar comando:

      mvn package

      image

  4. Depois do processo de compilação for concluido na pasta target do projeto será criado um arquivo chamado projeto-compiladores-ifsc-1.0-SNAPSHOT.jar, esse é o executavel do compilador.
    image

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •