¿Qué es exactamente una sombra, en el análisis estático del código?

Traté de buscar la respuesta a esto! Hay muchos papeles que hablan de Shadows. ¿Qué es esto exactamente?

preguntado el 27 de noviembre de 13 a las 18:11

1 Respuestas

Suponiendo que está hablando de sombra con nombres, el Especificación del lenguaje Java dice esto

Algunas declaraciones pueden estar sombreadas en parte de su alcance por otra declaración del mismo nombre, en cuyo caso no se puede usar un nombre simple para referirse a la entidad declarada.

y da este ejemplo

class Test {
    static int x = 1;
    public static void main(String[] args) {
        int x = 0;
        System.out.print("x=" + x);
        System.out.println(", Test.x=" + Test.x);
    }
}

donde x es un static variable de clase y una variable local. La variable local se utilizará si x se hace referencia en el método a la variable local x se define en. Si quisiera hacer referencia a la variable de clase, necesitaría usar

Test.x

Las herramientas de análisis pueden encontrar cosas como esta.

respondido 27 nov., 13:18

Umm... no, no me refería a las sombras de Scope que ocurren en los idiomas... pero estoy hablando del término Shadow que ocurre en Program Analysis. - Shivam Max

@ShivamMax ¿Puedes vincular algún artículo que hable sobre eso? - Sotirios Delimanolis

¡En realidad aparece en muchos artículos de investigación! - Shivam Max

@ShivamMax Si no tiene una referencia, no puedo ayudarlo. no he oído hablar shadow en ese contexto. - Sotirios Delimanolis

De acuerdo ... ¡Intentaré vincular un PDF que diga al respecto! ¡Gracias de todos modos! :) - Shivam Max

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.