Cprogramming 简明教程
History of C Language
C programming 是一种通用、面向过程的程序设计语言。它既独立于机器,又具有结构性。C 是一种高级编程语言,由 Dennis Ritchie 在 20 世纪 70 年代初开发。它现在是全球最流行且最具影响力的编程语言之一。
C programming is a general-purpose, procedure-oriented programming language. It is both machine-independent and structured. C is a high-level programming language developed by Dennis Ritchie in the early 1970s. It is now one of the most popular and influential programming languages worldwide.
C is popular for its simplicity, efficiency, and versatility. It has powerful features including low-level memory access, a rich set of operators, and a modular framework.
除了其在计算机编程技术演变方面的意义之外,C 语言的设计对当今使用的大多数其他编程语言都有着深远的影响。受 C 语言影响的语言包括 Java 、 PHP 、 JavaScript 、 C# 、 Python 等等。这些语言的语法、控制结构和其他基本功能都是基于 C 设计的。
Apart from its importance with respect to the evolution of computer programming technologies, the design of C language has a profound influence on most of the other programming languages that are in use today. The languages that are influenced by C include Java, PHP, JavaScript, C#, Python and many more. These languages have designed their syntax, control structures and other basic features from C.
C 由于其可移植性,支持不同的硬件和操作系统。通常,它被视为一门基础语言,并影响了许多其他计算机语言。它在学术界和工业界有着最广泛的应用。C 的相关性和广泛认可性使其对未来的程序员至关重要。
C supports different hardware and operating systems due to its portability. Generally, it is considered as a basic language and influenced many other computer languages. It is most widely used in academia and industry. C’s relevance and extensive acceptance make it crucial for prospective programmers.
C 编程语言的发展历史对于计算机科学和软件工程的发展而言非常引人入胜且至关重要。
The history of the C programming language is quite fascinating and pivotal in the development of computer science and software engineering.
按年份划分的编程发展如下:
Year wise development of programming is as follows −

Overview of C Language History
C 语言历史概述如下:
A brief overview of C language history is given below −
Origin of C Programming
“ALGOL” 是编程语言的基础或始祖。它在 1960 年首次推出。“ALGOL” 在欧洲国家被广泛使用。ALGOL 为开发人员社区引入了结构化编程的概念。1967 年标志着一种名为 “BCPL”(Basic Combined Programming Language 的缩写)的新型计算机编程语言的推出。BCPL 由马丁·理查兹在 20 世纪 60 年代中期设计。
'ALGOL' was the foundation or progenitor of programming languages. It was first introduced in 1960. 'ALGOL' was widely used in European countries. The ALGOL had introduced the concept of structured programming to the developer community. The year 1967 marked the introduction of a novel computer programming language known as 'BCPL', an acronym for Basic Combined Programming Language. BCPL was designed by Martin Richards in the mid-1960s.

