C tili tarixi va nima uchun o'rganish kerak

~10 daq · C tili · Asoslar

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 kerak
  • int main() — dastur shu yerdan boshlanadi
  • char 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):

  1. Siz qaysi tilni bilasiz yoki eshitgansiz? U C bilan solishtirganda qayerda ishlatiladi?

  2. Agar Python 50 marta sekinroq bo'lsa — nima uchun odamlar Python ishlatadi?

  3. 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)