C is a general-purpose, procedural programming language developed in 1972 by Dennis M. Ritchie at AT&T Bell Laboratories (Murray Hill, New Jersey). Originally designed to implement the UNIX Operating System, C has evolved into one of the most foundational, influential, and widely utilized programming languages in computer science history.

Dennis Ritchie (1941 – 2011) — Father of C Language
C did not emerge in isolation; it was the direct successor to earlier breakthrough languages developed during the 1960s and 1970s:
Year |
Language / Milestone |
Developed By |
Significance |
|---|---|---|---|
1960 | ALGOL 60 | International Committee | Introduced block structure and structured programming. |
1967 | BCPL | Martin Richards (Cambridge) | Basic Combined Programming Language for system software. |
1970 | B Language | Ken Thompson (Bell Labs) | Typeless language created for early UNIX on PDP-7. |
1972 | C Language | Dennis Ritchie (Bell Labs) | Added strong data typing, structures, and pointer manipulation to PDP-11. |
1978 | K&R C | Kernighan & Ritchie | Published classic book “The C Programming Language” as informal specification. |
1989/90 | ANSI / ISO C (C89/C90) | ANSI X3J11 Committee | First official standardized specification of C worldwide. |
1999 | C99 Standard | ISO/IEC 9899:1999 | Added inline functions, |
2011 | C11 Standard | ISO/IEC 9899:2011 | Introduced standard multi-threading support ( |
2018 | C17 Standard | ISO/IEC 9899:2018 | Technical refinement and security defect resolutions for C11. |
2024 | C23 Standard | ISO/IEC Working Group | Modernized C with |
Middle-Level Language: C seamlessly combines the speed, control, and bit-level manipulation of low-level assembly language with the readability, structure, and portability of high-level languages.
Hardware & System Portability: Code written in standard C can compile and run across virtually any microprocessor architecture — from x86_64 servers to ARM mobile chips and 8-bit microcontrollers.
Direct Memory Control: Through pointers and dynamic memory allocation, C grants complete, uninhibited authority over memory management.
Mother of Modern Languages: C syntax directly inspired C++, C#, Java, JavaScript, PHP, Rust, and Go.
Even today, C remains the backbone of world-scale infrastructure:
Operating System Kernels: The Linux Kernel, Microsoft Windows Kernel, and Apple macOS/iOS Darwin Kernel are written predominantly in C.
Database Engines: MySQL, PostgreSQL, SQLite, and Oracle DB cores are written in C/C++.
Language Interpreters & Compilers: Python (CPython), PHP (Zend Engine), and Node.js (V8 / libuv) rely directly on C/C++ foundations.
Embedded Systems & IoT: Automotive engine control units (ECUs), aerospace flight controllers, routers, and robotics.
Master these historical facts and viva questions frequently asked in BCA first-semester university exams.
Part 1: Multiple Choice Questions (BCA Exam Preparation)
Q1. Who is recognized as the father/creator of C programming?
A) Bjarne Stroustrup
B) Dennis Ritchie
C) James Gosling
D) Ken Thompson
Correct Answer: B) Dennis Ritchie.
Q2. In which laboratory and year was C developed?
A) Bell Laboratories in 1972
B) MIT in 1980
C) Microsoft in 1985
D) Stanford in 1969
Correct Answer: A) AT&T Bell Laboratories in 1972.
Q3. Which operating system was rewritten almost entirely in C?
A) MS-DOS
B) UNIX
C) Windows 95
D) CP/M
Correct Answer: B) UNIX.
Q4. Which programming language was the direct predecessor of C?
A) Java
B) B language
C) Fortran
D) Pascal
Correct Answer: B) B language (developed by Ken Thompson).
Part 2: Frequently Asked University Viva Questions
1. Why is C referred to as a "Middle-Level Language"?
Answer: Because it bridges high-level language features (functions, structured control flow, data types) with low-level capabilities (direct memory addressing, pointer arithmetic, bitwise operators, register access).
2. What was the limitation of the B language that led Dennis Ritchie to invent C?
Answer: The B language was a “typeless” language that treated all data as raw machine words, making it incapable of handling varying data sizes like characters, integers, floating-point numbers, and structures required for the PDP-11 computer.