miniatura|Referència circular (en vermell) Una referència circular consta d'una sèrie de referències on l'últim objecte fa referència al primer, donant lloc a un bucle tancat. El concepte matemàtic subjacent és un cicle de teoria de grafs. Explicació

Si definim com , el fet que A fa referència a B. Sí plantegem: , llavors tenim una referència circular, atès que hem definit: , que implica per transitivitat . Aquesta situació planteja un problema ja que implica que no es pot tenir A sense conèixer A.

Fal·làcia de referència circular La Fal·làcia de referència circular ha tingut lloc en moltes ocasions al llarg de la història. Isla Catalana és una petita illa en territori de Mèxic al Golf de Califòrnia enfront de les costes de l'estat de Baixa Califòrnia Sud. L'illa està situada al sud del Golf de Califòrnia i es troba a 25 km de la península de Baixa Califòrnia. Originalment es deia Isla Catalana, però a un cert moment (per error o per mala fe) als arxius dels EUA apareix com Isla Catalina, a partir de llavors, totes les referències que han mirat els arxius dels EUA li han dit Isla Catalina, aquestes referències s'han convertit en circulars ja que es citen les unes a les altres, i de fet, a Google Maps encara apareix amb aquest nom. Sortosament les autoritats mexicanes han fet prevaldre el nom original i el nom oficial a Mèxic és l'original Isla Catalana.

En el llenguatge No s'ha de confondre una referència circular amb la fal·làcia lògica d'argumentació circular. Tot i que sovint una referència circular no és útil i no revela cap informació, no és necessàriament així, com per exemple dues entrades d'un índex d'un llibre que es referencien entre si poden ser molt útils, En el llenguatge, hi ha casos en què una referència circular és útil. Les frases encadenades: El seu germà li va donar un gatet; la seva germana li va donar les gràcies, estableixen una referència circular, però aquesta no manca de significat i és necessària per completar lacció. De fet, es pot argumentar que l'autoreferència és una conseqüència necessària de la Llei de no contradicció d'Aristòtil, que és un axioma filosòfic fonamental. Segons aquest principi, sense autoreferències, la lògica i les matemàtiques es converteixen en impossibles o, si més no, no tenen utilitat.Robert Fiengo, Robert May, Indices and identity, pp.59-62, MIT Press, 1994

En el comerç De vegades, una xarxa comercial planificada incorrectament pot conduir a una referència circular.

Per exemple:

L’Alícia ha de tornar la seva rentadora, és defectuosa i necessita que l'arreglin. Truca a l'empresa i rep instruccions d'en Bob del "Servei d'atenció al client" de que ho sol·liciti a la Carol de "Devolucions i canvis". La Carol, al seu torn li diu a l'Alícia que ho demani al David de "Reclamacions". I en David li diu a l'Alícia que li demani a en Bob del "Servei d'atenció al client", amb el que es crea un cercle viciós. Un cas en què tot el conjunt de referències és inútil perquè cap d'elles pot satisfer la sol·licitud de l'Alicia. El sistema fa seguir a l'Alicia un bucle complet, on cada persona la condueix a una altra persona i, finalment, se la torna a enviar a la primera persona.

En programació informàtica Les referències circulars poden aparèixer en la programació d'ordinadors quan un fragment de codi requereix el resultat d'un altre, però aquest codi necessita el resultat del primer. Per exemple, les dues funcions, "posn" i "plus1" del programa Python següent, inclouen una referència circular: def posn(k: int) -> int: if k < 0: return plus1(k) return k

def plus1(n: int) -> int: return posn(n + 1)>>> posn(-1) 0Les referències circulars com l'exemple anterior poden retornar resultats vàlids si tenen una condició final. Si no hi ha cap condició final, una referència circular condueix a una condició coneguda com interbloqueig.

A la norma ISO, les restriccions d'integritat circular SQL s'admeten implícitament dins d'una sola taula. Entre múltiples taules, es permeten restriccions circulars (per exemple, claus externes) definint les restriccions com a diferibles (vegeu CREAR TABLA per a PostgreSQL i Exemples de restriccions DEFERRABLE per a Oracle). En aquest cas, la restricció es comprova al final de la transacció no en el moment en què s'executa la sentència DML. Per actualitzar una referència circular, es poden emetre dues declaracions en una única transacció que satisfaci ambdues referències un cop s'hagi compromès la transacció.

En fulls de càlcul Les referències circulars també es produeixen en els fulls de càlcul, quan dues cel·les requereixen cadascuna el resultat de l'altra. Per exemple, si el valor de la cel·la A1 s'obté afegint 5 al valor de la cel·la B1 i el valor de la cel·la B1 s'obté afegint 3 al valor de la cel·la A1, no es poden calcular valors de A1 i B1. Fins i tot en algun cas particular com el cas d'una referència circular que especifiqui A1: = B1 + 5 i B1: = A1-5,.no ajuda el fet que, per exemple, A1 = 3 i B1 = -2 satisfacin totes dues instàncies, ja que hi ha infinits valors possibles d'A1 i B1 que les poden satisfer. De fet, en els processos que contenen una referència circular, cal distingir entre els que són incompatibles i els que són un càlcul iteratiu amb un resultat final. És possible que aquests últims fallin en fulls de càlcul no preparats per gestionar-los, però, tanmateix, són lògicament vàlids..

D'altra banda, les referències circulars en fulls de càlcul poden ser una tècnica molt útil per resoldre equacions implícites com l'equació de Colebrook i algunes altres, que altrament podrien requerir tediosos algorismes de Newton-Raphson escrits en VBA o l'ús de macros..

Casos particulars Causalitat: com influeix un procés en un altre Informes circulars: un problema en què una font obté informació d'algun lloc, que després utilitza aquesta font com a referència Problema d'aturada: problema de determinar si un programa determinat s'acabarà d'executar o continuarà per sempre més. Funció imbricada Quine_ (informàtica): programa autoreplicable Argument de regressió: un problema de l'epistemologia que permet proposar una proposició infinita a qualsevol proposició Autoreferència: frase, idea o fórmula que es refereix a si mateixa There's a Hole in My Bucket – cançó infantil

Referències

Enllaços externs

Categoria:Lògica Categoria:Informàtica teòrica