Indirection

In computer programming, an indirection (also called a reference) is a way of referring to something using a name, reference, or container instead of the value itself. The most common form of indirection is the act of manipulating a value through its memory address. For example, accessing a variable through the use of a pointer. A stored pointer that exists to provide a reference to an object by double indirection is called an indirection node. In some older computer architectures, indirect words supported a variety of more-or-less complicated addressing modes.

Another important example is the domain name system which enables names such as en.wikipedia.org to be used in place of network addresses such as 208.80.154.224. The indirection from human-readable names to network addresses means that the references to a web page become more memorable, and links do not need to change when a web site is relocated to a different server.

Overview

A famous aphorism of Butler Lampson that is attributed to David Wheeler goes: "All problems in computer science can be solved by another level of indirection" (the "fundamental theorem of software engineering").[1] This is often deliberately mis-quoted[by whom?] with "abstraction layer" substituted for "level of indirection". A corollary to this aphorism, and the original conclusion from Wheeler, is "...except for the problem of too many layers of indirection."

A humorous Internet memorandum, RFC 1925, insists that:

(6) It is easier to move a problem around (for example, by moving the problem to a different part of the overall network architecture) than it is to solve it.

(6a) (corollary). It is always possible to add another level of indirection.

Object-oriented programming makes use of indirection extensively, a simple example being dynamic dispatch. Higher-level examples of indirection are the design patterns of the proxy and the proxy server. Delegation is another classic example of an indirection pattern. In strongly typed interpreted languages with dynamic data types, most variable references require a level of indirection: first the type of the variable is checked for safety, and then the pointer to the actual value is dereferenced and acted on.

Recursive data types are usually implemented using indirection, because otherwise if a value of a data type can contain the entirety of another value of the same data type, there is no limit to the size a value of this data type could need.

When doing symbolic programming from a formal mathematical specification the use of indirection can be quite helpful. To start with a simple example the variables x, y and z in an equation such as can refer to any number. One could imagine objects for various numbers and then x, y and z could point to the specific numbers being used for a particular problem. The simple example has its limitation as there are infinitely many real numbers. In various other parts of symbolic programming there are only so many symbols. So to move on to a more significant example, in logic the formula α can refer to any formula, so it could be β, γ, δ, ... or ηπ, ςσ, ... When set-builder notation is employed the statement Δ={α} means the set of all formulae — so although the reference is to α there are two levels of indirection here, the first to the set of all α and then the second to a specific formula for each occurrence of α in the set Δ.

See also

References

  1. ^ Spinellis, Diomidis (2007). "Another level of indirection". In Oram, Andy; Wilson, Greg (eds.). Beautiful Code: Leading Programmers Explain How They Think. Sebastopol, California: O'Reilly and Associates. pp. 279–291.

Read other articles:

Salah satu usulan Federasi Intermarium. Warna hijau muda adalah wilayah Ukraina dan Belarus yang berada di bawah kendali Uni Soviet setelah tahun 1921. Międzymorze (pengucapan bahasa Polandia: [mʲɛnd͡zɨˈmɔʐɛ]), juga dikenal dengan istilah Latin Intermarium, adalah sebuah rencana yang dicetuskan oleh pemimpin Polandia Józef Piłsudski setelah berakhirnya Perang Dunia I. Rencana ini ingin mendirikan sebuah federasi[1][2][3][4][5] di negara-...

 

 

Sculpture in Washington, D.C., U.S. For other uses, see Victims of Communism Memorial (disambiguation). Victims of Communism MemorialGoddess of Democracy replica38°53′54″N 77°00′43″W / 38.8984°N 77.0120°W / 38.8984; -77.0120Location Washington, D.C.DesignerThomas MarshTypeStatueBeginning dateSeptember 27, 2006Opening dateJune 12, 2007Websitevictimsofcommunism.org/memorial The Victims of Communism Memorial is a memorial in Washington, D.C. located ...

 

 

Nomagliocomune Nomaglio – VedutaFontana in pietra LocalizzazioneStato Italia Regione Piemonte Città metropolitana Torino AmministrazioneSindacoEllade Giacinta Peller (lista civica) dall'8-6-2009 (3º mandato dal 27-5-2019) TerritorioCoordinate45°32′10.18″N 7°51′37.14″E / 45.53616°N 7.860317°E45.53616; 7.860317 (Nomaglio)Coordinate: 45°32′10.18″N 7°51′37.14″E / 45.53616°N 7.860317°E45.53616; 7.860317 ...

