A C nyelv alapelemeinek többsége a Martin Richards által kifejlesztett BCPL (Basic
Combined Programming Language, 1963) nyelvből származik. Ez a származtatás közvetett
módon - a B nyelven keresztül – ment végbe. A B programozási nyelvet D. M. Ritchie és K.
L. Thompson tervezete és implementálta 1970-ben az AT&T Bell Laboratóriumok cégnél,
és ezen a nyelven készült el az első UNIX operációs rendszer DEC PDP-7 számítógépre. A B
nyelv azonban nem bizonyult elég hatékonynak az új PDP-11 számítógép UNIX operációs
rendszerének megírására. Mivel azonban a magas szintű nyelven történő implementációról
nem akartak lemondani, Dennis Ritchie 1971-ben hozzálátott a B nyelv új változatának
kidolgozásához, amit C-nek neveztek el. A felmerült problémák kiküszöbölésén kívül
Ritchie igyekezett a C nyelvbe visszahozni azokat az általános programozási elemeket,
amelyek az Algol-60 nyelv „karcsúsítása” során kikerültek a BCPL és B nyelvekből.
A B nyelv a BCPL nyelv közvetlen leszármazottja, mely nagyon hasonlít a C nyelvhez. Ez a
nyelv is rendszerközeli programozásra készült, de inkább a rekurzív - elsődlegesen nem
numerikus - rendszerprogramok készítésére szánták alkotói. Nem ért el a C-hez hasonló
sikereket, bár maga a nyelv tartalmaz egy-két érdekes és jól használható ötletet.
Jellemzője a típusnélküliség, amely a gyakorlatban nagyon jól használható. További korai
implementációk: PDP-11, Honeywell és GCOS rendszerekre.