
Niyə Janet? Kiçik Lisp dialekti haqqında esse
Proqramçı İan Henri kiçik Lisp dialekti Janet-in niyə hobbi layihələri üçün əsas dili olduğunu izah edir: səkkiz təlimatlı nüvə, yerləşdirilə bilən C mühiti və müstəqil icra faylları.
Proqramçı İan Henri bloqunda yazdığı essesində kiçik Lisp dialekti Janet-in niyə bir neçə ildir hobbi layihələri üçün əsas dili olduğunu izah edir. Dili o qədər bəyənib ki, onun haqqında tam bir kitab yazıb: "Janet for Mortals", internetdə pulsuz yayımlanıb.
Bir axşamda öyrənilə bilən kiçik dil
Janet birinci dərəcəli funksiyaları, identifikatorlar üçün vahid ad məkanı və leksik blok əhatəsi olan imperativ dildir. Nüvəsi yalnız səkkiz təlimatdan ibarətdir — do, def, var, set, if, while, break və fn — makrolar isə üzərinə daha yüksək səviyyəli axın nəzarəti əlavə edir. Henrinin təsvirinə görə icra semantikası tanışdır: "JavaScript düşünün, üstəgəl dəyər tipləri, çıx minus bütün qəribəliklər". Bütün standart kitabxana bir səhifəyə sığır.
Bayt kodundan müstəqil icra fayllarına
Janet özünü bayt koduna kompilyasiya edir, həmin kodu Janet-in icra mühitini də işə salan C faylına yazır və sonra həmin faylı sistemin C kompilyatoru ilə kompilyasiya edir. Nəticədə proqramlar yerli icra faylları kimi yayılır — heç nə quraşdırmaq lazım deyil. hello world faylı bir meqabaytdan azdır — aarch64 macOS-da Janet 1.27.0 üçün 784K — və icra mühitini, zibil toplayıcısını və bayt kod kompilyatorunu ehtiva edir, beləliklə proqramlar işləmə anında Janet kodunu qiymətləndirə bilir. İcra mühiti hətta saytlara yerləşdirmək üçün asan olan kiçik C kitabxanasıdır.
PEG-lər, shell skriptləri və kolleksiyalar
Janet-də mətn emalı müntəzəm ifadələr yerinə analiz ifadəsi qrammatikalarına (PEG) əsaslanır; Henri onları daha sadə, güclü və proqnozlaşdırıla bilən adlandırır: onlar HTML, JSON və null baytlı binar formatları analiz edə bilir. sh adlı üçüncü tərəf kitabxanası boru və yönləndirmələr üçün shell skript DSL-i əlavə edir. Kolleksiyalar dəyişdirilə bilən və dəyişdirilə bilməyən formalarda olur: dəyişməzlər dəyər semantikasına malikdir, dəyişdirilə bilənlər isə, məsələn hash cədvəlləri, eynilik üzrə müqayisə olunur.
Makrolar və kompilyasiya vaxtı dəyərləri
Makro yazmaq Henrinin ən çox tövsiyə etdiyi xüsusiyyətdir və onun sözlərinə görə Janet-in higiyenik olmayan makroları yenə də referensial şəffaf ola bilər, çünki literal funksiyaların sitatını götürmək mümkündür. Janet həmçinin dəyərlərin kompilyasiya vaxtından işləmə vaxtına keçməsinə imkan verir: proqramın kompilyasiyası yuxarı səviyyəli kodu icra edir və sonra proqramın vəziyyətinin tam görüntüsünü diskə yazır, paylaşılan istinadlar, generatorlar və bağlanmalar qorunur. Kitabda bunun SQL sxemindən verilənlər bazası bağlantıları yaratmaq üçün necə istifadə olunduğu göstərilir.
SiTech — AI ilə gücləndirilmiş veb hazırlanması
Sürətli və müasir saytlar qurur, AI-ı real biznes proseslərinə gətiririk. Layihəniz və ya sualınız var? Kömək etməyə hazırıq.