Referans şeffaflığı

Referans şeffaflığı, bilgisayar programlarının bazı bölümlerinin bir özelliğidir. Bir programın bir parçası, programın davranışını değiştirmeden geri verdiği değerle değiştirilebiliyorsa "referanssal olarak şeffaf" olarak adlandırılır. Referanssal olarak şeffaf bir fonksiyon saf olmalıdır - aynı girdiyi alırsa her zaman aynı çıktıyı vermelidir ve herhangi bir yan etkiye sahip olmamalıdır - programın bir değeri geri vermekten başka bir eylem gerçekleştiren parçaları. Referanssal şeffaflığın tersi referanssal opaklıktır.

Matematikte tüm fonksiyonlar referans olarak şeffaftır, çünkü matematiksel bir fonksiyon sadece değer alabilir ve bir değer verebilir. Programlamada bu her zaman doğru değildir; bir fonksiyon yılın hangi günü olduğunu da bulabilir ya da ekrana bir mesaj yazdırabilir. Bu farktan dolayı, bazı insanlar programlamada fonksiyonlar için prosedürler gibi başka isimler kullanırlar.

Referans şeffaflığı, programcıların ve derleyicilerin kodu bir yeniden yazma sistemi olarak düşünmelerini sağlar - bir ifadeyi alan ve başka bir şeyle değiştiren bir şey. Bu, aşağıdaki gibi çeşitli görevlerde yardımcı olabilir:

  • Programın veya kodun doğru olduğunu, yani ne olursa olsun tam olarak yapması gerekeni yaptığını kanıtlamak.
  • Bir algoritmayı daha basit hale getirmek.
  • Kodun olması gerekeni yaptığından emin olurken kodu değiştirmeyi kolaylaştırmak.
  • Kodun daha hızlı veya daha az bellek kullanacak şekilde çalıştırılması.

Son görevi yerine getirmenin çeşitli yolları vardır - en bilinenleri memoization (ilk seferden sonra cevapları kaydetme), ortak alt ifade eleme (kodun aynı olan iki parçasını birleştirmeye değip değmeyeceğini anlama) , tembel değerlendirme (kod gerçekten ihtiyaç duyana kadar cevabı bulmama) ve paralelleştirmedir (aynı anda birden fazla problem üzerinde çalışma).

Sorular ve Yanıtlar

S: Referans şeffaflığı nedir?


C: Referanssal şeffaflık, bilgisayar programlarının bir bölümünün, programın davranışını değiştirmeden geri verdiği değerle değiştirilebildiği bir özelliktir.

S: Referans şeffaflığının tersi nedir?


C: Referansa dayalı şeffaflığın tersi referansa dayalı opaklıktır.

S: Matematikteki tüm fonksiyonlar referanssal olarak şeffaf mıdır?


C: Evet, matematikteki tüm fonksiyonlar referanssal olarak şeffaftır çünkü matematiksel bir fonksiyon sadece değer alabilir ve bir değer çıkarabilir.

S: Referanssal şeffaflık programcılara ve derleyicilere nasıl yardımcı olur?


C: Referans şeffaflığı, programcıların ve derleyicilerin kodu bir yeniden yazma sistemi olarak düşünmelerini sağlar - bir ifadeyi alan ve başka bir şeyle değiştiren bir şey. Bu, programın veya kodun doğru olduğunu kanıtlamak, bir algoritmayı daha basit hale getirmek, yapması gerekeni yaptığından emin olurken kodu değiştirmeyi kolaylaştırmak ve kodun daha hızlı çalışmasını veya daha az bellek kullanmasını sağlamak gibi görevlere yardımcı olur.

S: Kodun daha hızlı çalışmasını veya daha az bellek kullanmasını sağlamak için kullanılan bazı teknikler nelerdir?


C: Kodun daha hızlı çalışmasını veya daha az bellek kullanmasını sağlamak için kullanılan bazı teknikler arasında memoization (ilk seferden sonra cevapları kaydetme), ortak alt ifade eleme (kodun aynı olan iki parçasını birleştirmeye değip değmeyeceğini anlama) , tembel değerlendirme (kod gerçekten ihtiyaç duyana kadar cevabı bulmama) ve paralelleştirme (aynı anda birden fazla problem üzerinde çalışma) yer alır.

S: Programlamadaki fonksiyonlar arasında matematiktekilere kıyasla bir fark var mı?


C: Evet, programlamadaki fonksiyonlar arasında matematiktekilere kıyasla bir fark vardır -Programlamada, bir fonksiyon yılın hangi günü olduğunu da bulabilir veya ekrana bir mesaj yazdırabilir, oysa bu matematiksel fonksiyonlarla mümkün değildir.

AlegsaOnline.com - 2020 / 2023 - License CC3