C +
+ (lihat diucapkan plus plus) adalah bahasa pemrograman yang tujuan umum,
statis diketik , bentuk-bebas , multi-paradigma dan dikompilasi . Hal ini dianggap
sebagai bahasa tingkat menengah, karena terdiri dari kedua tingkat tinggi dan tingkat
rendah fitur bahasa. Dikembangkan oleh Bjarne Stroustrup mulai tahun 1979 di
Bell Labs , C + + awalnya bernama C with Classes, menambahkan berorientasi
objek fitur , seperti kelas, dan perangkat tambahan lain untuk bahasa
pemrograman C . Bahasa ini berganti nama C + + pada tahun 1983, sebagai pun
melibatkan operator increment .
C +
+ adalah salah satu bahasa pemrograman yang paling populer dan diimplementasikan
pada berbagai hardware dan platform sistem operasi. Sebagai compiler efisien
untuk kode asli, domain aplikasi termasuk perangkat lunak sistem, perangkat
lunak aplikasi , driver perangkat, perangkat lunak tertanam, server kinerja
tinggi dan aplikasi-aplikasi client, dan perangkat lunak hiburan seperti video
game . Beberapa kelompok memberikan keduanya gratis dan eksklusif C + +
compiler software, termasuk GNU Project , LLVM , Microsoft dan Intel . C + +
telah sangat mempengaruhi banyak bahasa pemrograman populer lainnya, terutama C
# dan Java .
Bahasa
ini dimulai sebagai perangkat tambahan untuk C , pertama menambahkan kelas ,
maka fungsi virtual , operator overloading , multiple inheritance , template
dan penanganan eksepsi , antara fitur-fitur lainnya. Setelah tahun pembangunan,
standar bahasa pemrograman C + + diratifikasi pada tahun 1998 sebagai ISO / IEC
14882 : 1998. Standar ini diubah dengan teknis 2.003 kesalahan dlm tulisan yg
diperbaiki , ISO / IEC 14882:2003. Standar saat ini memperluas C + + dengan
fitur baru disahkan dan diterbitkan oleh ISO pada bulan September 2011 sebagai
ISO / IEC 14882 : 2011 (informal dikenal sebagai C + +11 ).
Etimologi
Menurut
Stroustrup:. "Nama menandakan sifat evolusi perubahan dari C" Selama periode pengembangan C + + 's, bahasa telah disebut sebagai "new
C", kemudian "C with Classes". Nama akhir dikreditkan ke Rick
Mascitti (mid-1983) [10] dan pertama kali digunakan pada bulan Desember 1983.
Ketika Mascitti ditanyai secara informal pada tahun 1992 tentang penamaan, ia
menunjukkan bahwa itu diberikan dalam lidah-di-pipi semangat. Ia berasal dari
"+ +" C Operator (yang increment dengan nilai dari variabel ) dan
umum konvensi penamaan menggunakan "+" untuk menunjukkan sebuah
program komputer yang ditingkatkan. A joke berlanjut bahwa nama itu sendiri
memiliki bug: karena penggunaan pasca-kenaikan , yang akan menambahkan nilai
variabel tetapi mengevaluasi ke nilai unincremented, C + + tidak lebih baik
dari C, dan bentuk pre-increment + + C seharusnya digunakan sebagai gantinya. Tidak ada bahasa yang disebut "C
plus". ABCL / c + adalah nama sebuah bahasa pemrograman yang tidak terkait
sebelumnya. Beberapa bahasa lainnya telah diberi nama mirip dengan C + +,
terutama C - dan C #.
Filsafat
Sepanjang
hidup C + + 's, pengembangan dan evolusi telah informal diatur oleh seperangkat
aturan yang evolusinya harus mengikuti:
- Ini
harus didorong oleh masalah-masalah aktual dan fitur-fiturnya akan berguna
segera dalam program dunia nyata.
- Setiap
fitur harus diimplementasikan (dengan cara yang cukup jelas untuk
melakukannya).
- Pemrogram
harus bebas untuk memilih gaya pemrograman mereka sendiri, dan gaya yang harus
didukung penuh oleh C + +.
- Membiarkan
fitur yang berguna adalah lebih penting daripada mencegah setiap kemungkinan
penyalahgunaan C + +.
- Ini
harus menyediakan fasilitas untuk mengatur program ke didefinisikan dengan baik
bagian yang terpisah, dan menyediakan fasilitas untuk menggabungkan
bagian-bagian yang dikembangkan secara terpisah.
- Tidak
ada pelanggaran implisit dari sistem tipe (tapi membiarkan pelanggaran
eksplisit yang telah secara eksplisit diminta oleh programmer).
- Membuat
pengguna menciptakan jenis memiliki dukungan yang sama dan kinerja untuk
dibangun dalam jenis.
- Setiap
fitur yang tidak Anda gunakan Anda tidak membayar (misalnya dalam kinerja).
- Seharusnya
tidak ada bahasa di bawah C + + (kecuali bahasa assembly ).
- C
+ + harus bekerja bersama pre-lain yang sudah ada bahasa pemrograman , daripada
menjadi bagian dari yang terpisah dan tidak kompatibel sendiri lingkungan
pemrograman .
- Jika
apa yang programmer ingin lakukan adalah tidak diketahui, memungkinkan
programmer untuk menentukan (menyediakan kontrol manual).
Kode parsing dan pengolahan
C + + sumber
Hal
ini relatif sulit untuk menulis C + + yang baik parser dengan algoritma parsing
klasik seperti LALR. Hal ini sebagian
hasil dari C + + tata bahasa tidak menjadi LALR. Karena itu, ada beberapa alat
untuk menganalisis atau melakukan transformasi non-sepele (misalnya,
refactoring ) dari kode yang sudah ada. Salah satu cara untuk menangani
kesulitan ini adalah memilih sintaks yang berbeda. Parser lebih kuat, seperti
GLR parser , dapat secara substansial lebih sederhana (meskipun lambat).
Parsing
(dalam arti harfiah menghasilkan pohon sintaks) bukanlah masalah yang paling
sulit dalam membangun alat C + + pengolahan. Alat tersebut juga harus memiliki
pemahaman yang sama tentang makna pengenal dalam program sebagai compiler
mungkin memiliki. Sistem praktis untuk pengolahan C + + harus kemudian tidak
hanya mengurai teks sumber, tapi dapat menyelesaikan untuk setiap identifier
tepat yang definisi berlaku (misalnya, mereka harus benar menangani kompleks
aturan scoping C + + 's) dan apa jenisnya adalah, serta jenis ekspresi yang
lebih besar.
Akhirnya,
alat C + + pengolahan praktis harus mampu menangani berbagai C + + dialek yang
digunakan dalam praktek (seperti yang didukung oleh GNU Compiler Collection dan
Microsoft Visual C + + ) dan menerapkan analisis yang tepat, transformer source
code, dan regenerasi teks sumber . Menggabungkan algoritma parsing canggih
seperti GLR dengan tabel simbol konstruksi dan program transformasi mesin dapat
mengaktifkan pembangunan sewenang-wenang C + + alat.
Parsers
memang ada di semua kompiler utama. Meskipun hanya satu compiler menyediakan
parser dalam format yang sesuai untuk alat integrasi, dentang , parser dapat
digunakan sebagai C + + (atau C) library yang siap untuk integrasi ke dalam,
yaitu sebuah IDE .
Tidak ada komentar:
Posting Komentar