Hazel
- Hazel, typed hole'lara sahip eksik programları type check edebilen, düzenleyebilen ve çalıştırabilen canlı bir fonksiyonel programlama ortamıdır
- Anlamsız editör durumu diye bir şey yoktur
Motivasyon
- Programlama sırasında boşluklar, tip hataları, merge conflict'ler gibi nedenlerle biçimsel olarak tamamlanmamış program metinleriyle çok zaman geçirilir
- Mevcut programlama dili tanımları bu tür yapılara resmî bir anlam vermez
- Program editörleri ve araçları karmaşık geçici çözümlere dayanmak zorunda kalır
- Hazel, eksik programları tip teorisine dayanarak modeller
Hazel'in özellikleri
- Elm/ML benzeri bir fonksiyonel programlama dili olarak web tabanlı bir ortamda uygulanmıştır
- Eksik programlar da statik ve dinamik olarak iyi tanımlıdır
- Araştırma ve eğitim platformu olarak kullanılabilir
Haberler ve yayınlar
- Ocak 2025: POPL 2025'te Grove makalesi koşullu kabul aldı
- Ekim 2024: OOPSLA 2024'te büyük dil modelleri ile typed hole'ları birleştiren araştırma sunuldu
- Ekim 2024: HATRA 2024'te Cyrus'un açılış konuşması planlanıyor
- Eylül 2024: NSF tarafından sınıf içi proof assistant aracı geliştirmek için araştırma fonu verildi
- Ocak 2024: POPL 2024'te hata yerelleştirme ve kurtarma üzerine makale sunuldu
- Ekim 2023: OOPSLA 2023'te pattern matching üzerine araştırma sunuldu
- Ocak 2023: NSF CAREER ödülü kazanıldı
Hazel Ekibi
- Hazel, Michigan Üniversitesi Future of Programming Lab tarafından yürütülen açık kaynaklı bir araştırma projesidir
- Soru sormak veya katkıda bulunmak isteyenler ekip lideri Cyrus Omar ile iletişime geçebilir
GN⁺ özeti
- Hazel, eksik programları ele almak için yeni bir yaklaşım öneren ve programlama eğitimi ile araştırmaları için yararlı olan bir platformdur
- Tip teorisini temel alarak eksik programların da çalıştırılabilmesini sağlar ve böylece programlamanın geleceğini keşfetmeye katkıda bulunur
- Benzer özelliklere sahip projeler arasında Elm, ML ve çeşitli programlama eğitim araçları yer alır
1 yorum
Hacker News görüşleri
Eclipse’in öne çıkan özelliklerinden biri, eksik veya bozuk kodu çalıştırabilmesiydi. Bunun nedeni, Java için Eclipse Compiler’ın neredeyse her dosya için bytecode üretebilmesiydi. Bu özellik çok verimli bir ortam sağlıyordu; başka büyük ölçekli sistemlerde uygulanmamış olması üzücü.
Haskell, type hole desteği sunuyor ve bunları tamamlama ya da case split yapma kod eylemleri sağlayan eklentiler var. Agda da type hole’lara sahip ve daha güçlü özellikler sunuyor.
Hazel hakkında soruları yanıtlamaya hazırım; son 4 yıldır Cyrus’un doktora öğrencisi olarak Hazel üzerinde çalışıyorum. Şu anda Hazel’de live programming için moldable projectional interface geliştiriyorum.
Hazel, type hole’larıyla öne çıkan canlı bir fonksiyonel programlama ortamı. İlgili bilgi: Hacker News bağlantısı
Tylr, tile tabanlı düzenlemenin demosu olan yeni bir structure editing yaklaşımı. İlgili bilgi: Hacker News bağlantısı
Hazel’in kod örneklerini beğeniyorum; live editor ve sağ tarafta görünen dokümantasyon hoş. Ama live editor ve type checker’ın ötesinde bir şey sunup sunmadığını, gerçekten program yazılıp yazılamadığını merak ediyorum.
Editör arayüzü çok güzel ve mobilde de iyi çalışıyor. Gerçekten etkileyici.
letbinding sözdiziminininile bitmesi ilginç. Örnek:inanahtar sözcüğünün nedenini bilen var mı?Idris’ten bahsedilmemiş ama bu geliştirme tarzını ilk kez Idris’te görmüştüm. İlgili video: YouTube bağlantısı
Android telefonda playground’u denedim ama tuş girdileri kaynak koda yansımıyor. İmleci dokunarak konumlandırabiliyorum ve sanal klavye görünüyor, ancak yazı girişi yapılamıyor. Bunun bir bug mı yoksa UX sorunu mu olduğunu merak ediyorum.
Hazel’i her zaman sevdim; muhtemelen eğitim için harika bir araç olacaktır. Hazel ile neler yapıldığını merak ediyorum.