Kata pengantar
Komputer adalah beberapa alat yang paling serbaguna yang kita miliki. Mereka mampu melakukan prestasi yang menakjubkan dari perhitungan, mereka memungkinkan informasi yang akan dipertukarkan dengan mudah terlepas dari lokasi, mereka menyederhanakan banyak setiap hari-tugas, dan mereka memungkinkan kita untuk mengotomatisasi banyak proses yang akan membosankan atau membosankan untuk melakukan sebaliknya. Namun, komputer tidak "cerdas" seperti kita. Mereka harus diberitahu dengan tegas apa yang mereka lakukan, dan bahasa asli mereka cukup tidak seperti apa pun yang kita berbicara. Dengan demikian, ada hambatan bahasa tangguh antara seseorang yang ingin komputer untuk melakukan sesuatu, dan komputer yang tidak tahu apa yang seharusnya dilakukan. Sejauh ini, komputer tidak tahu apa yang mereka lakukan sendiri, dan dengan demikian mereka bergantung pada program-program yang kita buat, yang merupakan set instruksi yang komputer dapat mengerti dan mengikuti.
Gambaran Umum Program dan Bahasa Pemrograman
Dalam rangka untuk lebih berkomunikasi dengan komputer kita apa sebenarnya itu adalah kita ingin mereka lakukan, kami telah mengembangkan berbagai macam bahasa pemrograman untuk membuat proses komunikasi lebih mudah.
Tergantung pada jenis proyek, ada banyak faktor yang harus dipertimbangkan ketika memilih bahasa. Berikut adalah daftar dari beberapa yang lebih penting:
- Disusun, ditafsirkan, atau dikompilasi JIT
Bahasa terkompilasi diterjemahkan ke bahasa mesin target oleh sebuah program yang disebut kompilator. Hal ini dapat menghasilkan kode yang sangat cepat, terutama jika penyusun efektif mengoptimalkan, namun kode yang dihasilkan tidak mungkin pelabuhan dengan baik di sistem operasi dan proses kompilasi mungkin memakan waktu cukup lama.
Bahasa ditafsirkan dibaca oleh sebuah program yang disebut penerjemah dan dijalankan oleh program tersebut. Sementara mereka adalah sebagai portabel sebagai penerjemah mereka dan tidak memiliki waktu kompilasi lama, bahasa ditafsirkan biasanya jauh lebih lambat daripada program yang dikompilasi setara.
Akhirnya, baru di waktu ini dikompilasi (atau JIT-compiled) bahasa adalah bahasa yang dikompilasi dengan cepat ketika program yang ditulis di dalamnya perlu dijalankan (biasanya dengan optimasi sangat sedikit), menawarkan keseimbangan antara kinerja dan portabilitas.
- Tinggi atau rendahnya tingkat
Sebuah bahasa tingkat rendah lebih banyak berurusan dengan interaksi hardware langsung, dan dengan demikian lebih cocok untuk program-program seperti kode perangkat driver yang benar-benar membutuhkan akses ke perangkat keras. Karena bahasa tingkat rendah tunduk pada semua nuansa perangkat keras itu mengakses, Namun, program yang ditulis dalam bahasa tingkat rendah umumnya sulit untuk port ke platform lain. Bahasa-bahasa yang hampir selalu disusun.
Sebuah bahasa tingkat tinggi lebih berfokus pada konsep yang mudah dipahami oleh pikiran manusia, seperti obyek atau fungsi matematika. Sebuah bahasa tingkat tinggi biasanya lebih mudah dipahami daripada bahasa tingkat rendah, dan biasanya membutuhkan waktu lebih sedikit untuk mengembangkan program dalam bahasa tingkat tinggi daripada yang dilakukannya dalam bahasa tingkat rendah. Sebagai trade-off salah satu umumnya perlu mengorbankan beberapa tingkat kontrol atas apa program yang dihasilkan sebenarnya. Hal ini tidak, bagaimanapun, tidak mungkin untuk mencampur fungsionalitas tinggi dan tingkat rendah dalam suatu bahasa.
- Tipe sistem
Sebuah sistem tipe mengacu pada aturan bahwa jenis variabel bahasa harus mengikuti. Beberapa bahasa (termasuk bahasa perakitan kebanyakan) tidak memiliki jenis dan dengan demikian bagian ini tidak berlaku untuk mereka. Namun, seperti kebanyakan bahasa (termasuk C + +) memiliki tipe, informasi ini penting.
- Tipe Kekuatan: Kuat atau Lemah
Sebuah sistem mengetik yang kuat menempatkan pembatasan pada bagaimana berbagai jenis variabel dapat dikonversi ke satu sama lain tanpa pernyataan konversi. Sebuah sistem yang ideal mengetik yang kuat akan melarang implisit "gips" untuk jenis yang tidak masuk akal, seperti integer ke objek Buah. Sebuah sistem mengetik lemah akan mencoba untuk menemukan beberapa cara untuk membuat pekerjaan cor.
- Tipe Ekspresi: Manifest atau Tersirat
Hal ini berkaitan dengan bagaimana compiler / interpreter untuk bahasa menyimpulkan jenis variabel. Banyak bahasa membutuhkan jenis variabel 'secara eksplisit didefinisikan, dan dengan demikian bergantung pada mengetik manifes. Beberapa Namun, akan menyimpulkan jenis variabel berdasarkan pada konteks di mana ia digunakan, dan dengan demikian menggunakan mengetik disimpulkan.
- Jenis Pemeriksaan: Statis atau Dinamis
Jika bahasa adalah statis diketik, maka juru compiler / tidak memeriksa jenis sekali sebelum program berjalan / dikompilasi. Jika bahasa secara dinamis mengetik diperiksa, maka tipe diperiksa pada saat run-time.
- Tipe Keselamatan: Aman atau Tidak Aman
Ini mengacu pada sejauh mana bahasa akan melarang operasi pada variabel diketik yang dapat mengakibatkan perilaku undefined atau kesalahan. Sebuah bahasa yang aman akan berbuat lebih banyak untuk memastikan bahwa operasi atau konversi tidak terjadi, sementara bahasa yang tidak aman akan memberikan tanggung jawab yang lebih kepada pengguna dalam hal ini.
Mengetik karakteristik itu tidak selalu saling eksklusif, dan beberapa bahasa mereka bercampuran.
Pendukung Paradigma
Sebuah paradigma pemrograman adalah metodologi atau cara pemrograman bahwa bahasa pemrograman mendukung. Berikut adalah ringkasan dari paradigma yang umum:
- Deklaratif
Sebuah bahasa deklaratif akan lebih fokus pada apa yang menentukan bahasa yang seharusnya untuk mencapai dan bukan dengan cara apa yang seharusnya untuk mencapainya. Seperti paradigma dapat digunakan untuk menghindari efek samping yang tidak diinginkan yang dihasilkan dari harus menulis kode sendiri.
- Fungsionil
Pemrograman fungsional adalah himpunan bagian dari pemrograman deklaratif yang mencoba untuk mengekspresikan masalah dalam hal persamaan matematika dan fungsi. It goes keluar dari cara untuk menghindari konsep negara dan bisa berubah variabel yang umum dalam bahasa imperatif.
- Umum
Pemrograman generik berfokus pada menulis algoritma kerangka dalam hal jenis yang akan ditentukan jika algoritma ini benar-benar digunakan, sehingga memungkinkan kelonggaran beberapa programmer yang ingin menghindari aturan ketat mengetik kuat. Hal ini dapat menjadi paradigma yang sangat kuat jika diterapkan dengan baik.
- Imperatif
Bahasa-bahasa imperatif memungkinkan pemrogram untuk memberikan komputer memerintahkan daftar instruksi tanpa perlu harus secara eksplisit menyatakan tugas. Hal ini dapat dianggap sebagai kebalikan dari pemrograman deklaratif.
- Terstruktur
Bahasa pemrograman terstruktur bertujuan untuk menyediakan beberapa bentuk struktur penting untuk bahasa, seperti kontrol intuitif atas urutan pernyataan dijalankan. Bahasa tersebut umumnya mencela "melompat", seperti yang disediakan oleh pernyataan goto di C dan C + +.
- Prosedural
Meskipun kadang-kadang digunakan sebagai sinonim untuk pemrograman imperatif, bahasa pemrograman prosedural juga bisa merujuk pada suatu bahasa pemrograman terstruktur yang mendukung konsep prosedur atau subrutin.
- Object-Oriented
Object-Oriented programming (kadang-kadang disingkat OOP) merupakan bagian dari pemrograman terstruktur yang menyatakan program dalam istilah "benda". Seperti paradigma memungkinkan kode untuk digunakan kembali dengan cara yang luar biasa dan dimaksudkan untuk menjadi mudah dimengerti.
Standardisasi
Apakah bahasa memiliki standar formal? Hal ini dapat menjadi sangat penting untuk memastikan bahwa program yang ditulis untuk bekerja dengan satu compiler / interpreter akan bekerja dengan yang lain. Beberapa bahasa yang dibakukan oleh American National Standards Institute (ANSI), beberapa standar oleh International Organization for Standardization (ISO), dan beberapa memiliki informal tapi de-facto standar tidak dikelola oleh organisasi standar.
Mengapa kita perlu belajar bahasa kompilasi?
Karena C, C + +, dan Fortran (77/95) adalah alat-alat yang ada yang paling efisien untuk komputasi numerik intensif
Karena ton kode cepat dan teruji tersedia dalam Fortran, C / C + +
Baru bahasa telah menekankan kesederhanaan dan kehandalan - pada efisiensi biaya komputasiFitur-fitur dari C + + sebagai salah satu Bahasa
Untuk mendapatkan kecepatan, Anda perlu menyelam ke dalam rincian dari bahasa dikompilasi, dan tentu saja ini adalah langkah, pertama lembut
bahasa C
C adalah bahasa yang mendominasi di lingkungan Unix dan Windows
Sintaks C telah mengilhami banyak bahasa populer (Awk, C + +, Java, Perl, Python, Ruby)
Banyak alat (perpustakaan numerik, misalnya, MPI) ditulis dalam C, interfacing mereka membutuhkan pengetahuan C
C sangat portabel, "semua" mesin dapat mengkompilasi dan menjalankan program C
C sangat rendah dan dekat dengan mesin
Kemungkinan tak terbatas, yang bisa melakukan apa saja di C
Programmer bahasa tingkat tinggi seringkali bingung dengan kesalahan aneh / tak terduga di C
Sekarang bahwa semua teori yang diperlukan telah tertutup, sekarang adalah mungkin untuk menjelaskan apa C + + ditawarkan sebagai bahasa pemrograman. C + + ...
... Adalah bahasa ISO-standar terbuka.
Untuk sementara waktu, C + + tidak memiliki standar resmi dan dikelola oleh standar de-facto, namun sejak tahun 1998, C + + adalah standar oleh sebuah komite dari ISO. Halaman mereka dapat diakses di sini.
... Adalah bahasa yang dikompilasi.
C + + mengkompilasi langsung ke kode asli mesin ini, memungkinkan untuk menjadi salah satu bahasa tercepat di dunia, jika dioptimalkan.
... Adalah bahasa yang tidak aman kuat-mengetik.
C + + adalah bahasa yang mengharapkan programmer untuk mengetahui apa yang dia lakukan, namun memungkinkan untuk jumlah yang luar biasa kontrol sebagai hasilnya.
Mendukung ... manifes baik dan disimpulkan mengetik.
Seperti yang terbaru C + + standar, C + + mendukung mewujudkan baik dan disimpulkan mengetik, memungkinkan fleksibilitas dan sarana untuk menghindari verbositas mana yang diinginkan.
... Mendukung kedua memeriksa tipe statis dan dinamis.
C + + memungkinkan konversi tipe yang akan diperiksa baik pada saat kompilasi atau run-time, lagi menawarkan tingkat fleksibilitas yang lain. Kebanyakan C + + memeriksa jenis, bagaimanapun, statis.
... Menawarkan pilihan paradigma banyak.
C + + menawarkan dukungan yang luar biasa untuk paradigma pemrograman prosedural, generik, dan berorientasi objek, dengan paradigma lain yang mungkin juga.
... Portabel.
Sebagai salah satu bahasa yang paling sering digunakan di dunia dan sebagai bahasa yang terbuka, C + + memiliki berbagai compiler yang berjalan pada platform yang berbeda banyak yang mendukungnya. Kode yang eksklusif menggunakan C + + 's perpustakaan standar akan berjalan pada banyak platform dengan sedikit atau tidak ada perubahan ..
... Adalah ke atas kompatibel dengan C
C + +, menjadi bahasa yang secara langsung membangun off C, kompatibel dengan hampir semua kode C. C + + dapat menggunakan perpustakaan C dengan sedikit atau tidak ada modifikasi dari kode C library.
... Memiliki dukungan perpustakaan yang luar biasa.
Sebuah pencarian untuk "perpustakaan" pada proyek-manajemen situs populer SourceForge akan menghasilkan lebih dari 3000 hasil untuk C + + perpustakaan. Sebuah link ke hasil pencarian dapat ditemukan di sini.
Di tulis oleh Albatross.
Tidak ada komentar:
Posting Komentar