You are on page 1of 16

C / C++ Programa

Dili Versiyonlar

C Programlama Dili Versiyon


C dilinin ilk kurulu aamalar 1969 -1973
arasndaki yllarda AT&T Laboratuvarlarnda
Dennis Ritchie(solda) ve Ken Thompson
tarafndan tamamlanmtr. 1973 ylna
gelindiinde C artk kurulu aamasn
tamamlayp gl bir programlama dili
olmutur. Bunun sonucunda PDP-11/20
assembly dili ile yazlan UNIX'in ekirdeinin
byk ksm C ile yeniden yazlmt. Bylece
UNIX, ekirdei bir assembly dili ile
yazlmayan ilk iletim sistemlerinden biri
olmutur.

K & R C Versiyonu
1978'de Ritchie ve Brian Kernighan The C Programming Language kitabnn ilk basksn
yaptlar. C programclar tarafndan "K&R" olarak bilinen bu kitap, C dilinin gayriresmi
standard olarak kullanld. C'nin bu versiyonu bugn "K&R C" olarak adlandrlr. Bu kitabn
ikinci basks ise aada
anlatlan ANSI C standardn ierir.
K&R dilde u deiiklikleri yapt:

struct veri tipleri eklendi


long int veri tipi eklendi
unsigned int veri tipi eklendi
=+ operatr += olarak deitirildi

K&R C genellikle tm C derleyicilerinin desteklemek zorunda olduu dilin en temel ksm


olarak kabul edilir. Bundan sonra yaynlanan C versiyonlar olmasna ragmen programclar
tarafndan bu dil ortak payda olarak kabul edildi.

ANSI(C89)/ISO(C95) C Versiyonu
1983'te Amerikan Ulusal Standartlar Enstits (ANSI) bir C standard oluturmak iin
bir kurul oluturdu. Bu almadan sonra, bu kurul standard 1989'da tamamlad ve
standart ANSI X3.159-1989 "Programming Language C (C Programlama Dili)" olarak
yaymland. Dilin bu versiyonu genellikle ANSI C olarak adlandrlr. 1990'da bu standart,
kk deiikliklerle Uluslararas Standartlar rgt (ISO) tarafndan da benimsenip
ISO/IEC 9899:1990 olarak yaymland.
ANSI C'yi oluturmann amalardan biri K&R C'yi ieren ve dile sonradan katlan
aadaki zellikleri de dile katan bir standart oluturmakt.

void fonksiyonlar ve void * veri tipi


struct ya da union veri tipi dndren fonksiyonlar
her bir struct'n alan adlar iin ayr bir ad alan
struct veri tipleri iin atama
bir nesneyi yazmaya kar korumal yapmak iin const anahtar szc
standart bir C ktphanesi
enumeration'lar
single-precision float tipi

C99 C Versiyonu
ANSI standartlatrma ileminden sonra C dili uzun bir sre sabit kald, ancak C+
+ gelimeyi srdrd. Buna bal olarak, 1990'larn sonunda ISO standard
gncellendi ve 1999'da ISO 9899:1999 olarak yaymland. 2000 ylnn Mart'nda
ise, "C99" olarak bilinen bu standart ANSI tarafndan da kabul edildi.
C99'un yeni zellikleri;
inline fonksiyonlar
C++'da olduu gibi artk deikenler programn herhangi bir yerinde
tanmlanabilirler
long long int, boolean, complex gibi yeni veri tipleri
deiken uzunlua sahip diziler
C++'dan alnan, // ile balayan tek satrlk program ii aklamalar
snprintf () gibi yeni ktphane fonksiyonlar
stdint.h gibi yeni balk dosyalar

C++ Programlama Dili