Henrique Nazionalità  Brasile Altezza 185[1] cm Peso 73 kg Calcio Ruolo Difensore Squadra svincolato Carriera Giovanili 1998-2006 Coritiba Squadre di club1 2006-2007 Coritiba58 (6)2008 Palmeiras5 (1)2008 Barcellona0 (0)2008-2009→  Bayer Leverkusen27 (0)2009-2011→  Racing Santander57 (3)2011-2014 Palmeiras77 (5)[2]2014-2016 Napoli22 (1)2016-2018 Fluminense65 (1)[3]2018-2019 Corinthians39 (2)[4]2019-202...

 

 

National constitutional law For the previous constitution, see Persian Constitution of 1906. Constitution of theIslamic Republic of IranOverviewJurisdictionIslamic Republic of IranCreated24 October 1979Ratified3 December 1979Date effective3 December 1979Government structureBranches3Head of stateSupreme LeaderChambersIslamic Consultative AssemblyGuardian CouncilExecutivePresident led GovernmentPrime Minister (defunct)JudiciaryJudicial system of the Islamic Republic of IranSupreme Court of...

 

 

Airline Aryan Cargo Express IATA ICAO Callsign YE[1] ACQ[1] ACE CARGO[1] FoundedDecember 2005[citation needed]Commenced operations2010Ceased operationsDecember 2010HubsIndira Gandhi International AirportFleet size1Destinations5HeadquartersNew Delhi, IndiaWebsitewww.acex.in Aryan Cargo Express was a cargo airline based in New Delhi, India.[2] It operated a single Airbus A310-300F. Plans for the introduction of an MD-11F[3] did not materialize. ...

Chemical compound 17α-MethylprogesteroneClinical dataOther names17α-MP; 17α-Methylpregn-4-ene-3,20-dioneDrug classProgestin; ProgestogenIdentifiers IUPAC name (8R,9S,10R,13S,14S,17S)-17-acetyl-10,13,17-trimethyl-2,6,7,8,9,11,12,14,15,16-decahydro-1H-cyclopenta[a]phenanthren-3-one CAS Number1046-28-2 YPubChem CID101951ChemSpider92105UNIITYW2G0D7NCCompTox Dashboard (EPA)DTXSID30909052 Chemical and physical dataFormulaC22H32O2Molar mass328.496 g·mol−13D model (JSmol)Interactive i...

 

 

Pub and road junction in Leytonstone, London Green ManThe pub in 2008General informationTypePublic houseLocationLeytonstone, London, EnglandCoordinates51°34′14″N 0°0′56″E / 51.57056°N 0.01556°E / 51.57056; 0.01556Construction started1668 (1668) The Green Man is a pub and road junction on High Road, Leytonstone, London. The pub has been rebranded as part of the O'Neill's chain. The current 1920s building replaced an earlier public house, close to the or...

 

 

سباق تتابع جري سباق تتابع سباحة سباق التتابع[1] من المسابقات في ألعاب القوى، يتألف الفريق في هذا النوع من المسابقات عادة من أربعة لاعبين، وتكون عادة إما بالركض أو السباحة.[2][3][4] أما في الجري فيتألف كل منها من أربعة عدائين يركض كل منهم المسافة المقررة سواء أك�...

القرن العشرون هو الفترة الزمنية الممتدة من اليوم الأول لعام 1901 إلى اليوم الأخير من عام 2000 حسب التقويم الميلادي. ألفية: ألفية 2 قرن: القرن 19 القرن 20 القرن 21 قائمة العقود: عقد 1900 عقد 1910 عقد 1920 عقد 1930 عقد 1940 عقد 1950 عقد 1960 عقد 1970 عقد 1980 عقد 1990 تصانيف: مواليد – وفيات تأسيسا...

 

 

American college football season 1969 Washington Huskies footballConferencePacific-8Record1–9 (1–6 Pac-8)Head coachJim Owens (13th season)Captains Ken Ballenger (G) Lee Brock (DT) Home stadiumHusky StadiumSeasons← 19681970 → 1969 Pacific-8 Conference football standings vte Conf Overall Team W   L   T W   L   T No. 3 USC $ 6 – 0 – 0 10 – 0 – 1 No. 13 UCLA 5 – 1 – 1 8 – 1 – 1 No. 19 Stanford ...

 

 

