Bosh sahifa Wiki C

C

C — Dennis Ritchie tomonidan 1972-yilda AT&T Bell Labs tadqiqot markazida yaratilgan protsedura tipidagi dasturlash tili. U dastlab Unix operatsion tizimini qayta yozish uchun ishlab chiqilgan va hozirgi kungacha ko’plab zamonaviy tillar (C++, Java, Python, Go, Rust) sintaksisiga asos bo’lib xizmat qilmoqda.

Yaratilish tarixi

C tili Ken Tompson yaratgan B tili asosida rivojlantirilgan bo’lib, uning maqsadi Unix yadrosini assembler o’rniga yuqoriroq darajadagi, ammo hamon apparat bilan yaqin ishlay oladigan tilda yozish edi. 1978-yilda Brayan Kernigan va Dennis Ritchie yozgan “The C Programming Language” kitobi tilning norasmiy standarti sifatida qabul qilingan va hozirgacha dasturlash bo’yicha eng ta’sirchan kitoblardan biri hisoblanadi.

Ko’rsatgichlar va xotira bilan ishlash

C tilining o’ziga xos xususiyati — dasturchiga xotira manzillari bilan bevosita ishlash imkonini beruvchi ko’rsatgichlar (pointer) mexanizmi. malloc va free funksiyalari orqali xotira qo’lda ajratiladi va bo’shatiladi, bu esa yuqori samaradorlikka erishish imkonini bersa-da, xotira sizib chiqishi yoki noto’g’ri manzilga murojaat qilish kabi xatolarga olib kelishi mumkin.

Portativlik

C dasturlari kompilyator yordamida deyarli istalgan protsessor arxitekturasiga moslashtirilishi mumkin, shu sababli til “portativ assembler” deb ham ataladi. Bu xususiyat C’ni mikrokontrollerlardan tortib superkompyuterlargacha bo’lgan turli tizimlarda qo’llash imkonini beradi. Deyarli barcha zamonaviy operatsion tizim yadrolari — Linux, Windows NT, macOS‘ning Darwin qismi — C tilida yozilgan.

Zamonaviy tillarga ta’siri

C sintaksisi (figurali qavslar, nuqta-vergul bilan tugaydigan qatorlar) C++, Java, C#, JavaScript va boshqa ko’plab tillarga meros bo’lib o’tgan. Ko’p tillardagi asosiy tushunchalar — funksiyalar, massivlar, tuzilmalar (struct) — dastlab C’da shakllangan formatda saqlanib qolgan.

Xavfsizlik masalalari

Xotirani qo’lda boshqarish tufayli C dasturlari buffer overflow, use-after-free va format string kabi zaifliklarga ko’proq moyil bo’ladi — bu turdagi xatolar dasturiy ta’minotdagi jiddiy xavfsizlik kamchiliklarining katta qismini tashkil etadi. Shu sababli, yangi tizim dasturlash loyihalarida Rust kabi xotira xavfsizligini kafolatlaydigan tillar tobora ko’proq qo’llanilmoqda.

Bog’liq tushunchalar

Unix, Ko’rsatgich, Kompilyator, Assembler, Dennis Ritchie, C++, Buffer overflow