Ana Sayfa

ts-Wolfram Yorumlayıcısında OOP'den Vazgeçiş ve Yeni Geliştirmeler

1 dk okuma

ts-Wolfram yorumlayıcısının geliştiricisi, projesindeki son değişiklikleri detaylandırıyor. Başlangıçta nesne yönelimli programlama (OOP) yaklaşımıyla tasarlanan yorumlayıcı, estetik kaygılar ve veri tipleri arasındaki dönüşüm boru hatları felsefesine daha uygun bir yapı arayışı nedeniyle büyük bir revizyondan geçti. Geliştirici, Node arayüzünden türetilmiş Integer, Symbol ve Form gibi sınıf tabanlı yapıları terk ederek, Expr tipinde birleşim tiplerini (Integer | Symbol | Form | String) içeren cebirsel veri tiplerine geçiş yaptı. Bu değişiklik, instanceof çağrıları gibi birçok kod parçasını sadeleştirerek genel kod kalitesini artırdı ve daha temiz bir yapı sağladı.

Yapılan bir diğer önemli geliştirme, yorumlayıcının "kernel" ve "kullanıcı alanı" kodlarını ifade değerlendirmesinde karıştırma yeteneği oldu. Daha önce bir fonksiyon ya Typescript'te ya da Mathematica kodunda tanımlanabiliyordu, ikisi birden değil. Bu kısıtlama, Times[Minus[a], Minus[b]] gibi ifadelerin Times[a, b]'ye dönüştürülmesi gibi kullanışlı dönüşüm kurallarının önceden tanımlanmasını engelliyordu. Yeni destek sayesinde, Times[Minus[x_], Minus[y_]] := Times[x, y]; gibi kullanıcı alanı kuralları eklenerek bu tür dönüşümler Typescript kodunda herhangi bir değişiklik yapmadan mümkün hale geldi.

Son olarak, yazdırma işlevselliği önemli ölçüde iyileştirildi. Hold[a /. a->b] gibi ifadeler daha önce tam formda (Hold[ReplaceAll[a, Rule[a, b]]]) yazdırılırken, artık kısaltılmış gösterimle sunulabiliyor. Geliştirici, başlangıçta ToString ve kullanıcı alanı kurallarıyla bu sorunu çözmeye çalışsa da, bunun ek değerlendirmeye yol açtığını ve hatalı sonuçlar verdiğini fark etti. Bunun yerine, pretty printing mantığını doğrudan Typescript'te uygulayarak temel sözdizimi desteği ekledi. Ayrıca, hata ayıklama süreçlerinde tam formu görmek gerektiğinde kullanılabilecek FullForm komutu da eklendi. Bu geliştirmeler, yorumlayıcının hem iç yapısını hem de kullanıcı deneyimini önemli ölçüde artırdı.

İçgörü

ts-Wolfram yorumlayıcısında yapılan bu mimari ve işlevsel iyileştirmeler, projenin esnekliğini, okunabilirliğini ve kullanıcı deneyimini önemli ölçüde artırarak daha güçlü ve sürdürülebilir bir yapıya kavuşmasını sağlıyor.

Kaynak