Skip to content
This repository has been archived by the owner on Mar 12, 2018. It is now read-only.

Erro de Compilação em resultados previsíveis pelo compilador Java #88

Closed
noschang opened this issue Feb 23, 2017 · 4 comments
Closed

Comments

@noschang
Copy link
Contributor

Quando o usuário escreve um laço enquanto com uma condição cujo resultado é previsível pelo compilador o programa gera um erro de compilação.

Ex.:

enquanto (verdadeiro)
{
     ...
}

escreva("Olá mundo")

Este código gera erro, pois o compilador Java detecta que a condição sempre será verdadeira e consequentemente o laço é infinito. Logo, todo código após o enquanto nunca será executado e isso gera um UnreachebleCodeError no compilador.

Outro exemplo:

enquanto (2 < 3)
{

}
@AlissonSteffens
Copy link
Member

e isso não está certo?

@noschang
Copy link
Contributor Author

Está certo do ponto de vista lógico.
Porém, o Portugol Studio só apresenta uma mensagem genérica: "Erro ao compilar".

Temos duas opções, ou damos um bypass nessa verificação e ignoramos o erro ou exibimos uma mensagem melhor para o usuário, do tipo:

"Linha: X, Coluna: Y. O laço 'enquanto' vai executar infinitamente, pois sua condição é sempre verdadeira. Todos os comandos a partir da linha Z nunca serão executados."

@rytix
Copy link
Contributor

rytix commented Jun 9, 2017

Esta Issue é um pouco mais séria, Todos os eventos que o compilador Java consegue prever e o Portugol Studio não irão gerar um Erro de Compilação.
Exemplos:

programa{

    funcao inicio()
    {
        inteiro x = 5
        escolha(x){
        	caso 1: 
        	pare
        	retorne
       }
    }
}
programa{

    funcao inicio()
    {
        enquanto (verdadeiro){
        	
        }
        escreva("oi")
    }
}
programa{

    funcao inicio()
    {
        	retorne
        	retorne
    }
}

@rytix rytix changed the title Laço "Enquanto" dá erro em algumas ocasiões Erro de Compilação em resultados previsíveis pelo compilador Java Jun 9, 2017
@Rafaelfcosta
Copy link

This issue was moved to UNIVALI-LITE/Portugol-Studio#312

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants