Una referencia circular es una serie de referencias donde el último objeto hace referencia al primero, lo que da como resultado un bucle cerrado.
En idioma
Una referencia circular no debe confundirse con la falacia lógica de un argumento circular . Aunque una referencia circular a menudo no será útil y no revelará información, como dos entradas en el índice de un libro que se refieran entre sí, no necesariamente significa que una referencia circular no sea de utilidad. Los diccionarios, por ejemplo, siempre deben ser en última instancia una referencia circular, ya que todas las palabras de un diccionario se definen en términos de otras palabras, pero un diccionario sigue siendo una referencia útil. Las oraciones que contienen referencias circulares aún pueden ser significativas:
- Su hermano le dio un gatito; su hermana se lo agradeció.
es circular pero no sin sentido. De hecho, se puede argumentar que la autorreferencia es una consecuencia necesaria de la Ley de no contradicción de Aristóteles , un axioma filosófico fundamental . Desde este punto de vista, sin autorreferencia, la lógica y las matemáticas se vuelven imposibles, o al menos, carecen de utilidad. [1] [2]
En programación informática
Las referencias circulares pueden aparecer en la programación de computadoras cuando un fragmento de código requiere el resultado de otro, pero ese código necesita el resultado del primero. Por ejemplo, las dos funciones, posn y plus1 en el siguiente programa de Python comprenden una referencia circular: [ se necesita más explicación ]
def posn ( k : int ) -> int : si k < 0 : devuelve más1 ( k ) devuelve kdef plus1 ( n : int ) -> int : return posn ( n + 1 )
>>> posn ( - 1 ) 0
Las referencias circulares como el ejemplo anterior pueden devolver resultados válidos si tienen una condición de terminación. Si no hay una condición de terminación, una referencia circular conduce a una condición conocida como livelock .
En el estándar ISO SQL, las restricciones de integridad circular se admiten implícitamente dentro de una sola tabla. Entre varias tablas, se permiten restricciones circulares (por ejemplo, claves externas) definiendo las restricciones como diferibles (consulte CREATE TABLE para PostgreSQL y Ejemplos de restricciones DEFERRABLE para Oracle). En ese caso, la restricción se verifica al final de la transacción, no en el momento en que se ejecuta la instrucción DML. Para actualizar una referencia circular, se pueden emitir dos declaraciones en una sola transacción que satisfará ambas referencias una vez que la transacción se haya comprometido.
En hojas de cálculo
Las referencias circulares también ocurren en hojas de cálculo cuando dos celdas requieren el resultado de la otra. Por ejemplo, si el valor de la celda A1 debe obtenerse sumando 5 al valor de la celda B1 y el valor de la celda B1 debe obtenerse sumando 3 al valor de la celda A1, no se pueden calcular valores. (Incluso si las especificaciones son A1: = B1 + 5 y B1: = A1-5, todavía hay una referencia circular. No ayuda que, por ejemplo, A1 = 3 y B1 = -2 satisfagan ambas fórmulas, ya que hay infinitos otros valores posibles de A1 y B1 que pueden satisfacer ambas instancias).
La referencia circular en hojas de trabajo puede ser una técnica muy útil para resolver ecuaciones implícitas como la ecuación de Colebrook y muchas otras, que de otro modo podrían requerir tediosos algoritmos de Newton-Raphson en VBA o el uso de macros. [3]
Se debe hacer una distinción con los procesos que contienen una referencia circular entre aquellos que son incomputables y aquellos que son un cálculo iterativo con un resultado final. Estos últimos pueden fallar en hojas de cálculo que no están equipadas para manejarlos, pero aún así son lógicamente válidos. [2]
Ver también
- Causalidad : cómo un proceso influye en otro
- Informes circulares : un problema en el que una fuente obtiene información de algún lugar, que luego usa esa fuente como referencia
- Problema de detención : problema de determinar si un programa determinado terminará de ejecutarse o continuará para siempre
- Función anidada
- Quine (informática) : un programa de autorreplicación
- Argumento de regresión : un problema en epistemología de que cualquier proposición puede ser cuestionada sin cesar.
- Autorreferencia : una oración, idea o fórmula que se refiere a sí misma.
- Hay un agujero en mi cubo - Canción infantil
Referencias
- ^ Terry A. Osborn , El futuro de la educación de lenguas extranjeras en los Estados Unidos , páginas 31-33, Greenwood Publishing Group, 2002 ISBN 0-89789-719-6 .
- ↑ a b Robert Fiengo, Robert May, Índices e identidad , pp.59-62, MIT Press, 1994 ISBN 0-262-56076-3 .
- ^ "Resuelva ecuaciones implícitas dentro de su hoja de trabajo por Anilkumar M, Dr. Sreenivasan E y Dr. Raghunathan K" . Archivado desde el original el 17 de agosto de 2009 . Consultado el 25 de junio de 2009 ..