Huis Ontwikkeling Wat is referentiële transparantie? - definitie van techopedia

Wat is referentiële transparantie? - definitie van techopedia

Inhoudsopgave:

Anonim

Definitie - Wat betekent referentiële transparantie?

Referentiële transparantie is een eigenschap van een specifiek onderdeel van een programma of een programmeertaal, met name functionele programmeertalen zoals Haskell en R. Een uitdrukking in een programma is naar verluidt transparant als het kan worden vervangen door de waarde ervan en het resulterende gedrag is hetzelfde als vóór de verandering. Dit betekent dat het gedrag van het programma niet wordt gewijzigd, ongeacht of de gebruikte invoer een referentie is of een werkelijke waarde waarnaar de referentie verwijst.

Techopedia verklaart Referentiële transparantie

Referentiële transparantie heeft zijn wortels in de analytische filosofie, een tak van filosofie die natuurlijke taalconstructies, argumenten en beweringen bestudeert op basis van de methoden van wiskunde en logica en heeft weinig te maken met programmeren, hoewel het is overgenomen door computerwetenschappers.

Het concept is eenvoudig, de 'referent', waar een uitdrukking naar verwijst, kan worden gebruikt om de 'verwijzer' te vervangen zonder de betekenis van de uitdrukking te veranderen. Bijvoorbeeld, de uitspraak "Luke's vader is een slechte man", "Luke's vader" verwijst naar "Darth Vader" in de Star Wars-geschiedenis. Dus de verklaring is verwijzend transparant omdat "Luke's vader" te allen tijde kan worden vervangen door "Darth Vader" en de verklaring zou niet van betekenis veranderen. In de verklaring 'het publiek wist echter pas' The Empire Strikes Back 'dat de vader van Luke eigenlijk Darth Vader is' is geen verwijzend transparante uitdrukking, want als 'Luke's vader' wordt vervangen door 'Darth Vader' wordt de uitdrukking 'de publiek wist pas 'The Empire Strikes Back' dat Darth Vader eigenlijk Darth Vader is ', wat een heel andere betekenis heeft.

Met betrekking tot programmeren is het concept op het eerste gezicht hetzelfde, maar veel filosofen zijn het er niet mee eens dat het concept goed is geïmplementeerd of overgedragen in programmeertalen. Maar in algemene programmering betekent dit eenvoudig dat een uitdrukking kan worden vervangen door de resulterende waarde zonder effect te hebben op het gedrag van het programma. De functie plusOne (x) voegt bijvoorbeeld eenvoudig één toe aan wat de waarde van x is, dus als we weten dat x = 5, kunnen we de functie veilig vervangen door de waarde 6 in een expressie die hetzelfde gedrag oplevert bij het gebruik van plusOne (X). Maar als er een externe variabele in de expressie is die extern wordt bestuurd, bijvoorbeeld in de functie plusY (x) waar Y binnen de functie extern wordt bestuurd, is het resulterende gedrag mogelijk niet hetzelfde - in dit geval is dit niet een doorzichtig transparant uitdrukking.

Wat is referentiële transparantie? - definitie van techopedia