ประวัติภาษา C
- พัฒนาโดย: Dennis Ritchie ที่ Bell Labs
- ปี: 1972
- วัตถุประสงค์: เขียน UNIX Operating System แทนภาษา Assembly, B, BCPL
Timeline สำคัญ
| ปี | เหตุการณ์ |
|---|---|
| 1969 | UNIX เริ่มพัฒนา (ภาษา Assembly) |
| 1970 | ภาษา B พัฒนาโดย Ken Thompson (จาก BCPL) |
| 1971-72 | Dennis Ritchie พัฒนา C จาก B เพิ่ม Types, Structures |
| 1972 | UNIX Kernel เขียนใหม่ด้วย C (ครั้งแรก OS เขียน High-level Language) |
| 1978 | K&R C: "The C Programming Language" โดย Kernighan & Ritchie |
| 1983 | ANSI จัดทำมาตรฐาน C (ANSI C / C89) |
| 1989 | ANSI C Ratified (C89/C90) |
| 1990 | ISO C90 (International Standard) |
| 1999 | C99 Standard (VLA, // Comments, inline, restrict, etc.) |
| 2011 | C11 Standard (Threads, Atomics, Generic Selections, _Static_assert) |
| 2018 | C18 Standard (Bug fixes เท่านั้น) |
| 2024 | C23 Standard (Attributes, constexpr, nullptr, modules, etc.) |
เหตุการณ์สำคัญที่เกี่ยวข้อง
- 1985: Windows 1.0 Released - Kernel ส่วนใหญ่เขียนด้วย C
- 1991: Linux Kernel เริ่มพัฒนาโดย Linus Torvalds - เขียนด้วย C
- 1992: Linux Released Under GPL - เป็นส่วนของ GNU OS
- 1977: Oracle Database เริ่มพัฒนา
- 1983: Oracle Rewrite จาก Assembly → C (กลายเป็น DB ยอดนิยม)
- GNU Project: เริ่มด้วย C และ Lisp - หลาย Components เขียนด้วย C
ทำไม C ถึง Popular จนวันนี้?
- Performance & Efficiency: ใกล้ Hardware, ควบคุม Memory ได้
- Portability: Compiler มีทุก Platform, Standard Library เหมือนกัน
- OS Development: Linux, Windows, macOS, iOS, Android Kernels ล้วนเป็น C
- Embedded Systems: Microcontrollers, IoT, Firmware
- Legacy Codebase: โค้ดล้านบรรทัด ยังคง Maintain และขยาย
- Foundation: C++, Objective-C, C#, Java, Python, Rust, Go, Swift ได้แรงบันดาลใจ/Implementation จาก C
Standard Versions สรุป
| Standard | Year | Key Features |
|---|---|---|
| K&R C | 1978 | Original, Implicit int, No Prototypes |
| C89/C90 | 1989/90 | ANSI/ISO Standard, Function Prototypes, const, volatile |
| C99 | 1999 | VLA, // Comments, stdint.h, inttypes.h, restrict, inline, _Bool, _Complex |
| C11 | 2011 | Threads (<threads.h>), Atomics, Generic Selections, Alignment, Bounds Checking Annex |
| C18 | 2018 | Defect Reports Only (No New Features) |
| C23 | 2024 | nullptr, constexpr, Attributes [[...]], Modules, typeof(), #embed |