Versiyonlar
1979 ylnda Bjarne Stroustrup n almalar sonucunda C diline class yapsnn
eklenmesiyle ortaya kmtr. C diline yaplan yeni eklentiler yaplmtr. Bunlar;;
Snflar
Member Fonksiyonlar,
Derived(Tretilmi) Snflar,
Public ve Private eriim belirteleri,
Inline Fonksiyonlar,
Overloaded Assingment Operatr,
Constructors ve Destructors metotlar
Bu gelimelerden sonra 1984 ylnda C84 uygulama klavuzu yaynlanarak C++
dilinin ilk dkman yaynlanm oldu.

Cfront 1.0 C++ Versiyonu


1985 ylna gelindiinde C++ dilinin bu versiyonu yaynlanmtr.
Versiyonla yaplan eklentilerden sonra ayn yl ierisinde The C++
Programming Language kitabnn ilk basks da yaynlanmtr.
Versiyonun yeni eklentileri;

Virtual Function Specifier(Sanal Fonksiyon Belirteci),


Function and Operator Overloading,
Reference Declaration(& ve &&),
Const sabit deikeni,
Scope Resolution Operator(::),

Versiyonun yeni ktphaneleri;

<complex.h>
<string.h>
<iostream.h>

1987 ylna gelindiinde iste C++ programla dili GNU iletim sisteminin resmi derleyicisi
ve modern Unix iletim sistemleri tarafndan derleyici olarak kabul edilen GCC derleme
sisteminin 1.15.3 versiyonunu desteklemeye balamtr.

Cfront 2.0 C++ Versiyonu


1989 ylnda C++ dilinin versiyonu yaynland.
Versiyonun yeni eklentileri;

Multiple Inheritance,
Pointer to Members,
Protected eriim belirteci,
Type-safe Linkage,
Abstract Classes,
Static ve Const Function,

Versiyonun yeni ktphanesi;


I/O manipulators

1990 ylnda The Annotated C++ Reference Manual ismiyle yaynlanan kitapta henz
dile eklentisi gerekletirilmemi baz tasarm aamasndaki uygulamalarn tarifi
sunuldu. Bunlar;
Namespaces,
Exception Handling,
Nested Classe.
1990 ylnda ANSI,
1991 ylnda da ISO tarafndan bir C++ standartlar yaynland .
1992 ylnda STL (Standart Template Library) C++ diline uyguland.

C++98 (ISO/IEC 14882:1998)Versiyonu


1998 ylnda C++ dilinin C++98 versiyonu piyasaya srlmtr.
Versiyonun yeni eklentileri;
RTTI,
Cast Operators,
Boll deiken tipi,
Template instantiations,
Versiyonun yeni ktphaneleri;
Containers
Algorithm,
Iterators
Function objects,
Locales,
Bitset,
Valarray,
Auto_pt,
Templatized string

1999 ylnda C++ iin yazlm birok algoritma, fonksiyon, snf ve thread leri ieren
olduka byk Boots ktphanesi yaynlanmtr.

C++03 (ISO/IEC 14882:2003)Versiyonu


Bu versiyon teknik dzeltmeleri amalayan kk bir revizyon olmutur. Bu revizyonla
beraber gelen dzeltme;
Value initialization
2006 ylna geldiinde 92 ekirdek eklenti ve 125 ktphane ierisindeki hata ve
dzeltmeleri yaynlamak amacyla bir Performance TR (ISO/IEC TR 18015:2006)
bildirisi yaynland. Bu yayna da TR1 ad verildi.
2007 ylnda ise C99 dan gelen zellikle ve Boost eklentisinden katlan zelliklerda
yaplan deiikleri yaynlaman amacyla Library extension TR1 (ISO/IEC TR
19768:2007) raporunu yaynladlar.

2010 ylnda Mathematical Special Functions (ISO/IEC 29124:2010) ismiyle


yaynlanan raporda matematik ve trigonotmeri alanndaki bir ok zel fonksiyon
entegre edildi. Bunlar;

