Programavimo kalba C – gana žemo lygio programavimo kalba, sukurta XX a. aštuntojo dešimtmečio pradžioje. Jos kūrėjai – Kenas Tomsonas (Ken Thompson) ir Denisas Ričis (Dennis Ritchie), o kalbos pagrindinis tikslas buvo – naudojimas UNIX operacinėje sistemoje.
Kalba sparčiai paplito ir dėl ypatingai didelio efektyvumo plačiai naudota operacinių sistemų, kompiliatorių, kitų sisteminių programų kūrimui. Taip pat kalba dažnai naudojama švietimo įstaigose programavimo mokymui.
C – minimalistinė kalba, žymiai artimesnė asembleriui, nei kitos programavimo kalbos. C kalba yra žemo ar vidutinio lygio tam, kad būtų lengviau kurti didelės apimties programas naudojant procedūrinį programavimą, bet darant mažiau klaidų.
Pagrindinės C savybės:
Savybės, būdingos daugeliui programavimo kalbų, bet kurių nėra C kalboje:
Struktūrinis programavimas – procedūrinio programavimo porūšis, viena pagrindinių programavimo paradigmų. Vienas žymiausių struktūrinio programavimo bruožų – GOTO sakinių eliminavimas.
Yra keletas struktūrinio programavimo metodologijų. Dažniausios – Jaksono, kuri remiasi duomenų struktūrų ir programos struktūros gretinimu; taip pat Dijkstros, kuri remiasi programos dalinimu į posistemes, turinčias tik vieną įėjimo ir vieną išėjimo tašką. Vartojant struktūrinio programavimo terminą, dažniausiai turima galvoje pastaroji metodologija.
Struktūriškai programuoti galima beveik bet kuria programavimo kalba, bet nuo maždaug 1970 metų, kai pradėjo populiarėti struktūrinis programavimas, naujos procedūrinio programavimo kalbos turėjo papildomų priemonių, skatinančių struktūriškai programuoti. Žinomesnės struktūrinio programavimo kalbos – Pascal ir Ada.
XX amžiaus pabaigoje struktūrinį programavimą pradėjo keisti pažangesnis objektinis programavimas, leidžiantis kurti sudėtingesnes struktūras (objektus), apjungiančias ir programos dalis, ir duomenis.
Nestruktūrinio programavimo kalbose programos eiga valdoma GOTO sakiniais, perkeliančiais vykdymą į tam tikrą kodo eilutę. Tuo tarpu struktūrinio programavimo kalbose naudojami sąlyginiai bei ciklo sakiniai ((„if - then - else“, „switch“, „unless“, „while“, „until“, ir „for“), kuriais galima sudaryti vykdymo atšakas. Dauguma kalbų taip pat turi ir GOTO galimybę, kuri daugiausiai naudojama per didelio gylio vidinių struktūrų eliminavimui bei kritinėms klaidoms apdoroti.