Dalam semantik bahasa pemrograman, sering terdengar bahwa orang berbicara tentang makna dan denotasi . Mereka tampaknya tidak sama. Apa bedanya? Apakah yang pertama dikaitkan dengan semantik operasional sementara yang kedua dengan semantik denotasional? Terima kasih.
10
Jawaban:
"Makna" digunakan dengan cara yang lebih luas daripada denotasi.
Dikotomi asli, yang diwarisi dari logika dan filsafat, adalah antara "pengertian" dan "denotasi" (yang oleh para filsuf disebut "referensi").
Perbedaan ini dapat diilustrasikan dengan contoh asli Frege. Dia mencatat bahwa frasa "bintang pagi" dan "bintang malam" mengacu pada objek yang sama --- planet Venus --- tetapi kalimat "bintang pagi dan bintang malam adalah planet yang sama" sebenarnya menyampaikan beberapa informasi kepada pembaca. Dia menyarankan bahwa makna frase nomina dapat melampaui objek aktual yang ditunjukkannya, termasuk sesuatu tentang bagaimana menyajikan objek yang ditunjukkannya.
Demikian pula, dalam bahasa pemrograman, ekspresi tidak sama dengan ekspresi 56 , meskipun mereka mungkin (seharusnya!) Benar-benar tidak dapat dibedakan oleh program klien mana pun. Tetapi meskipun mereka tidak bisa dibedakan , mereka tidak sama - ketika mengevaluasi dua program, mesin Anda melakukan perkalian dalam kasus pertama, dan tidak dalam yang kedua.8×7 56
Ketika membangun semantik denotasional, kami mencoba membangun model bahasa di mana program yang tidak dapat dibedakan menunjukkan --- merujuk ke --- objek matematika yang sama. Tujuannya adalah untuk menyederhanakan penalaran tentang perilaku program, karena kita dapat bernalar tentang denotasi, objek matematika, tanpa harus khawatir tentang perincian tentang bagaimana program disajikan. Ini memungkinkan kita menghindari keharusan berurusan dengan aspek-aspek makna program yang tidak menarik bagi kita.
Cara rasa dan denotasi berhubungan dengan semantik operasional lebih rumit, dan berbeda. Saya dapat memperluas jawaban saya nanti untuk membahas hal ini, tetapi saya harus menjalankannya sekarang. :)
EDIT: Oke, saya memperluas jawaban ini sekarang.
Hubungan antara "denotasi" dan "referensi" cukup tepat, dan itu tepat karena orang-orang yang menemukan semantik denotasional (misalnya, Scott dan Strachey) secara sadar secara sadar mengambil ide-ide dari logika filosofis sebagai bagian dari proyek mereka.
Untuk memahami bagaimana makna dan semantik operasional berhubungan, akan sangat membantu untuk mengingat gagasan filsuf Michael Dummett tentang "teori makna" dan bagaimana itu berbeda dari "teori semantik".
Dalam terminologi Dummett, teori semantik adalah cara komposisi yang menghubungkan kalimat dengan penentuan objek matematika. Dalam logika, makna kalimat adalah nilai kebenarannya, dan ditentukan dari nilai kebenaran konstituennya. Semantik denotasi bahasa pemrograman menggunakan beragam objek matematika yang jauh lebih luas, tetapi ia bekerja dengan cara yang sama - kami memberikan arti istilah program dalam arti makna subtermnya. Jadi dalam terminologi Dummett, semantik denotasional menawarkan teori semantik bahasa pemrograman.
Sebuah makna-teori juga merupakan cara komposisional yang menghubungkan kalimat dengan objek matematika, tetapi di samping itu berisi catatan tentang apa yang membenarkan hubungan antara kalimat dan objek matematika. Dia mengembangkan ide ini untuk memahami bagaimana ahli matematika intuitionistic memahami gagasan tentang kebenaran. Secara khusus, mereka memiliki akun komposisi tentang makna penghubung logis, tetapi tidak memberi mereka nilai semantik dengan cara yang sama seperti yang dilakukan para ahli logika klasik. Misalnya, dalam akun Brouwer-Heyting-Kolmogorov tentang logika intuitionistic, kebenaran didefinisikan dengan cara berikut:
Sekarang, perhatikan bahwa definisi ini menghubungkan nilai-nilai proposisi dan kebenaran, tetapi hubungan tersebut harus dibenarkan oleh kemungkinan memberikan bukti kanonik.
Semantik operasional memasuki gambaran melalui gagasan pembenaran ini. Semantik operasional hanyalah deskripsi dari apa yang dilakukan mesin abstrak. Setelah kami memberikan semantik denotasional, kami umumnya ingin menunjukkan bahwa semantik denotasional setia kepada semantik operasional. Properti ini disebut kecukupan (bersama dengan abstraksi penuh kakaknya ), dan itu persis sama dengan memberikan makna-teori yang menghubungkan keadaan mesin abstrak dengan objek denotasional, yang ditutup di bawah pengurangan mesin abstrak.
Ini sebenarnya bukan keseluruhan cerita, karena apa yang saya paparkan di sini adalah bagaimana menghubungkan pendekatan operasional dan denotasional melalui model realisasi. Teori tipe juga dapat memiliki semantik teoritik-bukti (memang, prospek inilah yang paling diminati Dummett), tetapi saya belum menjelaskan kaitan itu dalam posting ini.
sumber