Sirkulær referanse

Sirkulær referanse i en graf (markert i farger)

En sirkulær referanse eksisterer når, i en serie referanser, referanser eller referanser, et objekt lenger bak refererer til et forrige, slik at en lukket sløyfe blir opprettet. Vanligvis forårsaker slike sirkulære avhengigheter ofte dilemmaer som henholdsvis i datalogi som fastlås (for engelsk: jamming ).

Generell

Sirkelreferanser er ikke alltid problematisk, men i mange tilfeller de fører til motsetninger eller uløselige problemer (se for eksempel antinomy eller holding problem ).

For eksempel er det uproblematisk å etablere en gjensidig referanse mellom to naboer X og Y i betydningen "X er høyre nabo til Y" og "Y er venstre nabo til X", forutsatt at enten X eller Y også kan gis uavhengig av denne henvisningen.

Tilfeller er problematiske der referansen har som sitt endelige mål bare en referanse som peker tilbake til seg selv. Den gjensidige tildelingen av verdier til objektene er også problematisk. Den selv-referansen kan betraktes som et spesialtilfelle av sirkel referanse i noen henseender.

Formell logikk

Et tilfelle av gjensidig bestemmelse av verdien av en gjenstand ved den annen er gitt i den kort paradoks , for eksempel , eller i den variant av Russells antinomy ( nestet sett ). Sirkulære referanser kan unngås her gjennom strenge hierarkier som forbyder eller til og med forhindrer referanser. En sirkulær referanse er imidlertid ikke det samme som en sirkulær grunn , siden her tildeles sannhetsverdier til objekter ikke via referansen, men snarere gjennom inferensregler.

Grafteori

I grafteori er det en sirkulær avhengighet hvis og bare hvis det er en syklus i en rettet graf .

Informatikk

Sirkulære referanser er også teknisk relevante i datateknikk , som er tilfellet med den Diamond problem , eller når den databaseobjekter i en relasjonsdatabase forholder seg til hverandre, slik at tilstanden til avhengige data er avhengig av rekkefølgen i hvilken de ble registrert , dvs. at dataene ikke senere blir klart definert.

Programmeringsgrensesnitt

Hvis to programmeringsgrensesnitt refererer til hverandre, kan ikke kompilatoren pålitelig kontrollere om det er noen logiske motsetninger uten ytterligere innsats. Sirkulære referanser fører for eksempel ofte til ytterligere arbeid med å administrere data og programdeler eller til og med til programmeringsfeil . I programmeringsspråket C er det kontrollfiler med filtypen ".h". En kontrollfil kan nå inneholde ytterligere kontrollfiler. Hvis "Ah" -filen inneholder "Bh" -filen og "Bh" -filen inneholder "Ch" -filen, er alt i utgangspunktet OK. Imidlertid, hvis "Ch" -filen nå inkluderer "Ah" -filen, er det en sirkulær avhengighet som kompilatoren kanskje ikke klarer å løse eller kanskje ikke engang blir lagt merke til og tatt i betraktning.

Programvarekomponenter

I programvareutvikling er det en sirkulær avhengighet når en komponent A avhenger av en komponent B (A → B) og komponent B i sin tur avhenger av komponent A (B → A). Avhengigheten trenger ikke å være direkte, men kan også dannes indirekte (via den refleksive-transitive konvolutten ), dvs. hvis A er avhengig av B (A → B) og B er avhengig av C (B → C) og C. avhenger igjen av A (C → A), så det er en sirkulær relasjon mellom A og C (A ↔ C).

media

Sirkulært forhold mellom Wikipedia og pressen, basert på en grafikk fra det satiriske magasinet Titanic

Hvis en rapport ikke blir sjekket av forskning fra den opprinnelige kilden, men er vedtatt, kan den gjentatte ganger bli en rapport med referanse til tidligere rapporteringsforekomster, selv om det er en and . Dette mønsteret kan danne grunnlaget for en hoax .

Individuelle bevis

  1. Scott Owens: Kompileringstidinformasjon i programvarekomponenter , spesielt kapittel 2.3.1 Diamantimport og kapittel 4.1.3 Compilation Management , avhandling, University of Utah (mai 2007), åpnet 18. mai 2018
  2. TITANIC Infographic , Startcartoon, desember 2008, titanic-magazin.de