Apa model matematika dari kelas Python?


10

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?


Jika saya tahu modelnya, saya pikir saya bisa menemukan buku yang terperinci (seperti sicp untuk lisps), yang akan menjelaskan proses membangun sistem dari awal.
alinsoar

4
Terkait: stackoverflow.com/q/2469824 . Saya menghapus pertanyaan kedua Anda dari isi postingan Anda (Bagaimana membangun sistem Python dari awal), karena tidak dapat dijawab di sini. Jika Anda ingin tahu bagaimana mengembangkan bahasa pemrograman yang berfungsi, Anda harus melihat ke dalam hal-hal seperti parser, lexers dan compiler.
Robert Harvey

Terima kasih! Pertanyaan kedua setara dengan yang pertama! Jika saya tahu modelnya, saya dapat menemukan dokumen yang menggambarkannya secara praktis, sehingga menunjukkan bagaimana membangun kernel sistem!
alinsoar

Pertanyaan bagus !!! :)
Maxood

Jawaban:


7

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.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.