[Fikir] Builtin Fonksiyon Kataloğu ve Çözümleme Mekanizması #89
Labels
No Label
cli-ux
faz-plani
felsefe-gozden-gecir
ffi-builtin
fikir
gelecek-vizyon
ir-vm
kalite-mimari
moduller-import
test-senaryosu
tip-sistemi
tooling-lsp
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: saqut/saqut-compiler#89
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Giriş (Nedir, Neden Önemli?)
printilk builtin (yerleşik) fonksiyon. Ama "builtin" kelimesinin derleyici içinde nasıl bir yeri olacağı — sembol tablosunda mı, ayrı bir kayıt defterinde mi — henüz netleşmedi. Bu issue,print'ten sonra geleceklen,toString,parseIntgibi fonksiyonların sistematik bir şekilde eklenmesini planlar.Gelişme (Olası Yaklaşımlar)
SymbolKind::Functionolarak eklenir. Böyleceprint(x)çağrısı normal bir fonksiyon çağrısı gibi tip denetiminden (Faz 3) geçer.src/runtime/builtins.hppgibi) tek listede tutulur: isim, parametre tipleri, dönüş tipi, ve VM'deki karşılığı (FFI üzerinden mi, yoksa doğrudan bir IR opcode'u mu).print,len(string/array uzunluğu),toString(sayıdan string'e),parseInt/parseFloat.Açık Sorular
printfonksiyonunu tanımlarsa ne olur (muhtemelenE002çift tanım, ama global scope'ta builtin'lerle çakışma ayrı ele alınmalı)?İmza/Yorum:
print'in nasıl çözümlendiğini doğru kurmak, sonraki tüm builtin'lerin şablonu olacak — bu yüzden bu issue erken (Faz 2-3 sırasında) gündeme gelmeli.