- Buku yang membahas proses membuat bahasa skrip yang lengkap sambil mempelajari desain dan implementasi bahasa pemrograman secara langsung
- Menjelaskan langkah demi langkah dari konsep tingkat tinggi seperti parsing, semantik, bytecode, garbage collection hingga implementasi tingkat rendah
- Dimulai dari fungsi
main(), pembaca menulis sendiri bahasa yang mencakup dynamic typing, lexical scope, first-class functions, class, inheritance
- Tersedia dalam 4 format: cetak, eBook, PDF, dan web; versi web memungkinkan seluruh isi dibaca gratis
- Ditulis oleh Robert Nystrom, pengembang bahasa Dart di Google, dan menjadi materi pembelajaran praktis yang penting bagi developer yang tertarik membuat bahasa
Gambaran Buku
- Crafting Interpreters adalah buku tentang cara mengimplementasikan bahasa skrip yang efisien dan berfitur lengkap secara langsung
- Mencakup konsep tingkat tinggi seperti parsing dan semantik, serta detail implementasi tingkat rendah seperti representasi bytecode dan garbage collection
- Disusun agar pembaca menulis kode sendiri dan memahami struktur bahasa secara menyeluruh
- Bahasa yang diselesaikan mendukung sintaks yang kaya, dynamic typing, garbage collection, lexical scope, first-class functions, closure, class, inheritance
- Terdiri dari ribuan baris kode yang ringkas dan cepat, dan seluruh kodenya ditulis sendiri oleh pembaca
Format yang Tersedia
- Buku ini tersedia dalam empat format: Print, eBook, PDF, Web
- Print: 640 halaman, mencakup ilustrasi gambar tangan resolusi tinggi dan tipografi yang rapi
- eBook: CSS menyesuaikan ukuran layar perangkat, dengan dukungan syntax highlighting berwarna dan hyperlink
- PDF: mereproduksi tata letak dan ilustrasi versi cetak sambil meningkatkan portabilitas
- Web: desain responsif dengan seluruh bab dan ilustrasi, bisa dibaca gratis sepenuhnya
Tentang Penulis
- Penulis Robert Nystrom terlibat dalam pengembangan bahasa Dart di Google
- Sebelumnya menangani pengembangan game selama 8 tahun di Electronic Arts
- Juga penulis bestseller Game Programming Patterns, yang bukunya juga tersedia gratis
- Karena terpikat pada pembuatan bahasa, ia mengembangkan beberapa proyek bahasa hobi (Wren, Magpie, Finch, Vigil)
- Aktif melalui blog pribadi dan Twitter(
@munificentbob), serta mengelola mailing list terkait bukunya
Akses dan Jalur Pembelian
- Versi cetak dapat dibeli di toko buku besar seperti Amazon, Barnes & Noble, Book Depository
- eBook tersedia di Kindle, Apple Books, Google Play Books, Smashwords dan lainnya
- Versi PDF dapat dibeli di Payhip, dan tersedia sample PDF gratis untuk diunduh
- Versi web dapat dibaca lengkap secara gratis di situs resminya
1 komentar
Komentar Hacker News
Berkat itu, saya juga akhirnya benar-benar paham konsep pewarisan hierarki kelas (Class Hierarchy Inheritance) yang tidak memerlukan visitor
Dalam bahasa Newspeak, class dapat berisi nested class, sehingga saat diwariskan, nested class tersebut ikut diwariskan juga
Fitur ini dibahas dalam tulisan blog ini sebagai hal yang memungkinkan Free Object Algebras
Referensi: tulisan tentang Expression Problem, situs resmi Newspeak
Pada 2020 mencatat 777 poin, dan pada 2024 607 poin
Karena kita belajar dengan langsung mengimplementasikan berbagai fitur dan pola bahasa
Pada bahasa yang memiliki fitur yang tidak ada di Java, memang sulit menerapkan pola yang mirip, tetapi tantangannya sendiri justru menyenangkan
Saya sangat menyukai gaya penulisan penulis yang santai dan humor yang tersebar di sana-sini
Saya berharap ada lanjutan seperti “Menambahkan type checker ke Lox”
Awalnya saya membeli versi cetak, tetapi karena terlalu besar dan berat, akhirnya saya membeli lagi versi ebook
Membuat catatan dan pencarian jadi jauh lebih praktis
Meski begitu, saat membacanya kadang terasa seperti tersesat di pegunungan :)
Saya juga merekomendasikan buku lain dari penulis yang sama, Game Programming Patterns
Percetakan biasanya bisa melakukannya dengan mudah, dan jauh lebih nyaman digunakan di atas meja
Namun Crafting Interpreters adalah buku yang benar-benar tidak bisa saya buang, jadi saya biarkan tetap seperti aslinya
Sebagus itu bukunya
Selain itu, fakta bahwa versi web-nya gratis terasa sangat dermawan
Hanya saja, saya agak menyayangkan versi Java-nya sudah tua
Akan bagus kalau ada edisi revisi yang mencerminkan fitur baru seperti sealed classes atau exhaustive switch
Dengan begitu, alat pembuat kode sementara buatan penulis tidak lagi diperlukan
Ada pendekatan ala hack dengan menambahkan context stack pada parser berbasis PEG, tetapi masalah peralihan sintaks tetap sulit
persistent data structure atau transactional data structure tampaknya bisa membantu, tetapi saya masih belum menemukan formalisasi yang jelas
Caranya adalah membuat parser meneruskan state ke lexer, sehingga lexer dapat mengetahui himpunan nama tipe
Misalnya, di library seperti Parsec, notasi ‘do’ memungkinkan hasil dari tiap tahap dibagikan ke parser-parser berikutnya
Untungnya Rust dan Go menghindari masalah tersebut, dan dengan perancangan yang hati-hati hal ini sepenuhnya bisa dicegah
proyek shi dan, jika tertarik ke sisi bahasa C, hacktical-c layak dilihat