Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      History of C

      From cppreference.com
      <c‎ |language
       
       
       

      Contents

      [edit]Early C

      • 1969: B created, based on BCPL, to replace PDP-7 assembler as the system programming language for Unix
      • added operators++,--, compound assignment, remained a typeless language like BCPL
      • 1971: NB ("new B") created when porting B to PDP-11
      • types (int,char, arrays and pointers), array-to-pointer conversion, compilation to machine code
      • 1972: Language renamed to C
      • struct, operators&& and||, preprocessor, portable I/O
      • 1973: Unix re-written in C
      • unsigned,long,union, enumerations, increased type safety
      • 1978: The C Programming Language, 1st edition

      [edit]Standard C

      • 1983: ANSI established X3J11 committee
      • 1988: The C Programming Language, 2nd edition
      • 1989:C89, the ANSI C standard published
      1. codified existing practices
      2. new features:volatile,enum,signed,void, locales
      3. From C++:const, function prototypes
      • 1990:C90, the ANSI C standard accepted as ISO/IEC 9899:1990
      • 1994: Technical corrigendum 1 (ISO/IEC 9899:1990/Cor.1:1994)
      1. greatly expanded wide and multibyte character support (<wctype.h>,<wchar.h>, additions and changes to stream I/O, etc)
      2. digraphs,<iso646.h>,
      • 1996: Technical corrigendum 2 (ISO/IEC 9899:1990/Cor.2:1996)
      • 1999:C99 (ISO/IEC 9899:1999)
      1. new features:bool,longlong,<stdint.h>,<inttypes.h>,restrict, compound literals, variable length arrays, flexible array members, designated initializers,<fenv.h>, variadic macros, complex numbers,__func__, hexadecimal floating-point format (%a), monetary formatting inlconv,isblank, concatenation of narrow and wide string literals, trailing comma in enumerations, empty arguments in function-like macros,STDC_* pragmas,va_copy, null return oftmpnam, null pointer insetvbuf,hh andll length-specifiers inprintf,snprintf,_Exit,<tgmath.h>, POSIX-likestrftime specifiers
      2. from C++:inline, mix declarations and code, declarations in the init-clause of the for loop,// comments, universal character names in source code
      3. removed implicit functions and implicitint
      • 2001: Technical corrigendum 1 (ISO/IEC 9899:1999/Cor.1:2001)
      • 2004: Technical corrigendum 2 (ISO/IEC 9899:1999/Cor.2:2004)
      • 2004: Unicode TR (ISO/IEC TR 19769:2004) (ISO store) (N1040 November 7, 2003 draft)
      • 2007: Technical corrigendum 3 (ISO/IEC 9899:1999/Cor.3:2007) (N1256 September 7, 2007 draft)
      • 2007: Bounds-checking interfaces TR (ISO/IEC TR 24731-1:2007) (ISO store) (N1225 March 28, 2007 draft)
      • 2008: Embedded TR (ISO/IEC TR 18037:2008) (ISO store) (N1021 September 24, 2003 draft)
      • 2009: Decimal floating-point TR (ISO/IEC TR 24732:2009) (ISO store) (N1241 July 5, 2007 draft)
      • 2009: Mathematical special functions TR (ISO/IEC TR 24747:2009) (ISO store) (N1182 August 2, 2006 draft)
      • 2010: Dynamic allocations functions TR (ISO/IEC TR 24731-2:2010) (ISO store) (N1388 June 1, 2009 draft)
      • 2011:C11 (ISO/IEC 9899:2011) (ISO store) (ANSI store) (N1570 April 12, 2011 draft)
      1. thread-aware memory model,<stdatomic.h>,<threads.h>, type-generic functions,alignas/alignof,noreturn,static_assert, analyzability extensions, extensions to complex and imaginary types, anonymous structures and unions, exclusive file open mode,quick_exit
      2. removedgets
      3. from Bounds-checking interfaces TR: bounds-checking interfaces,
      4. from Unicode TR:char16_t,char32_t, and<uchar.h>
      • 2012: Technical corrigendum 1 (ISO/IEC 9899:2011/Cor 1:2012) (ISO store)
      • 2013: Secure Coding Rules TS (ISO/IEC TS 17961:2013) (ISO store) (N1718 May 30, 2013)
      • 2014: FP TS part 1: Binary floating-point arithmetic (ISO/IEC TS 18661-1:2014) (ISO store) (N1778 2013 draft)
      1. provides changes to C11 (mostly to Annex F) that cover all basic requirements and some recommendations of IEC 60559:2011 (C11 was built on IEC 60559:1989)
      • 2015: FP TS part 2: Decimal floating-point arithmetic (ISO/IEC TS 18661-2:2015) (ISO store) (N1912 2015 draft)
      1. provides changes to C11 to support all the requirements, plus some basic recommendations, of IEC 60559:2011 for decimal floating-point arithmetic. This supersedes ISO/IEC TR 24732:2009.
      • 2015: FP TS part 3: Interchange and extended types (ISO/IEC TS 18661-3:2015) (ISO store) (N1945 2015 draft)
      1. provides changes to C11 to support the recommendations of IEC 60559:2011 for extended floating‐point formats and the interchange formats, both arithmetic and non-arithmetic.
      • 2015: FP TS part 4: Supplementary functions (ISO/IEC TS 18661-4:2015) (ISO store) (N1950 2015 draft)
      1. provides changes to C11 to support all mathematical operations recommended by IEC 60559:2011, including trigonometry in π units, inverse square root, compounded interest, etc.
      • 2016: FP TS part 5: Supplementary attributes (ISO/IEC TS 18661-5:2016) (ISO store) (N2004 2016 draft)
      1. provides changes to C11 to support all supplementary attributes (evaluation model, exception handling, reproducibility, etc) recommended by IEC 60559:2011
      Main Article: C17
      Defect Reports fixed in C17 (54 defects)
      • 2023C23 (ISO/IEC 9899:2024). C23 is the current revision of the C standard.
      Main Article: C23
      Defect Reports fixed in C23 (? defects)

      [edit]Future development

      • Parallelism TS (DraftN2017 2016-03-10)
      • Transactional Memory TS (DraftN1961 2015-09-23)
      • C (Latest draftn3550 2025-05-04)
      1. List of issues that were not granted DR status: (N2556 2020-08-02)
      Main Article: C29 ?
      Next major C language standard revision

      [edit]See also

      C++ documentation forHistory of C++

      [edit]External links

      1. The Development of the C Language by Dennis M. Ritchie
      2. Rationale for the C99 standard
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=c/language/history&oldid=178579"

      [8]ページ先頭

      ©2009-2025 Movatter.jp