Saya mengerti bahwa model klasik dari lambda-papers tidak berlaku untuk Python.
Dan penutupan bukan model matematika dari implementasi sistem Python.
Jadi model mana itu?
Saya mengerti bahwa model klasik dari lambda-papers tidak berlaku untuk Python.
Dan penutupan bukan model matematika dari implementasi sistem Python.
Jadi model mana itu?
Jawaban:
Perbedaan utama antara Python dan model dari makalah klasik pada kalkulus lambda adalah bahwa Python adalah bahasa multi-paradigma. Sebagian besar makalah yang mempertimbangkan kalkulus lambda menganggap bahasa fungsional murni, tanpa kerumitan yang terlibat dengan menambahkan paradigma lain (seperti OOP atau pemrograman logis).
Dari pertanyaan dan komentar Anda, saya menganggap Anda tertarik pada dasar-dasar bahasa multi-paradigma tersebut. Dalam hal itu, saya bisa sangat menyarankan Konsep, Teknik, dan Model Pemrograman Komputer oleh Peter van Roy dan Seif Haridi . Buku ini terutama tentang bahasa Mozart / Oz, yang dengan sendirinya merupakan bahasa yang agak akademis. Namun, buku ini dengan sangat jelas menunjukkan bagaimana memulai dengan bahasa inti yang sangat kecil dan membangun pemrograman berorientasi objek, fungsional, dan logika di atasnya (dan semua dalam bahasa inti yang sama).
Adapun model matematika yang sebenarnya, sebagian besar bahasa pemrograman hanya memiliki spesifikasi informal atau semi formal. Jarang Anda menemukan teori yang tepat seperti lambda calculus sebagai landasannya. Ada banyak model matematika yang berbeda yang telah ditemukan dan lebih atau kurang berlaku. Yang menarik adalah bahwa ada perbedaan umum dalam pendekatan yang berbeda tentang bagaimana pemrograman semantik dimodelkan: semantik dapat digambarkan secara denotasional, operasional, atau aljabar. Jika Anda ingin melangkah lebih dalam, maka membaca sedikit tentang Unifying Theories of Programming adalah awal, meskipun yang sulit dengan kurva belajar yang curam.