Elliptic integrals,
Exponential integral,
Laguerre polynomials,
Legendre polynomials,
Hermite polynomials,
Bessel functions,
Newmann functions,
Beta function,
Riemann zeta function.

2011 ylndaki C++11(ISO/IEC 14882:2011) raporunda bir ok zelliinde


deiiklikler yaplmtr.

Dil alanndaki yeni zellikler; auto and decltype, defaulted and deleted functions, final
and override, trailing return type, rvalue references, move constructors/move assignment,
scoped enums, constexpr and literal types, list initialization, delegating and inherited
constructors, brace-or-equal initializers, nullptr, long long, char16_t and char32_t, type
aliases, variadic templates, generalized unions, generalized PODs, Unicode string literals,
user-defined literals, attributes, lambda expressions, noexcept, alignof and alignas,
multithreaded memory model, thread-local storage, GC interface, range for (based on a
Boost library), static assertions (based on a Boost library)

Ktphane alanndaki yeni zellikler; atomic operations library, emplace() and other use
of rvalue references throughout all parts of the existing library, std::initializer_list, stateful
and scoped allocators, forward_list, chrono library, ratio library, new algorithms, Unicode
conversion facets

TR1 versiyonundan zel fonksiyon dndaki tm eklentileri almtr.

Boost alannda yaplan deiiklikler; The thread library, exception_ptr, error_code and
error_condition, iterator improvements (std::begin, std::end, std::next, std::prev)

C dilinden C-Style Unicode dnm fonksiyonunu almtr.

Yine 2011 ylnda Decimal floating-point TR (ISO/IEC TR 24733:2011) ismiyle kayan


yaz aritmetiini eklenti olarak getirmitir.
2012 ylnda The Standart C++ Foundation adl platformda tm derleyiciler zerindeki
C++ standartlar hakknda haber ve yenilikleri duyurma amalamtr.

C++14 Versiyonu
Bu versiyonla daha nceli yeniliklerle standartlaan C++ versiyonlar zerinde kk
revizyonlar gereklemitir.

Dil alanndaki yenilikler; variable templates, polymorphic lambdas, lambda captures


expressions, new/delete elision, relaxed restrictions on constexpr functions, binary literals, digit
separators, return type deduction for functions, aggregate initialization for classes with brace-orequal initializers.

Ktphane alanndaki yenilikler; std::make_unique, std::shared_timed_mutex and


std::shared_lock, std::integer_sequence, std::exchange, std::quoted, and many small
improvements to existing library facilities, such as two-range overloads for some algorithms, type
alias versions of type traits, user-defined string, duration, and complex number literals.

2015 ylnda, Filesystem library TS (ISO/IEC TS 18822:2015) eklentisinde temel


boots.filesystem ktphanesinde baz deiiklikler yaplmtr.
2015 ylnda, Extensions for Transactional Memory TS (ISO/IEC TS 19841:2015)
eklentisi ile bellek fonksiyonunu gelitirildi.
2015 ylnda, Extensions for Parallelism TS (ISO/IEC TS 19570:2015) eklentisi ile
paralel programlama ilemlerinin yaplaca yenilikler standartlatrlmtr.
2015 ylndaki Extensions for Library Fundamentals TS (ISO/IEC TS 19568:2015)
eklentilerle temel ktphane uygulamalarnda yeniliklere gidilmitir.
Bunlar; optional, any, string_view, sample, search,apply, polymorphic allocators, and variable
templates for type traits.

2015 ylnda, Extensions for Concepts TS (ISO/IEC TS 19217:2015) eklentisi ile


deiken tipleri zerinde gereksinim deiiklikleri ve kstlama farkllklar yaplmtr.
2016 ylnda, Extensions for Concurrency TS (ISO/IEC TS 19571:2016) eklentisi ile
std::future, latches and barriers, and atomic smart pointers ktphaneleri gelitirilmitir.

Beni dinlediiniz iin teekkrler


lhan SALIK

You might also like