2 poin oleh GN⁺ 2024-11-02 | Belum ada komentar. | Bagikan ke WhatsApp
  • Hazel adalah lingkungan pemrograman fungsional live berbasis web yang berpusat pada typed holes, memungkinkan program yang belum selesai tetap diperiksa tipenya, dimanipulasi, dan dijalankan
  • Intinya adalah memodelkan kondisi tidak lengkap seperti bagian kosong, type error, dan konflik merge sebagai hole, sehingga mengurangi bagian tempat editor kehilangan makna
  • Program tidak lengkap yang dapat dibuat di Hazel didefinisikan secara statis dan dinamis, serta dapat memiliki tipe yang tidak lengkap dan hasil eksekusi yang tidak lengkap
  • Target implementasinya adalah bahasa fungsional keluarga Elm/ML, dan digunakan sebagai fondasi untuk riset pendidikan pemrograman, penyuntingan kolaboratif, pembelajaran pembuktian, dan penyelesaian kode AI
  • Ini adalah proyek riset open source yang dipimpin oleh Future of Programming Lab di University of Michigan, dengan build web untuk dicoba dan kode sumber GitHub yang tersedia publik

Ide inti Hazel

  • Hazel adalah lingkungan pemrograman fungsional live yang disusun di sekitar typed holes
  • Program yang belum selesai pun dapat terus dikerjakan untuk hal-hal berikut
    • Pemeriksaan tipe
    • Manipulasi
    • Eksekusi
  • Tujuannya adalah menciptakan lingkungan yang tetap memberikan umpan balik bermakna meski kode yang sedang diedit berada dalam kondisi rusak

Cara menangani program yang tidak lengkap

  • Dalam proses pemrograman pada umumnya, teks program sering berada dalam kondisi yang belum lengkap secara formal
    • Bagian kosong
    • Type error
    • Konflik merge
  • Definisi bahasa pemrograman yang ada tidak memberi makna formal pada struktur semacam ini, sehingga bahkan perilaku sebagian kode yang sudah selesai pun sulit ditangani sebagai umpan balik live
  • Editor dan tool akhirnya bergantung pada heuristik yang rumit agar dapat menyediakan code completion, pemeriksaan tipe, dan navigasi kode tanpa terputus
  • Hazel memodelkan program yang tidak lengkap sebagai program dengan hole
    • Hole merepresentasikan bagian program yang hilang
    • Hole bertindak seperti selubung yang membungkus bagian yang salah atau bagian konflik dalam lingkungan kolaboratif
  • Pendekatan ini didasarkan pada teori tipe modal kontekstual dan teori tipe gradual

Lingkungan Hazel dan model eksekusi

  • Hazel sedang diimplementasikan sebagai lingkungan pemrograman berbasis web untuk bahasa fungsional yang mirip Elm/ML
  • Semua program tidak lengkap yang dapat dibuat dengan bahasa aksi penyuntingan Hazel didefinisikan secara statis dan dinamis
    • Dapat memiliki tipe yang tidak lengkap
    • Saat dijalankan, dapat menghasilkan hasil yang tidak lengkap
  • Berkat karakteristik ini, Hazel digunakan sebagai platform untuk riset lingkungan pemrograman masa depan dan pendidikan pemrograman

Visi riset dan materi terkait

Riset terbaru dan alur publikasi

Penggunaan dan kontribusi

Belum ada komentar.

Belum ada komentar.