01Overview

In 1972 Ritchie designed C at Bell Labs to rewrite Unix. It inherited the economy of B and BCPL and added types and structs. In 1978 Kernighan and Ritchie published The C Programming Language, which served both as a textbook and as the de facto standard.

C’s philosophy is to trust the programmer: pointers address memory directly, arrays are unchecked, conversions are free. That made it fast and flexible — and made buffer overflows the dominant vulnerability for decades. ANSI C standardised it in 1989, and C is still the first choice for kernels, embedded systems and high-performance libraries.

02History

  1. 1972

    C is created

    Designed to rewrite Unix.

  2. 1978

    The K&R book

    The de facto standard.

  3. 1989

    C89

    Standardised by ANSI.

  4. 1999

    C99

    Variable-length arrays and inline functions.

  5. 2022

    C23

    A modern revision.

03Core concepts

Pointers

Holding a memory address directly: flexible, and dangerous.

Manual memory management

malloc/free hand lifetime decisions to the programmer.

Undefined behaviour

The standard says nothing about the result, so the compiler may optimise freely.

04Hands-on

Do it once — it beats reading it ten times

Write a linked list in C, then deliberately overflow a buffer and watch what valgrind and ASan report

05Self-check

Say it in your own words first, then open the answer. Whatever you cannot explain is what to review next.

Can you explain "Pointers"?

Holding a memory address directly: flexible, and dangerous.

Can you explain "Manual memory management"?

malloc/free hand lifetime decisions to the programmer.

Can you explain "Undefined behaviour"?

The standard says nothing about the result, so the compiler may optimise freely.

What problem did it solve, and why was there nothing better at the time?

Go back to the history section: how was this done before, and what did it cost?

If you had to build it today, how would you break it down?

Use the hands-on task above: write a plan of at most three steps before you start.

06Key people

D

Dennis Ritchie

1941 – 2011

Creator of C and Unix.

B

Brian Kernighan

1942 –

Co-author of The C Programming Language.

07Further reading

  • The C Programming LanguageKernighan & Ritchie · 1978
  • C Traps and PitfallsAndrew Koenig · 1988