Ada banyak bahasa populer. Tetapi, para ilmuwan komputer memberi tahu kita bahwa untuk memahami perilaku program dalam bahasa-bahasa itu dengan jelas dan jelas mendebatkan perilaku program (misalnya membuktikan identitas mereka), kita perlu menerjemahkannya ke bahasa lain yang dipahami dengan baik. Mereka menyebut bahasa itu "semantik". Penulis mengusulkan satu dari banyak semantik. Mereka menjelaskan arti dari konstruksi mereka dan bagaimana Anda dapat menerjemahkan bahasa Anda ke dalam bahasa mereka. Begitu Anda melakukannya, semua orang akan memahami program Anda, kata mereka.
Terlihat bagus, namun, saya tidak mengerti sesuatu. Apakah mereka memberi tahu kami bahwa mereka memperkenalkan bahasa lain untuk memahami yang pertama? Mengapa kita memahaminya lebih baik daripada yang asli? Mengapa semantik ini lebih baik dari itu? Mengapa tidak segera mempelajari semantik C alih-alih menemukan bahasa lain, untuk menggambarkan semantik C? Hal yang sama berlaku untuk sintaksis. Mengapa saya tidak mengajukan pertanyaan yang sama tentang sintaksis?
PS Dalam komentar saya mendengar bahwa semantik tidak berarti bahasa lain atau terjemahan ke dalamnya. Tetapi Formal Semantics for VHDL mengatakan bahwa jika Anda memahami sesuatu hanya dengan satu cara maka Anda tidak memahaminya dan "makna makna" dapat ditentukan jika kami menyediakan bahasa dengan mekanisme yang menerjemahkannya ke bahasa lain (dikenal). Artinya, "semantik adalah Hubungan antara sistem formal". Hennessy, dalam Semantik Pemrograman Bahasa , mengatakan bahwa semantik memungkinkan untuk pemrosesan formal dari program "makna", ketika semantik disediakan sebagai BNF atau Diagram Sintaks. Apa itu sistem formal jika bukan bahasa?
PS2 Dapatkah saya mengatakan bahwa sintesis HW dari program HDL yang diberikan ke interkoneksi gerbang, adalah proses ekstraksi semantik? Kami menerjemahkan deskripsi (tingkat tinggi) ke dalam bahasa (tingkat rendah) yang kami pahami, sesudahnya.
Jawaban:
Karena untuk mendefinisikan semantik C Anda memerlukan beberapa jenis bahasa, misalnya bahasa Inggris. Bahasa Inggris bisa ambigu, dan terutama adalah semantik C99.
Gagasan ilmu komputer tentang semantik umumnya merupakan deskripsi matematis dari suatu program, dan deskripsi ini bukan terjemahan. Ada beberapa jenis semantik, yang bisa mengenai hal-hal yang berbeda:
Agak menyedihkan untuk saat ini, memahami secara universal suatu program melalui semantiknya bukanlah hal yang mudah maupun niat dari semuanya. Ini bukan yang pertama karena, well, matematika itu bisa berantakan. Ini bukan yang terakhir karena semantik memberikan memang memberikan deskripsi umum dan tidak ambigu, tetapi tidak digunakan untuk memahami suatu program.
Jika membaca semantik tidak terlalu bermakna, membaca dan menyetujui semantik pada elemen dasar bahasa sangat penting, misalnya untuk menjelaskan secara gamblang bagaimana C'skarya primitif.terus
Kesimpulannya:
Secara teknis tidak, bahasanya adalah matematika. Juga pada dasarnya sama untuk semua bahasa pemrograman, jadi bahkan memperkenalkan bahasa baru, jika sama untuk semua, akan cukup baik.
Karena ini matematika sehingga mungkin lebih sulit untuk dipahami, tetapi cara ini lebih tepat dan lengkap.
Ada karya pada parser terverifikasi, tetapi pertanyaan tentang apa artinya semantik parser tidak sepele.
sumber