É possivel fazer isso?

11 respostas
S

Pretendo criar um software que analise um código fonte passado pelo usuário, mais especificamente exibir a quantidade de iterações ou testes no código.

Se for possível, quais classes devo utilizar?

:smiley:

11 Respostas

Don

Você quer exibir a quantidade de laços e testes?

tipo:

while: 4
for : 2
if : 5

é isso?

se for não é só percorrer o código e fazer um contador para laços e testes?

eliangela

Já ouviu falar em jUnit??
jUnit é um framework de testes de unidade.

http://pt.wikipedia.org/wiki/JUnit
http://www.junit.org/

Don

é se o seu objetivo é apenas fazer testes unitários como o amigo ai em cima disse, já existem frameworks para isso como JUnit e testNG

S

Vamos supor que exista uma caixa de texto no meu programa que receba o seguinte código do usuário:

int contador=0;

        for(int i=0; i<10; i++){
           contador++;
        }

No final o valor da variável contador será 10, que é a quantidade de ciclos do for. A grande questão é como executar o código passado pelo usuário e ter acesso às suas variáveis.

Infelizmente vou ter que fazer isso do zero :oops:

S

Reflection? Manipulação de bytecodes?

O que vocês acham :?:

T

http://www.beanshell.org/

Vem cá, você realmente quer interpretar um código Java, ou você quer analisar um código para obter métricas (tais como “complexidade ciclométrica” e outras medidas que dependem da quantidade de ifs e whiles?)

Se você quer determinar “complexidade ciclométrica”, aconselho a usar um outro software,

http://metrics.sourceforge.net/

(atenção - é para Eclipse 3.1).

lina

Oi,

Isso está me parecendo um Analisador Lexico ou algo do tipo?! rsrs

Tchauzin!

ctdaa

para criar um parser para analisar um código fonte use o JavaCC. (https://javacc.dev.java.net/) . Existem plugins para Eclipse e netbeans. Se não me engano nos tutoriais tem até um exemplo da sintaxe java. No começo é meio complexo para entender a teoria toda. Tem que estudar bastante, mas depois que pega o jeito a ferramenta é realmente útil.

S

thingol:
http://www.beanshell.org/

Vem cá, você realmente quer interpretar um código Java, ou você quer analisar um código para obter métricas (tais como “complexidade ciclométrica” e outras medidas que dependem da quantidade de ifs e whiles?)

Se você quer determinar “complexidade ciclométrica”, aconselho a usar um outro software,

http://metrics.sourceforge.net/

(atenção - é para Eclipse 3.1).

A intenção é análise de complexidade algoritmica, mas o usuário define um marcador, uma linha do código que deseja fazer a contagem. Aquela variável contador é como se fosse um marcador no código. Então, o marcador será incrementado toda vez que o fluxo do programa passar por ele. No final, será exibido o valor do marcador.

Marky.Vasconcelos

Reflection não resolve esse problema.

Já manipulação de bytecode sim, mas não é uma tarefa facil.

Se eu fosse voce eu pegava o código java mesmo colocava a instrução e recompilava. Dai voce pegava o valor da variavel após executar o código.

S

Blz, quais ferramentas devo utilizar?

Criado 24 de agosto de 2009
Ultima resposta 25 de ago. de 2009
Respostas 11
Participantes 7