- dersler/: 29 kısa ders (açıklama, çalıştırılabilir örnek, alıştırma). Her örneğin ve alıştırma çözümünün çıktısı Online IDE'nin hazırlık adımında gerçekten koşulup dosyadakiyle karşılaştırılır; biçim dersler/BICIM.md. - temeller/: tek konulu 12 başlangıç programı. - web/anket, web/kisalt, web/pano: port PORT ortam değişkeninden okunur (Online IDE önizlemesi 8080 verir), yoksa eski sabit port. - README: öğrenme bölümü, Online IDE bağlantısı.
93 lines
4.4 KiB
Markdown
93 lines
4.4 KiB
Markdown
# KabaLang Örnekleri
|
|
|
|
Türkçe sözdizimli, derlenen programlama dili **KabaLang** ile yazılmış dokuz
|
|
çalışan proje (terminalde, masaüstünde ve tarayıcıda) ve işletim sistemi olmadan
|
|
açılan bir çekirdek. Projelerin her biri tek dosyadır ve tek komutla derlenip çalışır.
|
|
|
|
```bash
|
|
kabalang calistir konsol/fraktal/fraktal.kbl
|
|
```
|
|
|
|
> KabaLang **önizleme 0.5** sürümündedir. Kılavuz, standart kütüphane ve kurulum:
|
|
> [dev.kabaforce.com/kabalang](https://dev.kabaforce.com/kabalang/)
|
|
|
|

|
|
|
|
**Tarayıcıda dene:** bütün örnekler ve dersler [ide.kabaforce.com](https://ide.kabaforce.com)
|
|
adresindeki Online IDE'de kurulumsuz çalışır.
|
|
|
|
---
|
|
|
|
## KabaLang'ı öğren
|
|
|
|
- [**Dersler**](dersler): sıfırdan 29 kısa ders: giriş, temeller, akış denetimi, veri
|
|
yapıları, fonksiyonlar, kendi türlerin, hatalar ve dosyalar. Her derste açıklama,
|
|
çalıştırılabilir örnekler ve alıştırmalar var; örneklerin çıktısı yayından önce gerçekten
|
|
koşulup doğrulanır (biçim: [dersler/BICIM.md](dersler/BICIM.md)).
|
|
- [**Temeller**](temeller): her biri tek konuyu baştan sona gösteren 12 küçük program
|
|
(merhaba, değişkenler, girdi, koşullar, döngüler, fonksiyonlar, listeler, sözlükler,
|
|
metinler, yapılar, hatalar, dosyalar).
|
|
|
|
## Konsol
|
|
|
|
| | Proje | Ne gösteriyor |
|
|
|---|---|---|
|
|
|  | [**Fraktal**](konsol/fraktal) | 24-bit renkli Mandelbrot ve Julia; `birlikte:` + `baslat` ile dört şerit **paralel** hesaplanır, `--yakinlas` ile 120 karelik dalış |
|
|
|  | [**Sudoku**](konsol/sudoku) | Geri izlemeli çözücü, adım adım canlı animasyon; `sinif` ve `sayilabilir` hücre durumu |
|
|
|  | [**Fatura**](konsol/fatura) | JSON siparişten KDV'li fatura: kutu çizgili terminal tablosu, ardından **PDF ve Excel** çıktısı |
|
|
|
|
## Masaüstü
|
|
|
|
| | Proje | Ne gösteriyor |
|
|
|---|---|---|
|
|
|  | [**Hesap makinesi**](arayuz/hesap-makinesi) | İşlem önceliğini bilen hesap motoru; ekran **canlı bağlama** ile kendiliğinden güncellenir |
|
|
|  | [**Odak**](arayuz/odak) | Pomodoro zamanlayıcı: `zamanlayici` bloğu, ilerleme çubuğu, oturum kaydı, masaüstü bildirimi |
|
|
|  | [**Parola atölyesi**](arayuz/parola-atolyesi) | Parola üretici, entropi ölçer, SHA-256 özeti; sürgü ve girdi etiketlere canlı akar |
|
|
|
|
## Web
|
|
|
|
| | Proje | Ne gösteriyor |
|
|
|---|---|---|
|
|
|  | [**Pano**](web/pano) | Kanban panosu: JSON REST API (GET · POST · PUT · DELETE) + SQLite + tek sayfalık ön yüz |
|
|
|  | [**Kısalt**](web/kisalt) | Bağlantı kısaltıcı: gerçek 302 yönlendirme, tıklama sayacı, sunucuda çizilen SVG grafik |
|
|
|  | [**Anket**](web/anket) | Canlı anket: adres başına tek oy, POST → 303 → GET, sonuç grafiği KabaLang'da üretilir |
|
|
|
|
Web uygulamaları yalnız `127.0.0.1`'i dinler; port `PORT` ortam değişkeniyle değiştirilebilir. Kullanıcıdan gelen her değer
|
|
SQL'e **parametre olarak** bağlanır, HTML'e girerken `web.kacir` ile kaçırılır.
|
|
|
|
## Sistem programlama (çekirdek)
|
|
|
|
| | Proje | Ne gösteriyor |
|
|
|---|---|---|
|
|
|  | [**Minimal Kernel**](cekirdek/minimal-kernel) | KabaLang ile yazılmış açık kaynak x86-64 çekirdeği: kesmeler, Türkçe Q klavye, Türkçe karakterli ekran, sayfa ayırıcı, komut satırı (MPL-2.0) |
|
|
|
|
Küçük çekirdek örnekleri (merhaba, asal sayılar, VGA renkleri): [cekirdek/](cekirdek).
|
|
|
|
---
|
|
|
|
## Çalıştırmak
|
|
|
|
```bash
|
|
# Konsol
|
|
kabalang calistir konsol/fraktal/fraktal.kbl -- --yakinlas
|
|
kabalang calistir konsol/sudoku/sudoku.kbl
|
|
cd konsol/fatura && kabalang calistir fatura.kbl
|
|
|
|
# Masaüstü
|
|
kabalang calistir arayuz/hesap-makinesi/hesap-makinesi.kbl
|
|
kabalang calistir arayuz/odak/odak.kbl
|
|
kabalang calistir arayuz/parola-atolyesi/parola-atolyesi.kbl
|
|
|
|
# Web (her biri kendi klasöründen; tarayıcıda açın)
|
|
cd web/pano && kabalang calistir pano.kbl # http://127.0.0.1:8471
|
|
cd web/kisalt && kabalang calistir kisalt.kbl # http://127.0.0.1:8472
|
|
cd web/anket && kabalang calistir anket.kbl # http://127.0.0.1:8473
|
|
|
|
# Çekirdek (QEMU'da açılır)
|
|
cd cekirdek/minimal-kernel && kabalang derle --yalin ana.kbl -o cekirdek.elf
|
|
qemu-system-x86_64 -kernel cekirdek.elf -serial stdio
|
|
```
|
|
|
|
Yalnız derlemek için: `kabalang derle <dosya.kbl> -o <ikili>`.
|
|
Her projenin klasöründe ayrıntılı bir README vardır.
|