14. Anahtar sözcük başvurusu
Dilin bütün anahtar sözcükleri. Bu sayfa elle tutulan bir liste değildir:
cekirdek/test_belge_ornekleri.py aşağıdaki tabloyu dilin tek tabanıyla
(cekirdek/sozcukler.ANAHTARLAR ∪ cekirdek/linter.ANAHTAR_KELIMELER)
iki yönlü karşılaştırır. Dile yeni bir anahtar sözcük eklenip buraya
yazılmazsa test düşer; burada olup dilde olmayan bir sözcük yazılırsa da düşer.
⚠️ Anahtar sözcükler rezervedir: değişken ya da fonksiyon adı olarak kullanılamazlar.
Akış denetimi
| Sözcük | Ne yapar |
|---|---|
eger |
koşullu blok |
degilse |
koşul yanlışsa çalışan blok; degilse eger <koşul>: zincir kurar |
iken |
koşul doğru olduğu sürece dönen döngü |
dongu |
dongu x icinde liste: — liste/aralık üzerinde döngü · iki ad: dongu i, x icinde l.numarali():, dongu k, v icinde s.ciftler(): |
adim |
aralık döngüsünde artış: dongu i icinde 0..100 adim 5: · 10..0 adim -1 (bağlamsal: yalnız döngü başlığında aralıktan sonra; başka yerde sıradan ad) |
icinde |
dongu ile ve KAVRAMAda kullanılan bağlaç |
icin |
kavrama (comprehension): [x * 2 icin x icinde liste] · süzgeç eger ile: [x icin x icinde l eger x > 2] · sözlük biçimi {k: v icin k icinde l} |
arayuz |
arayuz Ad: — uygulayan yapının yazacağı imzalar + varsayılan metotlar; yapi K(Ad): ile uyulur; yalnız statik gönderim (bağlamsal: kaba.arayuz modül adıyla çakışmaz) — 5. sayfa |
genislet |
genislet Tur: — var olan türe metot ekler (gölgeleyemez; bağlamsal) |
degisir |
fonksiyon f(degisir l: …) — çağıranın değişkenini değiştirir; çağrıda f(&l) zorunlu (bağlamsal) |
esles |
desen eşleme: esles x: + kollar Desen: · çoklu A, B: · aralık 400..499: · koşullu Uye(a) eger a > 0: · _:; eksiksizlik denetlenir (ESLES_EKSIK). Bağlamsal (esles = 5 bir değişkendir) — 5. sayfa |
kir |
döngüden çık · kir dis: dis: etiketli çevreleyen döngüden çık |
devam |
döngünün bu turunu atla · devam dis: etiketli döngünün sonraki turuna geç |
ad: (etiket) |
dis: dongu … / dis: iken … — döngüye kir/devam için ad verir (yeni sözcük değil) |
Tanımlar
| Sözcük | Ne yapar |
|---|---|
fonksiyon |
fonksiyon/metot tanımı |
don |
fonksiyondan değer döndür (⚠️ dondur değil) |
yapi |
veri yapısı (struct) tanımı |
sinif |
selfli metotları ve kur kurucusu olan sınıf |
sayilabilir |
kapalı değer kümesi (enum) |
kullan |
modül içe aktarma (kullan kaba.sistem / kullan "dosya.kbl") |
degismez |
sabit bildirimi: degismez PI = 3.14 — yeniden atama derleme hatası (bağlamsal; degismez = 7 bir değişkendir) |
ozel |
dosya düzeyinde modül dışına kapalı tanım: ozel fonksiyon yardimci() (bağlamsal) |
kuresel |
fonksiyonun başında: kuresel sayac — fonksiyon, dışarıda (modül düzeyinde) tanımlı değişkene YAZABİLİR. Bildirim yoksa yazmak derleme hatası (KURESEL_BILDIRIMSIZ); okumak serbest. Bkz. 2. Temel sözdizimi |
Değerler ve işleçler
| Sözcük | Ne yapar |
|---|---|
dogru |
mantıksal doğru |
yanlis |
mantıksal yanlış |
ve |
mantıksal VE |
veya |
mantıksal VEYA |
degil |
mantıksal DEĞİL |
.. · ..< |
aralık: 1..5 üst sınır DAHİL · 0..<n üst sınır HARİÇ (döngüde, dilimde, kavramada) |
& \| ^ ~ << >> |
bit işleçleri (yalnız sayi); mantık için ve/veya/degil |
Hata yönetimi
| Sözcük | Ne yapar |
|---|---|
dene |
istisna yakalanacak blok |
yakala |
istisnayı yakalayan blok (yakala e: ya da yakala:) |
firlat |
istisna fırlat |
sonunda |
dene bloğundan nasıl çıkılırsa çıkılsın koşan temizlik: sonunda: (bağlamsal; 6. sayfa) |
Eşzamanlılık
| Sözcük | Ne yapar |
|---|---|
birlikte |
yapılandırılmış görev kapsamı; çıkmadan önce görevleri bekler |
baslat |
kapsam içinde görev başlat (baslat f() / g = baslat f()) |
bekle |
görev tutamacını bekle (g.bekle()) — uyku için uyu(ms) |
kanal |
görevler arası tipli kanal (kanal(n)) |
arkada_calistir |
kapsamsız arka plan bloğu (⚠️ yerel değişken yakalayamaz) |
async |
⚠️ rezerve, henüz uygulanmadı — bugün birlikte/baslat kullanılır |
Servis yaşam döngüsü
| Sözcük | Ne yapar |
|---|---|
baslarken |
servis başlarken bir kez çalışan blok |
calisirken |
servisin ana gövdesi |
dururken |
durdurma sinyalinde çalışan kapanış bloğu |
⚠️
servisanahtar sözcük değildir: o bir modül adıdır (servis.baslat("sshd")). Anahtar sözcük yapılsaydı modül çağrıları sahte hata üretirdi.
Arayüz (GUI)
| Sözcük | Ne yapar |
|---|---|
pencere |
pencere tanımı |
izinler |
uygulamanın hak beyanı (AppArmor profili buradan üretilir) |
sekme |
sekme_kutusu içinde bir sekme |
zamanlayici |
zamanlayici 1000ms: — düzenli aralıkla çalışan blok |
yatay_kutu |
bileşenleri yan yana dizen yerleşim |
dikey_kutu |
bileşenleri alt alta dizen yerleşim |
yineleyici |
yineleyici 3: / yineleyici ["a","b"]: — gövdeyi her öğe için yeniden üretir (10. sayfa, yineleyici bölümü) |
oge |
yineleyici gövdesinde o anki öğe |
sira |
yineleyici gövdesinde 0 tabanlı sıra numarası |
tiklandiginda |
tıklama olayı |
degistiginde |
değer değişimi olayı |
cift_tiklandiginda |
çift tıklama olayı |
secildiginde |
seçim olayı |
Bellek modeli
| Sözcük | Ne yapar |
|---|---|
sayilan |
sayilan<T> tipi / sayilan(x) — paylaşılan, başvurusu sayılan nesne |
zayif |
zayif<T> tipi / zayif(s) — güçlü sayacı artırmayan başvuru, döngüyü kırar |
arena |
arena AD: — blok içinde kurulan sayilan<T> nesneleri blok bitince tek seferde serbest |
⚠️
arena,zayifvesayilanrezerve DEĞİLDİR. Anlamları yalnız yukarıdaki dizilimlerde vardır;arena = 3ya dazayif = 5yazan kodunuz derlenmeye devam eder. (Rezerve etmek mevcut kodu iki kez kırmıştı.)⚠️
yineleyici,ogevesirada rezerve DEĞİLDİR — aynı gerekçe.sira = 3,oge = 7veyineleyici = 5yazan kodunuz derlenmeye devam eder;oge/sirayalnız biryineleyicigövdesinde öğe ve sıra anlamına gelir, başka her yerde sizin sıradan adınızdır. Bir satırınyineleyicibaşlığı sayılması için sözcükten sonra bir model gelmesi ve satırın:ile bitmesi (ya da açık bir[bırakması) gerekir —yineleyici = 5bu yüzden atamadır, başlık değildir. (cekirdek/test_yineleyici.py::KontrolGrububunu ölçer ve ölçüm sırasında gerçekten kırmızı yandı: ilk yazımyineleyici = 5i başlık sanıyordu.)
Paylaşılan nesne ve zayıf başvuru — KABALANG-BELLEK-MODELI.md §2.
yapi bir değerdir (atama ve işleve geçirme kopyalar). Aynı nesneyi
birden çok yerden görmek için onu sayilan<T> yapın:
yapi Dugum:
ad = ""
cocuklar: liste<sayilan<Dugum>> = []
ebeveyn: zayif<Dugum> = bos # çocuk→ebeveyn ZAYIF
kok = sayilan(Dugum("kok"))
c: sayilan<Dugum> = Dugum("c") # tipli yerde kendiliğinden kutulanır
c.ebeveyn = kok # güçlü → zayıf kendiliğinden
kok.cocuklar.ekle(c)
takma = kok
takma.ad = "KÖK" # aynı nesne: kok.ad da "KÖK"
dogrula(kok.ad == "KÖK", "paylaşılan nesne")
dogrula(takma == kok, "== kimliktir")
esles c.ebeveyn.al(): # al() → belki<sayilan<Dugum>>
bos:
yazdir("ebeveyn öldü")
dolu(e):
yazdir("ebeveyn: " + e.ad)zayif<T>in alanı doğrudan okunamaz (hedef ölmüş olabilir): önce.al()..canli_mi()yalnız durum sorar.sayilan<T>alanı varsayılansız bırakılamaz; isteğe bağlıysabelki<sayilan<T>>yazın.- Metot içinde
selfnesnenin yüküdür; başka bir nesneye bu nesnenin başvurusunu vermek için tutamacı dışarıdan geçirin.
Döngü: ebeveyn→çocuk güçlü, çocuk→ebeveyn zayıf. İki yön de güçlü olursa nesneler sızar; derleyici uyarır:
⚠ [DONGU_RISKI] güçlü başvuru döngüsü: A → A.b → B.a → A — iki yön de
güçlü, bu nesneler SIZAR
▸ öneri: geri yönü 'zayif<A>' yapınYalnız sayilan<…> bağları güçlü sayılır; düz yapi alanı (liste<Dugum>)
bir kopyadır, döngü kurmaz.
Arena — KABALANG-BELLEK-MODELI.md §3:
yapi Dugum:
deger = 0
sonraki: belki<sayilan<Dugum>> = bos
onceki: belki<sayilan<Dugum>> = bos # bilerek güçlü: halka
fonksiyon halka(n: sayi) -> sayi:
a = sayilan(Dugum(1))
b = sayilan(Dugum(n))
a.sonraki = dolu(b)
b.onceki = dolu(a) # döngü: arenasız SIZARDI
b.sonraki = dolu(a)
don a.deger + b.deger
toplam = 0
arena istek:
toplam = toplam + halka(5) # sayi değer: dışarı taşınabilir
yazdir(metin(toplam))Arena bloğunda (çağrılan işlevler dâhil) kurulan sayilan<T> nesneleri blok
bitince — döngüdekiler dâhil — tek seferde gider. metin, liste, sozluk
ve sayılar değer olduğundan arenadan etkilenmez, dışarı serbestçe taşınır.
⚠️ Kaçış kuralı: arenada kurulmuş olabilecek bir başvuru bloğun
dışına yazılamaz (arenadan önce tanımlı değişkene, dış nesnenin alanına ya da
listesine, don ile). Derleyici yakalar:
✗ [ARENA_KACISI] arena nesnesi bloktan dışarı sızıyor: 'istek' arenasında
kurulmuş olabilecek bir başvuru arenadan önce tanımlı 'dis'ye atanıyorDerleme anında görünmeyen kaçışı (ör. çağrılan işlevin küresel bir listeye eklemesi) arena kapanırken çalışma zamanı yakalar ve programı durdurur. Bloğun kendi tanımladığı başvuru değişkenleri bloktan sonra kullanılamaz.
Bellek raporu — kabalang calistir --bellek-izle dosya.kbl (ya da
derle --bellek-izle) programın çıkışında stderre şunu basar: ayırma ·
serbest · yaşayan kutu sayısı (tür başına: metin, liste, sözlük, nesne,
sayilan), arena tepesi, döngü saptayıcı (yalnız birbirine başvurarak
yaşayan, yani sızmış sayilan nesneleri tür başına) ve süreç bellek
tepesi. Programın stdoutu ve çıkış kodu değişmez.
Bugün yapılamayanlar — hepsi konumu ve alternatifiyle kayıtlı:
| İstenen | Neden yok | Bugünkü yol |
|---|---|---|
Kendi türünde değer alan (ebeveyn: Dugum) |
kendini kendi içinde taşıyan bir değer sonsuz büyüklükte olur | ebeveyn: zayif<Dugum> ya da belki<sayilan<Dugum>> |
guvensiz: bloğu |
KABALANG-SPEC.md §10da tasarlı, depoda eşleşme 0; FFI'nin kapısı zaten zorunlu izinler: beyanıyla kurulu |
bugünkü karşılığı izinler: dis_cagri = dogru |
arena.olustur(ad) (adlandırılmış arena nesnesi) |
§6 gelecek uzantısı; bugün yalnız blok biçimi var |
arena AD: bloğu |
Kaynak yönetimi (bağlam yöneticisi)
| Sözcük | Ne yapar |
|---|---|
ile |
ile <kaynak> olarak <ad>: — blok nasıl biterse bitsin kaynağı serbest bırakır |
olarak |
bağlanan ada isim verir — kullan "m.kbl" olarak gda da aynı iş |
⚠️
ileveolarakrezerve DEĞİLDİR. Anlamları yalnız yukarıdaki dizilimde vardır;ile = 3ya daolarak = "x"yazan kodunuz derlenmeye devam eder. (ileTürkçenin en sık edatıdır; rezerve edilmesi en pahalı sözcüklerden biri olurdu.)
dosya.sil("/tmp/kb_belge.txt")
ile dosya.ac("/tmp/kb_belge.txt", "y") olarak d:
d.yaz("blok bitince kapanır")
dogrula(dosya.acik_tutamac_sayisi() == 0, "tutamaç serbest bırakıldı")
dogrula(dosya.oku("/tmp/kb_belge.txt") == "blok bitince kapanır", "diske yazıldı")
dosya.sil("/tmp/kb_belge.txt")Ayrıntı ve üç çıkış yolunun (normal · don · firlat) ölçümü:
belgeler/19-baglam-yoneticisi.md.
Dış çağrı arayüzü (FFI)
| Sözcük | Ne yapar |
|---|---|
dis |
dış (C) bildirimi açar: dis fonksiyon ... / dis kutuphane ... |
kutuphane |
dis kutuphane "m" — bağlanacak C kütüphanesi (-lm) |
⚠️
disvekutuphanerezerve DEĞİLDİR. Anlamları yalnız yukarıdaki dizilimde vardır;dis = 3ya dakutuphane = "x"yazan kodunuz derlenmeye devam eder. (Rezerve etmek mevcut kodu iki kez kırmıştı.)Düzenleyici ikisini de önerir ve üzerine gelince "bağlamsal anahtar sözcük (rezerve değil)" diye açıklar (
cekirdek/lsp.py); renklendirme (Kate) de çalışır. Aynı şeyarenavezayifiçin de geçerlidir.
Yazım — KABALANG-SPEC.md §11:
izinler:
dis_cagri = dogru
dis kutuphane "m"
dis "C" fonksiyon hypot(a: ondalik, b: ondalik) -> ondalik
# C'nin kendi genişlikleri — dönüşte ve parametrede
dis fonksiyon strlen(s: metin) -> c_ulong
dis fonksiyon atoi(s: metin) -> c_int
dis fonksiyon abs(x: c_int) -> c_int
# Değer döndürmeyen C işlevi
dis fonksiyon tzset() -> hic
dogrula(hypot(3.0, 4.0) == 5.0, "hypot(3,4) 5 olmali")
dogrula(strlen("merhaba") == 7, "strlen 7 olmali")
dogrula(atoi("42") == 42, "atoi 42 olmali")
dogrula(abs(-5) == 5, "abs 5 olmali")
tzset()Kurallar
"C"yazılmazsa varsayılan"C"dir. Başka çağrı biçimi yoktur: yalnız C arayüzlü kütüphane işlevleri çağrılabilir.- Dönüş tipi ve her parametrenin tipi ZORUNLUDUR. Dış çağrıda tip çıkarımı yoktur; yanlış genişlik sessiz bellek bozulmasıdır.
- Dilin tipleri:
sayi(long long) ·ondalik(double) ·mantik(bool) ·metin(const char*). - Bunların yanında C'nin kendi genişlikleri de yazılabilir (
hicyalnız dönüşte):
| Yazım | C karşılığı | Ne zaman |
|---|---|---|
hic |
void |
C işlevi değer döndürmüyor (tzset · perror · abort) |
c_int |
int |
en sık durum (atoi · strcmp · unlink · system) |
c_uint |
unsigned int |
alarm · sleep |
c_long |
long |
atol · random; ssize_t ve time_t de budur |
c_ulong |
unsigned long |
strlen · strspn; size_t budur |
c_ullong |
unsigned long long |
strtoull |
c_float |
float |
strtof |
⚠️ Neden gerekli: bildirim, sistem başlığındaki yazımla birebir
uyuşmak zorundadır. sayi long longdur; int dönen bir işleve sayi
demek conflicting declaration ile reddedilir. Ölçüldü (2026-09-26,
/usr/include 9 temel başlık): bu genişlikler olmadan çağrılabilen işlev
sayısı 4, onlarla 55.
⚠️ Genişlik adı değil, C yazımı esastır. long ile long long
64 bit sistemlerde ikisi de 64 bittir ama C için ayrı tiplerdir; bu yüzden
adlar sayi64 gibi genişliğe göre değil, C'nin yazımına göredir.
⚠️ Parametrede daraltma denetlenir. Dönüş genişletmedir (değer
korunur); parametre ise daraltmadır. abs(4294967296) gibi C tipine
sığmayan bir değer sessizce kırpılmaz: çağrı yapılmaz ve program
"… C tarafının tipine sığmıyor" çalışma hatasıyla durur. İşaretsiz
tipe (c_uint …) negatif değer de aynı hatayı verir (usleep(-1) ~71
dakika uyumak yerine durur); c_floata sığmayan sonlu değer de öyle.
⚠️ hic dönen bir işlevin değeri kullanılamaz: a = tzset() Türkçe
bir derleme hatası verir (DIS_HIC_DEGER); işlevi tek başına bir satırda
çağırın.
* izinler: bloğunda dis_cagri = dogru ZORUNLUDUR. İzin modelindeki
tek zorunlu beyan budur; gerekçesi cekirdek/izin_denetimi.pyde ölçümüyle
yazılı — dış çağrı, dilin bütün güvenlik varsayımlarını karşı tarafa
devreder.
⚠️ Blok gövdesinin kuralları belgeler/10-arayuz-uygulamasi.mdde
(izinler: bölümü): her satır anahtar = deger, bilinmeyen anahtar
hata, mantıksal değer yalnız dogru/yanlis. Tanınan anahtarların
kanonik kümesi cekirdek/izin_denetimi.py → IZIN_ANAHTARLARIdır;
ikinci bir liste açılırsa içe aktarma anında durur.
* metin dönüşü kopyalanır, serbest bırakılmaz: getenv statik tampon
döner (serbest bırakmak çökme olurdu), strdup malloc'lu döner (bırakmamak
sızıntı). Hangisi olduğu derleme zamanında bilinemez; çökmeyen taraf
seçildi. Malloc'lu metin döndüren bir C işlevi çağırırsanız bellek sızar.
* Bildirimler dosya düzeyindedir (girintisiz). Bir bloğun içine yazılamaz:
C sembolü dosyanın tamamında tektir, bir bloğa ait olamaz.
* kullan "x.kbl" ile alınan bir modüldeki dis bildirimi de geçerlidir;
bildirim ve -l bayrağı programın tamamına taşınır. ⚠️ Beyan zorunluluğu
da taşınır: modül FFI açıyorsa dis_cagri = dogru ANA dosyada yazılmalı.
* Kütüphane hedefinde (tur = kutuphane) de dis yazılabilir; .so
C kütüphanesine bağlanır. ⚠️ Beyan zorunluluğu burada da taşınır:
kütüphanenin .kabaarayuz dosyası "dis_cagri": true taşır ve onu
kullan eden uygulama da dis_cagri = dogru yazmak zorundadır.
* ⚠️ Bildiriminiz sistemdeki gerçek C imzasıyla çelişirse derleme
conflicting declaration hatasıyla durur. Bu bir kusur değil, KORUMADIR:
çelişki sessizce geçseydi çağrı yanlış türlerle yapılırdı (ölçüldü).
Örnek: strlen gerçekte size_t döner; -> sayi demek reddedilir.
⚠️ Bu ileti henüz Türkçeleştirilmedi, İngilizce görünür.
Bugün yapılamayanlar — hepsi cekirdek/dis_cagri.py::UYGULANMADI
listesinde konumu ve alternatifiyle duruyor:
| İstenen | Neden yok | Bugünkü yol |
|---|---|---|
gosterici (ham gösterici) |
dilde sahiplik/ömür kuralı yok (KABALANG-BELLEK-MODELI.md). ⚠️ Ölçülen tüketici yok (2026-09-26): göstericili C yüzeyi isteyen dört kütüphane de kurulu, ama dördünün de KabaLang karşılığı zaten var — libcurl→kaba.ag, libarchive→kaba.arsiv, libcrypto→kaba.kripto, libsqlite3→kaba.veritabani |
göstericiyi C'de saklayıp sayi tutamaç döndüren ince sarmalayıcı |
| C yapısı (struct) geçirmek | alan yerleşimi/hizalama dilde temsil edilmiyor; struct isteyen yüzeyler gosterici ile aynı dört kütüphanede ve hepsi sarılı → ölçülen tüketici yok |
alanları ayrı parametre olarak geçirin |
| dizi/tampon geçirmek | uzunluk ve sahiplik sözleşmesi yok; libz.crc32 gibi tampon alan işlevlerin karşılığı kaba.kripto/kaba.arsivde → ölçülen tüketici yok |
öğeleri tek tek geçiren C sarmalayıcı |
| geri çağrı (callback) vermek | KabaLang işlevleri yakaladıkları değişkenleri yanlarında taşır; böyle bir işlev C'nin beklediği düz işlev göstericisine çevrilemez. Geri çağrı isteyen yüzeyler (libcurl WRITEFUNCTION, qsort) sırasıyla kaba.agde ve liste.siralada → ölçülen tüketici yok |
— |
guvensiz: bloğu |
KABALANG-SPEC.md §10da tasarlı, depoda eşleşme 0. ⚠️ Zorunlu kılmak çalışan her FFI programını kırardı; isteğe bağlı eklemek hiçbir şeyi güvenli yapmaz — yalnız yeni sözcük rezerve ederdi |
bugünkü karşılığı izinler: dis_cagri = dogru (zorunlu) |
tur = kutuphane hedefinde dis |
ayrı derleme yolu extern "C" bloğunu ve -l<ad> bayrağını .soya taşımıyor (KABALANG-ABI.md) — açıkça REDDEDİLİR, sessizce kaybolmaz |
bildirimi uygulama hedefine ya da kullan "x.kbl" ile gömülen bir modüle koyun |
Rezerve OLMAYAN özel adlar
Aşağıdakiler anahtar sözcük değildir; bunlar yerleşik fonksiyon ve
tiplerdir. Kendi tanımınız onları gölgeler — self = 5 ya da bos = 1
yazan eski kodunuz çalışmaya devam eder. (Rezerve etmek mevcut kodu iki kez
kırmıştı; bu yüzden bilerek böyle.)
| Ad | Ne |
|---|---|
yazdir |
ekrana yaz |
dogrula |
koşulu sına; yanlışsa 1 çıkış koduyla dur |
metin · sayi · ondalik |
tür dönüşümü |
tamam · hata |
sonuc<T,E> kurucuları |
bos · dolu |
belki<T> kurucuları |
uyu |
milisaniye uyu |
cikis |
programı çıkış koduyla bitir |
mesaj_kutusu · uyari_kutusu · hata_kutusu |
GUI iletişim kutuları |
KomutSatiri |
komut satırı ayrıştırıcısı |
self |
sınıf/yapı metodunda örtük ilk parametre |
kur |
sınıf kurucusunun adı (fonksiyon kur(self, ...)) |
kopyala |
değerin bağımsız kopyası (arenadan değer taşımak için GEREKMEZ — değerler zaten kopyalanır) |
Henüz olmayan sözcükler
Bu sözcükler dilde yoktur, ama yazdığınızda anlaşılmaz bir derleyici hatası yerine "henüz uygulanmadı" yanıtı alırsınız:
| Sözcük | Ne olacaktı | Bugünkü yol |
|---|---|---|
async |
eşzamansız fonksiyon | birlikte / baslat |
⚠️ Bunlar rezerve edilmemiştir: arayuz = 5 ya da ozel = 5 yazan eski
kodunuz derlenmeye devam eder. Tanıma bağlamsaldır.
Henüz olmayan yazım: dekoratör (@ad)
@property gibi bir dekoratör satırı bir sözcük değil, bir yazımdır; bu
yüzden yukarıdaki tablolarda geçmez. Dilde yoktur ve yazdığınızda ham bir
sözcükleyici hatası değil, bugün çalışan yolu söyleyen bir teşhis alırsınız:
✗ [UYGULANMADI] 4:5 - `@property` — alan gibi okunan metot henüz
desteklenmiyor — '@property' KabaLang'ın sözlüğünde YOK … Bugün: metodu
METOT olarak çağırın … `k.etiket()`| Dekoratör | Bugünkü yol |
|---|---|
@property |
metodu metot olarak çağırın — k.etiket() |
@<ad>.setter |
alana doğrudan atayın — k.ad = "Ayşe" |
@staticmethod |
self parametresini hiç yazmayın |
@classmethod |
modül düzeyinde üreteç fonksiyon yazın |
@dataclass |
gerek yok — yapi kurucuyu ve ==i zaten üretir |
başka her @ad |
sarmalamayı elle yapın (ayrı bir fonksiyon) |
Karşılıkların çalışan tam örneği: 5. Yapı, sınıf ve sayılabilir.
⚠️ @ 2026-09-26'da ayraç olarak dile girdi; anahtar sözcük EKLENMEDİ.
Bu yüzden property, dataclass gibi adlar hâlâ sizin değişken adınız
olabilir — property = 5 derlenmeye devam eder.