2 poin oleh GN⁺ 2026-01-17 | 1 komentar | Bagikan ke WhatsApp
  • 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

 
GN⁺ 2026-01-17
Komentar Hacker News
  • Saat membaca buku ini, saya jadi lebih memahami expression problem dan visitor pattern sebagai solusinya
    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
  • Ada dua diskusi populer sebelumnya tentang buku hebat ini
    Pada 2020 mencatat 777 poin, dan pada 2024 607 poin
  • Buku ini adalah materi yang sangat bagus saat mempelajari bahasa baru
    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 menamatkan buku ini selama liburan musim dingin
    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”
  • Ini benar-benar buku yang sangat bagus
    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
    • Saya bahkan pernah mengganti jilid buku menjadi ring binding
      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
  • Saya sudah tiga kali membeli versi cetak sebagai hadiah
    Sebagus itu bukunya
    • Terima kasih sudah membelikan salinannya :)
  • Ini salah satu materi terbaik untuk mempelajari desain compiler
    Selain itu, fakta bahwa versi web-nya gratis terasa sangat dermawan
    • Hanya saja, kata ‘compiler’ memang tidak muncul secara langsung di judul bukunya
  • Saya sangat menyukai buku ini
    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
    • Mencoba meng-upgrade-nya sendiri ke Java terbaru juga merupakan latihan yang bagus
      Dengan begitu, alat pembuat kode sementara buatan penulis tidak lagi diperlukan
  • Saya penasaran bagaimana cara mem-parsing sintaks yang bergantung pada konteks seperti typedef di C++
    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
    • Lihat saja Lexer hack
      Caranya adalah membuat parser meneruskan state ke lexer, sehingga lexer dapat mengetahui himpunan nama tipe
    • Cara lain adalah menggunakan functional parser
      Misalnya, di library seperti Parsec, notasi ‘do’ memungkinkan hasil dari tiap tahap dibagikan ke parser-parser berikutnya
    • Desain tata bahasa C/C++ memang termasuk yang paling buruk, sehingga masalah seperti ini muncul
      Untungnya Rust dan Go menghindari masalah tersebut, dan dengan perancangan yang hati-hati hal ini sepenuhnya bisa dicegah
  • Saya membagikan beberapa materi untuk orang yang ingin mulai membuat interpreter
    proyek shi dan, jika tertarik ke sisi bahasa C, hacktical-c layak dilihat