C tili tarixi va nima uchun o'rganish kerak
C tili qanday paydo bo'ldi?
1969-yil. Amerika, New Jersey shtatidagi Bell Labs laboratoriyasi. Ken Thompson va Dennis Ritchie Unix operatsion tizimini yozishga kirishadi. Lekin muammo bor — o'sha davrda barcha tizim dasturlari Assembly tilida yozilardi. Assembly esa mashina bilan bevosita gaplashadi: tezkor, lekin har bir protsessor uchun boshqacha.
Dennis Ritchie yangi til yaratishga qaror qiladi — C tili.
💡 Qiziqarli fakt: C tili nomi tasodifiy emas. Ritchie avval "B" tilida ishlagan (Ken Thompson yaratgan). B tilini takomillashtirib, keyingi harf — C deb atagan.
1972-yilda C tili rasman yaratildi. 1978-yilda Kernighan va Ritchie "The C Programming Language" kitobini yozdi — dasturlash tarixidagi eng mashhur kitoblardan biri. Kitob shunchalik mashhur bo'ldiki, hozir ham "K&R C" deb ataladi.
C tili boshqa tillardan qanday farq qiladi?
Siz Python yoki JavaScript haqida eshitgan bo'lsangiz kerak. Ular qulay, tez yoziladi. Lekin ichida nima bo'lishini ko'rmaysiz. C esa boshqacha.
Tezlik bo'yicha taqqoslash
| Til | Tezlik | Xotira nazorati | Qiyinlik |
|---|---|---|---|
| C | ⚡ Eng tez | To'liq nazorat | Qiyin |
| C++ | ⚡ Tez | To'liq nazorat | Qiyin |
| Python | 🐢 Sekin (50-100x) | Avtomatik | Oson |
| JavaScript | 🐇 O'rtacha | Avtomatik | O'rta |
| Java | 🐇 O'rtacha | Avtomatik (JVM) | O'rta |
⚠️ Muhim: "Sekin" degani Python yomon degani emas. Har bir tilning o'z maqsadi bor. Lekin tezlik muhim bo'lgan joylarda — OS, driver, o'yin engine — C hali ham talab qilinadi.
Xotira bilan ishlash
Python da massiv yaratasiz — xotira avtomatik ajratiladi, avtomatik tozalanadi. Siz buni ko'rmaysiz.
C da esa:
- Xotirani o'zingiz ajratasiz
- Xotirani o'zingiz tozalaysiz
- Noto'g'ri qilsangiz — dastur ishlamay qoladi
Bu qiyin, lekin shu orqali kompyuter ichida nima bo'lishini haqiqatan tushunasiz.
C tili hozir qayerda ishlatiladi?
C tili "eski" emas. Bugun ham:
Operatsion tizimlar: Linux kernel — C da yozilgan. Windows, macOS yadrolari ham asosan C/C++. Siz hozir o'qiyotgan brauzer C da yozilgan OS ustida ishlayapti.
Embedded tizimlar: Avtomobil, samolyot, tibbiy asboblar, mikroto'lqinli pech — ichidagi dasturlar ko'pincha C da. Xotira cheklangan, tezlik muhim bo'lgan joylarda C muqobili yo'q.
Ma'lumotlar bazalari: MySQL, PostgreSQL, SQLite — barchasi C da yozilgan.
Tillarning o'zi: Python CPython — C da yozilgan. PHP, Ruby, Perl — C da. Ya'ni siz Python o'rgansangiz ham, uning ichida C ishlaydi.
O'yin dvigatellari: Unreal Engine asosi C++, lekin asosiy qismlari C da.
Nima uchun C dan boshlash kerak?
Ko'pchilik deydi: "Python dan boshlang, osonroq". Bu noto'g'ri emas. Lekin C dan boshlaganlar keyinchalik hamma narsani tezroq tushunadi. Sababi:
1. Xotira tushunchasi: Stack va heap nima? Pointer nima? Buni C o'rgatadi. Python da bularni bilmasdan ishlayveradi — lekin muammo chiqsa, nima qilishni bilmaysiz.
2. Kompilyatsiya tushunchasi: Kod qanday qilib 0 va 1 ga aylanadi? C buni ko'rsatadi.
3. Barcha tillar C ga o'xshaydi: C o'rganganlar Java, C++, Rust, Go ni tezda o'rganadi. Chunki sintaksis, mantiq — hammasi shunga asoslangan.
4. Muammolarni chuqur hal qilish: C da xato qilish oson — lekin xatoni topish orqali siz haqiqiy dasturchi bo'lasiz.
✅ Xulosa: C o'rganish og'ir, lekin bu og'irlik sizni kuchli qiladi. Poydevor mustahkam bo'lsa — ustiga istalgan narsani qurish mumkin.
Oddiy misol — C va Python farqi
Xuddi shu ish — ikkala tilda:
# Python
name = "Ali"
age = 20
print(f"Salom, {name}! Yoshingiz: {age}")
/* C */
#include <stdio.h>
int main() {
char name[] = "Ali";
int age = 20;
printf("Salom, %s! Yoshingiz: %d\n", name, age);
return 0;
}
Ko'ryapsizmi? C da:
#include— kutubxona ulash kerakint main()— dastur shu yerdan boshlanadichar name[]— turning aniq yozilishi kerak%s,%d— format specifier (qaysi turdagi o'zgaruvchi)return 0— dastur muvaffaqiyatli tugadi
Hozircha bularni yodlab olmang. Keyingi darslarda har birini alohida o'rganamiz.
Mashq
✏️ Mashq — O'ylang va javob bering
Quyidagi savollarga o'ylab ko'ring (hozircha yozmasangiz ham bo'ladi — miyangizda javob toping):
Siz qaysi tilni bilasiz yoki eshitgansiz? U C bilan solishtirganda qayerda ishlatiladi?
Agar Python 50 marta sekinroq bo'lsa — nima uchun odamlar Python ishlatadi?
Linux kernel C da yozilgan dedik. Xo'sh, siz C o'rgansangiz — nazariy jihatdan OS yozish mumkinmi?
Keyingi dars
Keyingi darsda GCC kompilyatorini o'rnatamiz va birinchi C kodimizni yozamiz.
2-dars: Kompilyator o'rnatish (GCC / Clang)