- Hazel, typed hole’ları merkeze alan web tabanlı canlı bir işlevsel programlama ortamıdır; tamamlanmamış programların da tür denetiminden geçirilmesini, düzenlenmesini ve çalıştırılmasını sağlar
- Boşluk, tür hatası ve birleştirme çakışması gibi eksik durumları hole olarak modelleyerek editörün anlamını yitirdiği bölgeleri azaltmayı hedefler
- Hazel’de oluşturulabilen eksik programlar statik ve dinamik olarak tanımlıdır; eksik türlere ve eksik çalıştırma sonuçlarına sahip olabilir
- Hedef uygulama alanı Elm/ML ailesi işlevsel dillerdir; programlama eğitimi, eşli düzenleme, ispat öğrenimi ve yapay zeka kod tamamlama araştırmaları için temel olarak kullanılır
- University of Michigan’daki Future of Programming Lab tarafından yürütülen açık kaynaklı bir araştırma projesidir; deneysel web derlemesi ve GitHub kaynak kodu herkese açıktır
Hazel’in temel fikri
- Hazel, canlı işlevsel programlama ortamıdır ve typed hole’ları merkeze alır
- Tamamlanmamış programlarla da şu işlemler sürdürülebilir
- tür denetimi
- düzenleme
- çalıştırma
- Amaç, düzenlenmekte olan kod bozuk durumdayken bile anlamlı geri bildirim sunan bir ortam oluşturmaktır
Eksik programları ele alma biçimi
- Genel programlama sürecinde, program metninin biçimsel olarak tamamlanmamış olduğu durumlar sık görülür
- boşluklar
- tür hataları
- birleştirme çakışmaları
- Mevcut programlama dili tanımları bu yapılara biçimsel bir anlam vermediği için, tamamlanmış bazı kod parçalarının davranışını bile canlı geri bildirim olarak ele almak zorlaşır
- Editörler ve araçlar, kod tamamlama, tür denetimi ve kod gezintisini kesintisiz sunabilmek için karmaşık sezgisel yöntemlere bağımlı hale gelir
- Hazel, eksik programları hole içeren programlar olarak modeller
- hole, eksik program bölümünü gösterir
- hatalı bölümleri veya işbirlikçi ortamlardaki çakışan kısımları saran bir zar gibi davranır
- Bu yaklaşım, bağlamsal modal tür kuramı ve kademeli tür kuramına dayanır
Hazel ortamı ve çalıştırma modeli
- Hazel, Elm/ML benzeri işlevsel bir dil için web tabanlı bir programlama ortamı olarak geliştirilmektedir
- Hazel’in düzenleme eylem diliyle üretilebilen tüm eksik programlar statik ve dinamik olarak tanımlıdır
- eksik türlere sahip olabilir
- çalıştırıldığında eksik sonuçlar üretebilir
- Bu özellik sayesinde Hazel, geleceğin programlama ortamları ve programlama eğitimi araştırmaları için bir platform olarak kullanılır
Araştırma vizyonu ve ilgili kaynaklar
- Toward Semantic Foundations for Program Editors: program editörleri için anlamsal temel araştırması vizyonu
- Toward a Live, Rich, Composable, and Collaborative Planetary Compute Engine: büyük ölçekli hesaplamalı bilim için canlı, birleştirilebilir ve işbirlikçi bir hesaplama ortamı vizyonu
- Hazel ile ilgili sunumlar YouTube playlist of Hazel-related talks içinde toplanmıştır
- En güncel demo Topos Institute sunumu üzerinden izlenebilir
Son araştırmalar ve yayın akışı
- 2025’te Hazel çevresindeki araştırmalar çeşitli konferanslarda sunuldu
- Incremental Bidirectional Typing via Order Maintenance: tarayıcı yerleşim sistemlerinden teknik ödünç alarak çift yönlü tür denetimini kademeli hale getiren çalışma; OOPSLA 2025 Distinguished Paper Award aldı
- Syntactic Completions with Material Obligations: Tylr sisteminde görsel olarak somutlaştırılmış yükümlülüklerle sözdizimi hatalarını onarma kuramı ve uygulaması
- A FAIR Case for a Live Computational Commons: büyük ölçekli canlı programlama ortamı etrafında bilimsel çalışmayı yeniden kurgulama önerisi
- Decomposable Type Highlighting for Bidirectional Type and Cast Systems: Hazel’de statik ve dinamik tür hatalarını ayıklamaya yönelik UI araştırması
- Hazel Deriver: A Live Editor for Constructing Rule-Based Derivations: doğal tümdengelim tarzı türetim süreçlerini kurmak için eğitim amaçlı bir araç
- 2024’te tür hatası kurtarma, LLM entegrasyonu, ispat öğrenimi ve iklim bilimi için hesaplama ortamları öne çıkan başlıklardı
- Total Type Error Localization and Recovery with Holes yanlış tür atanmış programlarda hata konumlandırma ve kurtarmayı ele alır; POPL 2024 Distinguished Paper Award aldı
- Statically Contextualizing Large Language Models with Typed Holes, dil sunucusu ile büyük dil modellerini birleştirerek yapay zeka kod tamamlama performansını ciddi ölçüde artıran bir çalışmadır
- NSF, Hazel’i sınıf içi ispat yardımcısına dönüştürmeyi amaçlayan bir araştırma projesini finanse etti
- 2017’den 2023’e uzanan çalışmalar Hazel’in temel hesaplama modeli, yapı düzenleme, canlı değerlendirme ve eğitim destek özelliklerini adım adım geliştirdi
- Hazelnut: A Bidirectionally Typed Structure Editor Calculus, typed hole’ları otomatik ekleyen düzenleme eylemi kalkülüsünü tanımlar
- Live Functional Programming with Typed Holes, typed hole içeren ifadeler için zengin bir işlemsel anlambilim geliştirir
- Program Sketching with Live Bidirectional Evaluation, Hazel Assistant’ın temel bileşenlerinden biri olan Smyth’i ele alır
- Live Pattern Matching with Typed Holes, pattern hole içeren program akıl yürütmesini ele alır ve OOPSLA 2023 Distinguished Paper Award aldı
Kullanım ve katkı
- Hazel, doğrudan deneyebileceğiniz bir web derlemesi sunar
- Kaynak kodu GitHub’da açıktır
- Hazel, University of Michigan’daki Future of Programming Lab (FP Lab) tarafından yürütülen açık kaynaklı bir araştırma projesidir
- Katkı veya sorular için ekip lideri Cyrus Omar ile iletişime geçilebilir
Henüz yorum yok.