Kamis, 19 Desember 2013

C + +


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