Dil semantiğini programlama, genellikle insanlar hakkında konuşurken duyulmaktadır anlam ve anlam . Aynı gibi görünmüyorlar. Fark ne? İlki operasyonel semantikle, ikincisi ise anlamsal semantikle mi ilişkili? Teşekkürler.
Dil semantiğini programlama, genellikle insanlar hakkında konuşurken duyulmaktadır anlam ve anlam . Aynı gibi görünmüyorlar. Fark ne? İlki operasyonel semantikle, ikincisi ise anlamsal semantikle mi ilişkili? Teşekkürler.
Yanıtlar:
"Anlam" ifadeden daha geniş bir şekilde kullanılır.
Mantık ve felsefeden miras alınan orijinal ikilik, "duyu" ile "anlam" arasındadır (filozofların "referans" olarak adlandırdığı).
Bu ayrım Frege'nin orijinal örneği ile açıklanabilir. "Sabah yıldızı" ve "akşam yıldızı" ifadelerinin aynı nesneye, Venüs gezegeni'ne atıfta bulunduğunu, ancak "sabah yıldızı ve akşam yıldızı aynı gezegendir" cümlesinin aslında bazı bilgiler verdiğini belirtti. bir okuyucuya. Bir isim ifadesinin anlamının, ifade ettiği nesneyi nasıl sunduğu hakkında bir şey de dahil olmak üzere, ifade ettiği gerçek nesnenin ötesine geçebileceğini önerdi.
Benzer şekilde, bir programlama dilinde, ifadesi , herhangi bir istemci programı tarafından tamamen ayırt edilemese de (olması gerekir!) İfadesi aynı değildir . Ancak ayırt edilememelerine rağmen , aynı değiller - iki programı değerlendirirken, makineniz ilk durumda çarpma yapar ve ikincisinde yapmaz.
Bir anlamsal semantik oluştururken, ayırt edilemeyen programların aynı matematiksel nesneyi ifade ettiği --- başvurduğu --- bir dil modeli oluşturmaya çalışırız. Amaç, programların nasıl sunulduğuyla ilgili ayrıntılar hakkında endişelenmek zorunda kalmadan, ifadeler, matematiksel nesneler hakkında mantık yürütebileceğimiz için, programların davranışı hakkında muhakemeyi basitleştirmektir. Bu, bizi ilgilendirmeyen programların anlamı ile ilgilenmekten kaçınmamızı sağlar.
Anlam ve ifadenin operasyonel anlambilim ile ilgili yolu daha karmaşık ve farklıdır. Cevabımı daha sonra kapsayacak şekilde genişletebilirim, ama şimdi kaçmam gerekiyor. :)
EDIT: Tamam, şimdi bu cevabı uzatıyorum.
"Anlatım" ve "referans" arasındaki bağlantı hemen hemen kesindir ve tam anlamıyla anlamsal anlambilimi icat eden insanlar (örneğin, Scott ve Strachey) projelerinin bir parçası olarak felsefi mantıktan fikirleri oldukça bilinçli bir şekilde benimsemişlerdir.
Anlam ve işlemsel anlambilimin birbiriyle nasıl ilişkili olduğunu anlamak için, filozof Michael Dummett'in "anlam teorisi" kavramını ve "anlambilim teorisinden" nasıl farklı olduğunu hatırlamakta fayda var.
Dummett terminolojisinde semantik bir teori , matematiksel nesneleri belirlemek için cümleleri ilişkilendirmenin bileşimsel bir yoludur. Mantıkta, bir cümlenin anlamı onun gerçek değeridir ve bileşenlerinin gerçek değerlerinden belirlenir. Programlama dillerinin anlamsal anlambilimi çok daha çeşitli matematiksel nesneler kullanır, ancak aynı şekilde çalışır - bir program teriminin anlamını, alt terimlerinin anlamı açısından veririz. Dummett terminolojisinde, anlamsal anlambilim, programlama dillerinin semantik teorilerini sunar.
Bir anlam teorisi aynı zamanda cümleleri matematiksel nesnelerle ilişkilendirmenin bileşimsel bir yoludur, ancak ek olarak cümle ile matematiksel nesne arasındaki ilişkiyi neyin haklı kıldığının bir hesabını içerir. Sezgisel matematikçilerin gerçek kavramını nasıl anladıklarını anlamak için bu fikri geliştirdi. Özellikle, mantıksal bağların anlamı hakkında kompozisyonel bir açıklamaları vardı, ancak klasik mantıkçıların yaptığı gibi onlara anlamsal değerler vermediler. Örneğin, sezgisel mantığın Brouwer-Heyting-Kolmogorov hesabında gerçek şu şekilde tanımlanır:
Şimdi, bu tanımın önermeleri ve doğruluk değerlerini bağladığını, ancak bağlantının kanonik bir kanıt sunma olasılığı ile doğrulanması gerektiğini unutmayın.
İşlevsel anlambilim, bu gerekçe kavramıyla resme girer. İşlevsel bir anlam, soyut bir makinenin ne yaptığının bir açıklamasıdır. Bir anlamsal anlambilim verdikten sonra, genel olarak anlamsal anlambilimin işlemsel anlambilime sadık olduğunu göstermek istiyoruz. Bu özelliğe yeterlilik denir (ağabeyi tam soyutlaması ile birlikte ) ve soyut makine durumlarını soyut makinenin azaltılması altında kapalı olan caydırıcı nesnelerle birleştiren bir anlam teorisi vermeye tam anlamıyla gelir.
Bu aslında hikayenin tamamı değil, çünkü burada ortaya koyduğum, gerçekleştirilebilirlik modeli ile operasyonel ve anlamsal yaklaşımların nasıl bağlanacağı. Tür teorileri de kanıt teorik anlambilimine sahip olabilir (gerçekten de Dummett'in en çok ilgilendiği şey buydu), ancak bu yazıda bu bağlantıyı açıklamamıştım.