Chronologies Données clés 1623 1624 1625  1626  1627 1628 1629Décennies :1590 1600 1610  1620  1630 1640 1650Siècles :XVe XVIe  XVIIe  XVIIIe XIXeMillénaires :-Ier Ier  IIe  IIIe Chronologies thématiques Art Architecture, Arts plastiques (Dessin, Gravure, Peinture et Sculpture), (), Littérature (), Musique (Classique) et Théâtre   Ingénierie (), Architecture, () et ()   Politique Droit et ()   Religion (,)  ...

American self-help writer Kathy FrestonFreston at the Farm Sanctuary 25th Anniversary Gala in New York CityBorn1964 or 1965 (age 59–60)[1]United StatesOccupationsAuthorWellness ActivistSpouse Tom Freston ​(divorced)​Websitekathyfreston.com Kathy Freston is an American author and promoter of plant-based nutrition. Her books include The Lean, Veganist, Quantum Wellness, Clean Protein and 72 Reasons to Be Vegan. Biography Early life Freston grew...

 

 

United States government program An organic vegetable farm in Montana participating in EQIP The Environmental Quality Incentives Program (EQIP) is a United States government program designed to assist farmers in improving environmental quality, particularly water quality and soil conservation. Congress established the program in the 1996 farm bill to provide primarily cost-sharing assistance, but also technical and educational assistance, aimed at promoting production and environmental qualit...

 

 

County in Vermont, United States Rutland County redirects here. For the county in England, see Rutland. County in VermontRutland CountyCountyRutland CourthouseLocation within the U.S. state of VermontVermont's location within the U.S.Coordinates: 43°34′48″N 73°02′12″W / 43.58009°N 73.03661°W / 43.58009; -73.03661Country United StatesState VermontFounded1781Named forRutland, MassachusettsShire TownRutlandLargest cityRutlandArea • Total9...

Potret Claude de Guise oleh Jean Clouet Claude de Lorraine atau Claude de Guise (20 Oktober 1496 – 12 April 1550) merupakan seorang bangsawan dan jenderal Prancis. Dia menjabat sebagai Adipati Guise pertama pada 1528 dan pendiri Wangsa Guise. Keturunannya akan memimpin partai Katolik dalam Perang Agama Prancis. Claude lahir di Château Custines, putra kedua René II, Adipati Lorraine, dan Philippe de Gueldres.[1] Dia juga adalah saudara Kardinal Lorraine, orang kesayangan utama Fran...

 

 

Longest river of Central California, United States San Joaquin RiverSan Joaquin River near VernalisMap of the San Joaquin River watershedEtymologyc. 1805-1808 by Gabriel Moraga for Saint Joachim, father of Mary, the mother of JesusNative nameRío San Joaquín (Spanish)LocationCountryUnited StatesStateCaliforniaCitiesFresno, Modesto, StocktonPhysical characteristicsSourceThousand Island Lake[1] • locationAnsel Adams Wilderness, Sierra Nevada • ...

 

 

Municipality in Åland, FinlandLumparlandMunicipalityLumparlands kommun Coat of armsLocation of Lumparland in FinlandLumparlandLocation in ÅlandCoordinates: 60°07′N 020°15.5′E / 60.117°N 20.2583°E / 60.117; 20.2583Country FinlandRegionÅlandSub-regionÅland Countryside sub-regionGovernment • Municipal managerMattias JansrydArea (2018-01-01)[1] • Total87.04 km2 (33.61 sq mi) • Land36.35 ...

This biography of a living person needs additional citations for verification. Please help by adding reliable sources. Contentious material about living persons that is unsourced or poorly sourced must be removed immediately from the article and its talk page, especially if potentially libelous.Find sources: Geoff Kresge – news · newspapers · books · scholar · JSTOR (July 2011) (Learn how and when to remove this message) Geoff KresgeGenres Street punk...

 

 

Đối với sông Delaware trong tiểu bang Kansas, xem sông Delaware (Kansas). Sông Delaware Sông Delaware phía trên đèo nước Delaware Quốc gia Hoa Kỳ Các bang New York, New Jersey, Pennsylvania, Delaware Các phụ lưu  - tả ngạn Sông Neversink, Sông Musconetcong  - hữu ngạn Sông Lehigh, Sông Schuylkill City Port Jervis, NY, Easton, PA, Trenton, NJ, Camden, NJ, Philadelphia, PA, Wilmington, DE Nguồn Nhánh tây  - Vị trí Núi ...