丹尼斯·里奇在 20 世纪 70 年代初的贝尔实验室创建了 C 语言。它是从由肯·汤普森创建的较旧语言 B 发展而来的。创建 C 语言的主要目的是构建 Unix 操作系统,这对当代计算机的进步至关重要。BCPL、B 和 C 都牢牢地适合 Fortran 和 Algol 60 所代表的传统过程类型。BCPL、B 和 C 在许多细节上在句法上有所不同,但从广义上讲它们是相似的。
Dennis Ritchie created C at Bell Laboratories in the early 1970s. It developed from an older language named B that Ken Thompson created. The main purpose of C’s creation was to construct the Unix operating system, which was crucial in the advancement of contemporary computers. BCPL, B, and C all fit firmly in the traditional procedural family typified by Fortran and Algol 60. BCPL, B and C differ syntactically in many details, but broadly they are similar.
Development of C Programming
1971 年,丹尼斯·里奇开始研究 C 语言,他和贝尔实验室的其他开发人员不断对其进行改进。此语言适用于系统编程和应用程序开发,因为它被设计为简单、有效和可移植的。
In 1971, Dennis Ritchie started working on C, and he and other Bell Labs developers kept improving it. The language is appropriate for both system programming and application development because it was made to be straightforward, effective, and portable.
Standardization of C Programming
丹尼斯·里奇从 1971 年开始开发 C 语言,并与贝尔实验室的其他开发人员合作,对其进行改进。这种语言在开发时考虑到了可移植性、简单性和效率,使其适用于应用程序和系统编程。
Dennis Ritchie commenced development on C in 1971 and, in collaboration with other developers at Bell Labs, proceeded to refine it. The language was developed with portability, simplicity, and efficiency in mind, rendering it applicable to both application and system programming.
History of C Versions After Traditional C
K&R C
丹尼斯·里奇与布莱恩·克尼汉一起出版了他们的著作《C 编程语言》第一版。这本书又称为 K&R(作者姓名首字母缩写),多年来一直作为该语言的非正式规范。书中描述的 C 语言版本通常称为“K&R C”。它也称为 C78 。
Dennis Ritchie along with Brian Kernighan published the first edition of their book "The C Programming Language". Popularly known as K&R (the initials of its authors), the book served for many years as an informal specification of the language. The version of C that it describes is commonly referred to as "K&R C". It is also referred to as C78.
KR C 中引入的很多 C 语言特性如今仍然是语言的一部分,并且在 2018 年被正式认可。在 C 的早期版本中,只有返回类型而非 int 的函数才会在函数定义之前使用时进行声明;未经预先声明而使用的函数则假定返回类型 int 。
Many of the features of C language introduced in K&R C are still the part of the language ratified as late as in 2018. In early versions of C, only functions that return types other than int must be declared if used before the function definition; functions used without prior declaration were presumed to return type int.
AT&T 和其他供应商的 C 编译器支持添加到 KR C 语言中的多项特性。尽管 C 开始变得流行起来,但缺少统一性。因此,人们认为语言规范必须标准化。
C compilers by AT&T and other vendors supported several features added to the K&R C language. Although C started gaining popularity, there was a lack of uniformity in implementation. Therefore, it was felt that the language specifications must be standardized.
ANSI C
20 世纪 80 年代,美国国家标准协会 (ANSI) 开始为 C 语言制定一项正式标准。这导致了 ANSI C 的开发,该标准于 1989 年标准化。ANSI C 引入了多项新特性,并阐明了早期语言版本中存在的模糊性。
In the 1980s, the American National Standards Institute (ANSI) began working on a formal standard for the C language. This led to the development of ANSI C, which was standardized in 1989. ANSI C introduced several new features and clarified ambiguities present in earlier versions of the language.
C89/C90
ANSI C 标准在国际上被采纳,并被称为 C89(或 C90,具体取决于认可年份)。它多年来一直是编译器和开发工具的基础。
The ANSI C standard was adopted internationally and became known as C89 (or C90, depending on the year of ratification). It served as the basis for compilers and development tools for many years.
C99
1999 年,ISO/IEC 批准了 C 标准的更新版本,即 C99。C 标准在 20 世纪 90 年代末进一步修订。
In 1999, the ISO/IEC approved an updated version of the C standard known as C99. The C standard was further revised in the late 1990s.
C99 引入了新特性,包括内联函数、多项新数据类型(如用于表示复数的复数类型),以及可变长度数组等。它还增加了对从 // 开始的 C++ 风格 one-line comments 的支持。
C99 introduced new features, including inline functions, several new data types such as a complex type to represent complex numbers, and variable-length arrays etc. It also added support for C++ style one-line comments beginning with //.
C11
C11 于 2011 年发布,是 C 标准的另一项重大修订。C11 标准为 C 和库添加了新特性,并引入了多线程支持、匿名结构和联合,以及改进的 Unicode 支持等特性。
C11, published in 2011, is another major revision of the C standard. The C11 standard adds new features to C and the library and introduced features such as multi-threading support, anonymous structures and unions, and improved Unicode support.
它包括类型通用宏、匿名结构、改进的 Unicode 支持、原子操作、多线程和边界检查函数。它与 C++ 的兼容性得到了改进。
It includes type generic macros, anonymous structures, improved Unicode support, atomic operations, multi-threading, and bounds-checked functions. It has an improved compatibility with C++.
C17
C17 标准已于 2018 年 6 月发布。C17 是 C 语言的当前标准。此次标准修订未引入任何新特性。它仅对 C11 中的缺陷进行了某些技术性更正和澄清。
The C17 standard has been published in June 2018. C17 is the current standard for the C programming language. No new features have been introduced with this standard revision. It only performs certain technical corrections, and clarifications to defects in C11.
C18
C 标准的最新版本 C18 于 2018 年发布。它包括对 C11 的一些小修改和缺陷修复。
The most recent version of the C standard, C18, was published in 2018. It includes minor revisions and bug fixes compared to C11.
C23
C23 是下一次 C 语言标准修订的非正式名称,预计将在 2024 年发布。此次修订预计将引入 14 个新关键字。
C23 is the informal name for the next major C language standard revision, expected to be published in 2024. 14 new keywords are expected to be introduced in this revision.
多年来,C 一直保持流行,因为它简单、高效且通用。它被用于创建多种软件,包括 operating systems 、 embedded systems 、应用程序和游戏。C 的语法和语义还影响到了不同的现代编程语言,如 C++ 、Java 和 Python。
C has remained popular over time because to its simplicity, efficiency, and versatility. It has been used to create a diverse spectrum of software including operating systems, embedded systems, applications, and games. C’s syntax and semantics have also impacted different modern programming languages such as C++, Java, and Python.