Fórum Notícias

Código do compilador

 
Picture of João Costa Seco
Código do compilador
by João Costa Seco - sábado, 25 maio 2013, 9:05
 

Bom dia,

Foi adicionado o ficheiro CoreComp_2.hs como actualização ao ficheito CoreComp.hs.

O código foi simplificado em alguns pontos e foi adicionada a utilização do pacote extra HStringTemplate para tornar a geração de código mais legível. Requer a instalação do mesmo, instruções na página da haskell wiki.

Bom trabalho,

João Costa Seco

Picture of João Costa Seco
Re: Código do compilador
by João Costa Seco - domingo, 26 maio 2013, 6:01
 

Boa tarde,

Foi actualizado o código do ficheiro CoreComp_2.hs e foi adicionado uma versão mais completa do compilador, devidamente modularizado e ligado a um parser (CoreCompiler.zip). Foram actualizadas as versões do código de suporte à execução.

Os vossos comentários são bem vindos,

Bom trabalho,

João Costa Seco

Picture of João Costa Seco
Re: Código do compilador
by João Costa Seco - quarta, 29 maio 2013, 4:13
 

Os dois ficheiros disponibilizados foram novamente actualizados para flexibilizar o parser um pouco mais e também para emendar um "include" que não compilaria em Windows e Linux (libc.h -> stdlib.h). Para correrem o compilador (CoreCompiler) devem executar o comando "make" na directoria e terem instalado o haskell e o pacote HStringTemplate.

Em ubuntu os pacotes a instalar serão o "ghc" e o "haskell-platform" com os comandos:

sudo apt-get install ghc
sudo apt-get install haskell-platform

e para instalarem o pacote HStringTemplate devem fazer download daqui, e depois correr o comando na directoria onde estiver o pacote.                                                                

cabal update 
cabal install HStringTemplate-0.7.1.tar.gz

Dada a aproximação do prazo final, executar o compilador torna-se imprescindível para perceber a lógica do código gerado. Quaisquer problemas devem ser identificados e comunicados por email o mais rapidamente possível. Se necessitarem de ajudar, estarei no gabinete amanhã a partir das 10h em horário de atendimento.

Bom trabalho,

João Costa Seco

edit: Comandos verificados pelo Tiago Cardoso. Se mais alguém quiser acrescentar informação já deve poder responder a este tópico.

Picture of João Costa Seco
Re: Código do compilador
by João Costa Seco - quarta, 29 maio 2013, 3:53
 

Esta tarde também estou disponível para responder às vossas questões.

João Costa Seco

Picture of João Costa Seco
Re: Código do compilador
by João Costa Seco - quinta, 30 maio 2013, 3:50
 

Boa tarde,

coloquei a ultima versão do compilador (CoreCompiler) no bitbucket (https://bitbucket.org/costaseco/core-compiler/) que vou continuar a actualizar.

o comando básico para fazer o clone do projeto é:

git clone https://bitbucket.org/costaseco/core-compiler.git

e sempre que for preciso actualizar:

git pull

 

Picture of João Costa Seco
Re: Código do compilador
by João Costa Seco - sexta, 31 maio 2013, 4:16
 

O código C resultante da tradução de closures em funções sem nesting (aqui).

Picture of João Costa Seco
Re: Código do compilador
by João Costa Seco - sexta, 31 maio 2013, 9:59
 

Boa noite,

A versão que está no bitbucket foi actualizada de modo a ser o mais geral possível. Foi modificada a maneira de acesso aos identificadores não locais. Em particular o resultado da compilação do exemplo 

 (fun x:int -> fun y:int -> fun z:int -> x+y+z) 1 2 3 ;;

é compilado corretamente.

A compilação do nó (Id x) foi simplificada e é a mesma para todos os identificadores, mas no header de cada função os identificadores são copiados para registos locais da função. O caso da função de compilação foi comentado com detalhe. Se suscitar dúvidas, coloquem-nas o mais rápido possível.

Obrigado, bom trabalho,

João Costa Seco

Picture of João Costa Seco
Re: Código do compilador
by João Costa Seco - domingo, 2 junho 2013, 10:29
 

publicado mais uma versao com um bugfix no bitbucket.

João Costa Seco