Matryoshka C. Sistem bahasa program berlapis

Mari cuba bayangkan kimia tanpa Jadual Berkala Mendeleev (1869). Berapa banyak elemen yang perlu diingat, dan tanpa susunan tertentu... (Kemudian - 60.)

Untuk melakukan ini, hanya fikirkan satu atau beberapa bahasa pengaturcaraan sekaligus. Perasaan yang sama, kekacauan kreatif yang sama.

Dan kini kita boleh menghidupkan semula perasaan ahli kimia abad ke-XNUMX apabila mereka ditawarkan semua pengetahuan mereka, dan sedikit lagi, dalam satu Jadual Berkala.

Matryoshka C. Sistem bahasa program berlapis


Buku "Matryoshka C. Sistem bahasa atur cara berlapis" membentangkan semua unit bahasa C sepintas lalu. Ini membolehkan anda menyusunnya, membetulkan maklumat lapuk, dan juga menjelaskan konsep program ini.

Hari ini, maklumat pengaturcaraan memerlukan sistematisasi lebih daripada unsur kimia 150 tahun dahulu.

Keperluan pertama ialah mengajar. Mendeleev mula mencipta sistemnya apabila dia menghadapi persoalan elemen mana untuk mula bersyarah dengan: O, H, N, He, Au... Pada masa yang sama, lebih mudah baginya - dia mengajar kimia kepada yang terbaik - pelajar Universiti St. Petersburg. Dan pengaturcaraan sudah diajar di sekolah dan tidak lama lagi akan bermula di tadika.

Keperluan kedua ialah pendekatan saintifik. Dengan bantuan Jadual Berkala, unsur-unsur baru ditemui dan maklumat tentang yang lama telah diperbetulkan. Dia membantu mencipta model atom (1911). Dan sebagainya.

Keperluan ketiga ialah menjelaskan konsep sesuatu program.

Pengaturcaraan moden mempunyai satu kaki terperangkap pada 50-an abad ke-XNUMX. Pada masa itu, program adalah mudah, tetapi mesin dan bahasa mesin adalah kompleks, jadi segala-galanya berputar di sekitar mesin dan bahasa.

Sekarang semuanya adalah sebaliknya: program adalah kompleks dan utama, bahasa adalah mudah dan sekunder. Ini dipanggil pendekatan terpakai, yang semua orang nampaknya biasa. Tetapi pelajar dan pemaju terus yakin bahawa semuanya adalah sama.

Yang membawa kita kembali kepada kuliah pertama Privatdozent Mendeleev. Apa yang perlu diberitahu kepada pelajar baru? Di manakah kebenaran? Itulah soalannya.

Buku "Matryoshka C" menawarkan jawapannya kepada soalan ini. Sistem bahasa program berlapis". Lebih-lebih lagi, ia ditujukan bukan sahaja kepada pelajar, tetapi juga kepada pengaturcara terlatih, kerana mereka, iaitu, kita, yang mesti mencari kebenaran dan mengubah pandangan dunia.

Yang berikut ialah ringkasan buku tersebut.

1. Pengenalan

Pada tahun 1969, bahasa C dicipta, yang menjadi bahasa pengaturcaraan asas dan kekal selama 50 tahun. Kenapa jadi begini? Pertama sekali, kerana C ialah terpakai bahasa yang memberi program berperikemanusiaan lihat sebaliknya Jentera. Pencapaian ini telah dijamin oleh bahasa daripada keluarga C: C++, JavaScript, PHP, Java, C# dan lain-lain. Kedua, ia adalah bahasa yang pendek dan indah.

Walau bagaimanapun, bahasa C itu sendiri biasanya bercampur dengan pemasang mesin, dengan itu merumitkan dan memesongkan persepsinya. Ekstrem yang lain ialah pengenaan "falsafah" tertentu ke atas bahasa: prosedur, objek, berfungsi, disusun, ditafsir, ditaip, dan sebagainya. Ini menambah emosi, tetapi tidak membantu menerangkan bahasa dengan lebih baik.

Kebenaran berada di tengah-tengah, dan untuk bahasa C ia berada di tengah-tengah antara persepsi falsafah dan mesin.

Bahasa C tidak bebas, ia mematuhi bahasa bertulis biasa, dan pada masa yang sama ia mengawal bahasa himpunan itu sendiri. Kedudukan ini menerangkan Model pertuturan program, mengikut mana program itu dibahagikan kepada tiga jenis bawahan: ucapan, kod, arahan. Bahasa C bertanggungjawab untuk jenis kod kedua.

Setelah menentukan tempat bahasa dalam program, anda boleh mengatur maklumat mengenainya, yang membuat Sistem bahasa program berlapis, mewakili bahasa C dalam semangat sistem berkala - pada satu halaman.

Sistem ini dibina dengan mengambil kira komuniti bahasa gunaan, timbul daripada subordinat pertuturan mereka. Satu set unit Matryoshka C membolehkan anda menerangkan dan membandingkan bahasa yang berbeza, mencipta satu siri Matryoshkas: C++, PHP, JavaScript, C#, MySQL, Python dan sebagainya. Adalah wajar dan betul bahawa bahasa yang berbeza diterangkan oleh unit bahasa asas.

2. BAB 1. Model ucapan program. Jelas C

Bab pertama membentangkan model ucapan program, mencerminkan pendekatan yang diterapkan. Menurutnya, program ini mempunyai tiga jenis urutan yang jelas:

  1. ucapan - ucapan langsung pengaturcara menyelesaikan masalah,
  2. berkod - mengekodkan penyelesaian ke dalam bentuk matematik dalam bahasa C (atau mana-mana yang lain)
  3. dan arahan - arahan mesin langsung.

Model pertuturan menerangkan mengapa C ialah bahasa yang mudah dan boleh difahami. Xi dibina dalam imej dan rupa pertuturan manusia yang biasa kepada kita.

Jenis program pertama ialah ucapan langsung pengaturcara. Pertuturan sesuai dengan pemikiran manusia. Pengaturcara yang mula menulis program menggunakan pertuturan - pertama dalam bahasa Rusia, kemudian langkah demi langkah menterjemah tindakan ke dalam bahasa kod. Dan tepat pada model ini bahasa C dicipta.

Kesimpulan pengaturcara, yang dinyatakan dalam ucapan, ditukarkan ke dalam bentuk berangka berkod. Transformasi ini harus dipanggil renungan, kerana pertuturan dan kod mempunyai sifat yang sama (refleksi - kelahiran - jantina). Ini agak jelas jika kita membandingkan jenis pertuturan (di sebelah kiri) dan kod (di sebelah kanan) program.

Matryoshka C. Sistem bahasa program berlapis

Adalah aneh bahawa pantulan berlaku dengan sangat mudah - dengan hanya dua jenis ungkapan.

Walau bagaimanapun, huraian moden bahasa C (dari 1978) tidak mengandungi senarai nama yang mencukupi sama ada untuk menggambarkan bahasa secara umum, atau untuk tugas refleksi khususnya. Oleh itu, kami terpaksa menjadi kreatif dan memperkenalkan nama-nama ini.

Pemilihan perkataan mestilah tepat dan jelas. Ini memerlukan pendekatan khas, secara ringkas dinyatakan seperti berikut: penggunaan ketat bahasa ibunda. Untuk bahasa Inggeris ia adalah bahasa Inggeris, tetapi kami bukan bahasa Inggeris. Jadi kami akan menggunakan apa yang kami ada dan cuba bercakap bahasa Rusia.

Refleksi dilakukan oleh dua jenis ungkapan:

  1. pengiraan (HF) - mencerminkan perubahan dalam sifat objek. Sifat objek dinyatakan dengan nombor, maka tindakan pada harta adalah tindakan pada nombor - operasi.
  2. subordinasi (Pch) - mencerminkan perubahan dalam susunan tindakan. Prototaip Pch ialah ayat kompleks pertuturan, oleh itu kebanyakan jenis Pch bermula dengan kata hubung subordinat "jika", "sebaliknya", "sementara", "untuk". Jenis PC lain melengkapkannya.

Ngomong-ngomong, bolehkah anda percaya bahawa dalam huraian C tidak ada nama untuk ungkapan pengiraan - ia hanya dipanggil "ungkapan"? Selepas ini, tidak lagi menghairankan bahawa tiada nama dan persatuan untuk jenis subordinasi, dan sememangnya kekurangan nama, definisi dan generalisasi secara umum. Ini kerana K/R yang terkenal (β€œThe C Language”, Kernighan/Ritchie, 1978) bukanlah penerangan, tetapi panduan untuk menggunakan bahasa tersebut.

Walau bagaimanapun, saya masih ingin mempunyai penerangan tentang bahasa tersebut. Oleh itu dia ditawarkan Sistem bahasa program berlapis.

3. BAB 2. Sistem lapisan. Ringkas C

Sebarang penerangan mestilah tepat dan sangat ringkas. Dalam kes bahasa program, penerangan hadapan adalah sukar.

Di sini kita ada program. Ia terdiri daripada modul. Modul terdiri daripada subrutin dan koleksi (struktur). Subrutin terdiri daripada ungkapan individu: pengisytiharan, pengiraan, subordinasi. Terdapat sebanyak sepuluh jenis subordinasi. Subordinasi menghubungkan subperingkat dan subrutin. Terdapat juga beberapa iklan. Walau bagaimanapun, pengisytiharan dimasukkan bukan sahaja dalam subrutin dan subperingkat, tetapi juga dalam modul dan koleksi. Dan kebanyakan ungkapan terdiri daripada perkataan yang sangat sukar untuk diterangkan sehingga ia biasanya hanya diberikan dalam dua senarai - perkataan asal dan terbitan, yang anda akan biasa dengan sepanjang pembelajaran dan penggunaan bahasa. Mari tambahkan tanda baca dan beberapa ungkapan lain pada ini.

Dalam pembentangan sebegitu, tidak mudah untuk memahami siapa yang berdiri di atas siapa.

Pendekatan hierarki langsung untuk menerangkan bahasa akan menjadi terlalu rumit. Carian bulatan membawa kepada perihalan bahasa berdasarkan sifat pertuturan dan bahagian arahannya. Oleh itu, Sistem Lapisan dilahirkan, sebahagiannya bertepatan dengan Sistem Berkala Mendeleev, yang juga lapis. Ternyata 42 tahun selepas penerbitannya (1869), keberkalaan sistem dikaitkan dengan elektronik lapisan (1911, model atom Bohr-Rutherford). Juga, sistem Berlapis dan Berkala adalah serupa dalam susunan jadual semua unit pada satu halaman.

Penerangan unit bahasa adalah ringkas - hanya 10 jenis ungkapan dan 8 jenis unit lain, serta bermakna dan visual. Walaupun luar biasa untuk perkenalan pertama.

Unit bahasa dibahagikan kepada 6 tahap:

  1. unit - baris meja
  2. jabatan - kumpulan genera khas (bahagian baris pertama)
  3. genus - sel (tahap pembahagian utama)
  4. superspesies - pemisah spesies (tahap jarang)
  5. jenis - formula unit di bahagian bawah sel atau secara berasingan
  6. corak - unit itu sendiri (untuk perkataan sahaja)

Contoh perkataan menerangkan kamus - subsistem berasingan yang terdiri daripada enam peringkat yang sama.

Komponen pertuturan bahasa C agak jelas, walaupun ia masih layak untuk diterangkan. Tetapi bahagian arahan bahasa itu berkaitan dengan kawalan kompilasi, di mana jenis program ketiga dicipta - arahan. Di sini kita sampai kepada aspek bahasa C yang paling menarik: kecantikan.

4. MENGIKUTI BAB. Si kacak

Bahasa C adalah asas pengaturcaraan moden. kenapa? Pertama, kerana surat-menyurat terbesar kepada ucapan. Kedua, kerana ia melepasi batasan pemprosesan nombor mesin dengan cantik.

Apa sebenarnya yang dicadangkan Xi? Imej dan lapisan.

Perkataan "imej" adalah terjemahan perkataan Inggeris "jenis", yang berasal dari bahasa Yunani "prototaip" - "jenis". Dalam bahasa Rusia, perkataan "jenis" tidak menyampaikan asas konsep yang dinyatakan; lebih-lebih lagi, ia dikelirukan dengan makna tambahan "jenis".

Pada mulanya, imej itu menyelesaikan masalah pengiraan mesin semata-mata, dan kemudian menjadi landasan untuk kelahiran bahasa objek.

Lapisan segera menyelesaikan beberapa masalah - kedua-dua mesin dan digunakan. Oleh itu, pertimbangan akan bermula dengan imej tugasan tunggal dan beralih kepada lapisan berbilang tugas.

Salah satu ciri pengaturcaraan sejarah yang tidak menyenangkan ialah kebanyakan konsep, termasuk yang asas, diberikan tanpa definisi. "Bahasa pengaturcaraan (nama sungai) mempunyai jenis nombor integer dan terapung ..." dan mereka menggaru lebih jauh. Ia tidak perlu untuk menentukan apa itu "jenis" (imej), kerana pengarang sendiri tidak memahami sepenuhnya perkara ini dan akan menutupnya "demi kejelasan." Jika mereka disematkan ke dinding, mereka akan memberikan definisi yang tidak jelas dan tidak berguna. Ia banyak membantu untuk bersembunyi di sebalik perkataan asing: untuk pengarang Rusia - di belakang bahasa Inggeris (jenis), untuk orang Inggeris - di belakang Perancis (subrutin), Yunani (polimorfisme), Latin (enkapsulasi) atau gabungan mereka (polimorfisme ad-hoc).

Tetapi ini bukan takdir kita. Pilihan kami ialah definisi dengan visor yang dinaikkan dalam bahasa Rusia tulen.

Imej

Imej ialah nama prefiguratif bagi kuantiti, mentakrifkan 1) sifat intrinsik kuantiti dan 2) pemilihan operasi untuk kuantiti.

Perkataan "jenis" (jenis) sepadan dengan bahagian pertama takrifan: "sifat intrinsik sesuatu kuantiti." Tetapi makna utama imej adalah di bahagian kedua: "pemilihan operasi kepada kuantiti."

Titik permulaan untuk memperkenalkan imej dalam C ialah pengiraan biasa, seperti operasi penambahan.

kertas Matematik, sama ada ditulis dengan tangan atau bercetak, tidak banyak membezakan antara jenis nombor, biasanya menganggap ia adalah nyata. Oleh itu, operasi pemprosesan mereka tidak jelas.

Mesin Matematik membahagikan nombor kepada integer dan pecahan dengan ketat. Jenis nombor yang berbeza disimpan secara berbeza dalam ingatan dan diproses oleh arahan pemproses yang berbeza. Sebagai contoh, arahan untuk menambah integer dan pecahan ialah dua arahan berbeza yang sepadan dengan dua nod pemproses yang berbeza. Tetapi tiada arahan untuk menambah hujah integer dan pecahan.

Digunakan matematik, iaitu bahasa C, memisahkan jenis nombor, tetapi menggabungkan operasi: penambahan untuk integer dan/atau pecahan ditulis dengan satu tanda tindakan.

Definisi imej konsep yang jelas membolehkan kita bercakap tentang dua konsep lain: magnitud ΠΈ operasi.

Magnitud dan operasi

Magnitud β€” nombor sedang diproses.

Operasi β€” memproses nilai nilai awal (argumen) untuk mendapatkan nombor akhir (jumlah).

Magnitud dan operasi saling berkaitan. Setiap operasi adalah kuantiti kerana ia mempunyai hasil berangka. Dan setiap nilai adalah hasil pemindahan nilai ke/dari daftar pemproses, iaitu hasil operasi. Di sebalik hubungan ini, perkara utama ialah kemungkinan perihalan berasingan mereka, walaupun dengan pengulangan satu perkataan dalam bahagian kamus yang berbeza, yang berlaku dalam MA3.

Pendekatan mesin membahagikan semua nombor yang digunakan oleh pengaturcara kepada pasukan ΠΈ data. Sebelum ini, kedua-duanya adalah nombor, contohnya, arahan ditulis dalam kod angka. Walau bagaimanapun, dalam bahasa gunaan, arahan tidak lagi menjadi nombor dan menjadi dalam kata-kata ΠΈ tanda-tanda tindakan. Hanya "data" kekal sebagai nombor, tetapi adalah tidak masuk akal untuk terus memanggilnya dengan cara itu, kerana dalam peralihan daripada mesin ke sudut pandangan matematik, nombor ialah kuantiti yang dibahagikan dengan yang asal (data) dan muktamad (diperlukan). "Datum tidak diketahui" akan kedengaran bodoh.

Pasukan juga dibahagikan kepada dua jenis tindakan: matematik dan perkhidmatan. Tindakan matematik - operasi. Kita akan sampai ke perkara rasmi nanti.

Dalam bahasa C, kertas dan mesin biasa yang tidak jelas, atau operasi matematik tunggal hampir secara universal menjadi berbilang.

Operasi berbilang ialah beberapa operasi dengan nama yang sama dengan jenis argumen yang berbeza dan tindakan yang berbeza, sama dalam makna.

Argumen integer sepadan dengan keseluruhan operasi, dan argumen pecahan sepadan dengan operasi pecahan. Perbezaan ini amat jelas semasa operasi bahagi, apabila ungkapan 1/2 memberikan jumlah 0, bukan 0,5. Notasi sedemikian tidak sesuai dengan peraturan matematik kertas, tetapi bahasa C tidak berusaha untuk mematuhinya (tidak seperti Fortran) - ia bermain mengikutnya sendiri digunakan peraturan.

Dalam kes mencampurkan integer dan pecahan, satu-satunya yang betul disertakan melontarkan nilai hujah β€” transformasi terpilih nilai daripada satu imej ke imej lain. Sesungguhnya, apabila menambah integer dan nombor pecahan, hasilnya adalah pecahan, jadi imej operasi memungut operasi menukar hujah integer kepada nilai pecahan.

Beberapa operasi kekal majmukDan bujang. Operasi sedemikian ditakrifkan hanya untuk satu jenis argumen: baki bahagian - hujah integer, susun (operasi bitwise) - integer semula jadi. Ma3 menunjukkan kepelbagaian operasi dengan tanda (#^) yang menunjukkan imej yang mana operasi itu ditakrifkan. Ini adalah harta yang penting tetapi sebelum ini diabaikan bagi setiap operasi.

Semua fungsi adalah operasi unit sewenang-wenangnya. Pengecualian ialah pengendali - fungsi bukan kurungan, dibina ke dalam bahasa (operasi asal).

Bantuan

Bantuan - tindakan yang mengiringi operasi.

Jika kita menganggap operasi sebagai tindakan utama, maka kita boleh membezakan dua yang mengiringi yang menyediakan operasi dan berbeza daripadanya. Ini adalah 1) kawalan berubah dan 2) subordinasi. Tindakan ini dipanggil bantuan.

Di sini kita perlu menyimpang dan mengatakan secara berasingan tentang terjemahan buku teks pengaturcaraan bahasa Rusia. Satu perkataan baharu telah diperkenalkan dalam teks K/R untuk merekodkan tindakan kenyataan (ungkapan), yang cuba membahagikan konsep perintah mesin kepada tindakan yang berbeza: 1) operasi, 2) pengisytiharan, dan 3) subordinasi (dipanggil "konstruk kawalan"). Percubaan ini telah dikebumikan oleh penterjemah Rusia, menggantikan "ungkapan" dengan perkataan "pengendali", yang:

  1. telah menjadi sinonim dengan perkataan mesin "perintah",
  2. ternyata sinonim dengan frasa "tanda tindakan",
  3. dan juga menerima jumlah nilai tambahan yang tidak terhad. Iaitu, ia telah bertukar menjadi sesuatu yang serupa dengan rencana Inggeris "uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"

Pertimbangkan tindakan yang disertakan, atau bantuan.

Kawalan boleh ubah

Kawalan boleh ubah (UP) - mencipta/memadam sel pembolehubah.
UE berlaku secara tersirat apabila mengisytiharkan pembolehubah, yang sudah ditulis untuk sebab lain - untuk menunjukkan imej nilai. Hanya satu paparan diuruskan secara eksplisit pembolehubah tambahan menggunakan fungsi malloc() dan free().

Perlu diingatkan bahawa tindakan tersirat lebih mudah untuk menulis, kerana mereka tidak memerlukan menulis apa-apa sama sekali, tetapi mereka lebih sukar untuk difahami - mereka lebih sukar untuk diambil kira dan ditafsirkan.

Subordinasi

Subordinasi β€” sambung/lumpuhkan bahagian lapisan.

Bahasa C menawarkan kaedah terpakai untuk mengawal susunan tindakan, berbeza daripada penghimpun - subordinasi. Ia mencerminkan dan mengembangkan ayat kompleks pertuturan dengan pembahagian yang jelas kepada bahagian utama (klausa subordinat) dan bahagian bawahan (bahagian subperingkat/subrutin).

Kedua-dua pengisytiharan dan penyerahan sepenuhnya dibina berdasarkan konsep lapisan.

Lapisan

Lapisan ialah set ungkapan terpilih peringkat tunggal terhad.

Lapisan secara eksplisit dan tersirat mengambil beberapa tugas sekaligus:

  1. menganjurkan program tersebut
  2. mengehadkan keterlihatan nama (secara tersirat),
  3. pengurusan pembolehubah (sel memori) (tersirat),
  4. definisi klausa subordinat untuk subordinat,
  5. definisi fungsi dan pilihan dan lain-lain.

Tidak ada konsep lapisan dalam bahasa mesin, jadi ia tidak muncul dalam K/R, dan jika ada sesuatu yang tidak ada, maka memperkenalkannya dalam buku-buku berikutnya adalah bidaah dan pemikiran bebas. Oleh itu, konsep lapisan tidak muncul sama sekali, walaupun ia sangat berguna dan agak jelas.

Tanpa lapisan, adalah mustahil untuk menerangkan secara ringkas dan jelas banyak tindakan dan peraturan program. Sebagai contoh, mengapa goto semudah tiga kopecks tidak baik, dan masa yang rumit adalah baik. Anda hanya boleh bersumpah tanpa daya, seperti yang dilakukan Dijkstra ("kemahiran pengaturcara adalah fungsi yang secara songsang bergantung pada kekerapan berlakunya pernyataan goto dalam program mereka." Ringkasnya, hanya kambing yang menggunakan goto. Tahap pembenaran adalah Tuhan.) Benar, ini tidak begitu menakutkan jika buku anda Kami tidak perlu menjelaskan apa-apa sama sekali, tetapi, seperti yang telah kami katakan, ini bukan takdir kami.

Dengan cara ini, boleh diandaikan bahawa Dan Ritchie meninggalkan goto dengan tepat sebagai kunci untuk mencari beberapa konsep yang tidak dinamakan, kerana tidak ada keperluan atau keindahan dalam ungkapan goto. Tetapi terdapat keperluan untuk penjelasan yang mudah dan mudah difahami tentang prinsip bahasa baru, yang Richie sendiri tidak mahu berikan, dan yang tepat berdasarkan konsep itu. lapisan.

penyelewengan

penyelewengan β€” menukar sifat biasa nama baharu.

Sisihan yang paling penting adalah berkaitan dengan sifat lapisan program, dan diterangkan oleh satu perkataan "statik", yang mempunyai makna yang berbeza dalam setiap jenis lapisan.

5. BAB TERAKHIR. Kesamaan bahasa yang digunakan

Bahasa yang digunakan ialah kiasan bahasa (mempunyai imej, "ditaip"). Ia berdasarkan penggunaan imej yang tersurat atau tersirat. Selain itu, di sini sekali lagi percanggahan muncul: imej eksplisit lebih mudah difahami, tetapi kurang mudah, dan sebaliknya.

Matryoshka C. Sistem bahasa program berlapis

(Susun atur jadual masih belum dihantar, jadi jadual ditunjukkan dengan gambar.)

Selepas C, perkembangan bahasa gunaan mengambil jalan untuk meningkatkan kiasan mereka. Yang paling penting untuk memahami imejan tinggi ialah keturunan langsung C - bahasa C++. Dia mengembangkan idea pemilihan operasi sewenang-wenangnya untuk kuantiti dan merangkuminya berdasarkan pemilihan ekspresi sintetik, yang menerima nama baru - objek. Walau bagaimanapun, C++ tidak seringkas dan ekspresif seperti C kerana kelebihan jenis koleksi baharu dan peraturan yang berkaitan dengannya. Ngomong-ngomong, mari kita bercakap tentang "lebihan".

Beban berlebihan dan polimorfisme

Perkataan "overload" ialah istilah pembelajaran mesin yang lapuk untuk mencipta pelbagai operasi.

Pengaturcara mesin (sistem). pluraliti operasi mungkin menjengkelkan: "Apakah maksud tanda (+) ini: menambah integer, menambah pecahan, atau bahkan beralih?! Pada zaman kita mereka tidak menulis seperti itu!” Oleh itu konotasi negatif perkataan yang dipilih ("berlebihan", "letih"). Bagi pengaturcara aplikasi, berbilang operasi adalah asas, pencapaian utama dan warisan bahasa C, sangat wajar sehingga ia sering tidak diiktiraf.

Dalam bahasa C++ pluraliti diperluaskan bukan sahaja kepada operasi asal, tetapi juga kepada fungsi - kedua-dua individu dan digabungkan ke dalam kelas - kaedah. Dengan pelbagai kaedah datang keupayaan untuk mengatasinya dalam kelas lanjutan, yang samar-samar dipanggil "polimorfisme." Gabungan polimorfisme dan beban berlebihan menghasilkan campuran letupan yang berpecah kepada dua polimorfisme: "benar" dan "ad-hoc." Ia adalah mungkin untuk memahami ini hanya walaupun nama yang diberikan. Jalan ke iklan diturap dengan nama asing.

Pengisytiharan bentuk "lebihan" lebih baik dinyatakan dalam perkataan pengumuman tambahan β€” menambah pengisytiharan fungsi dengan nama yang sama dengan hujah imej yang berbeza.

Pengisytiharan bentuk "polimorfisme" lebih baik dipanggil pengumuman semula β€” pengisytiharan bertindih dalam lapisan sambungan baharu bagi fungsi dengan nama yang sama dengan argumen imej yang sama.

Kemudian ia akan menjadi mudah untuk memahami bahawa kaedah yang sama imej yang berbeza (hujah) - tambahan diumumkan, dan satu imej - diumumkan semula.

Kata-kata Rusia memutuskan.

Landasan

Pertimbangan konsep bahasa yang sangat kiasan mengesahkan kepentingan definisi yang jelas tentang konsep asas. Dengan C diterangkan dengan betul, mempelajari bahasa kiasan tinggi akan menjadi mudah dan menyeronokkan.

Ini amat penting untuk bahasa kiasan yang tersirat (PHP, JavaScript). Bagi mereka, kepentingan objek (imej komposit) menjadi lebih tinggi daripada dalam C++, tetapi konsep imej menjadi tersirat dan sukar difahami. Dari sudut kemudahan, mereka menjadi lebih mudah, tetapi dari sudut pemahaman, mereka menjadi lebih sukar.

Oleh itu, anda harus mula mempelajari bahasa pengaturcaraan dengan bahasa C dan bergerak lebih jauh dalam susunan bahasa keluarga C muncul.

Begitu juga untuk menerangkan bahasa. Bahasa yang berbeza mempunyai set jantina unit yang sama, atau lebih kecil daripada bahasa C. Bilangan jenis dan sampel mungkin berbeza dalam kedua-dua arah: C++ mempunyai lebih banyak jenis daripada C, manakala JavaScript mempunyai lebih sedikit.

Bahasa MySQL patut diberi perhatian khusus. Nampaknya tidak ada persamaan, tetapi dia digambarkan dengan sempurna oleh Matryoshka, dan mengenalinya menjadi lebih cepat dan lebih mudah. Yang penting, memandangkan kepentingannya untuk web - jalan makan pengaturcaraan moden. Dan di mana terdapat MySQL, terdapat SQL lain. Nah, semua jenis Fortran-Pascal-Pythons juga diterangkan oleh Matryoshka, sebaik sahaja mereka mendapatkannya.

Oleh itu, perkara-perkara hebat menanti kita - perihalan terpakai bahasa C dan perihalan bersatu bahasa yang mengikutinya. β€œMatlamat kami jelas, tugas kami ditentukan. Pergi bekerja, kawan-kawan! (Tepukan ribut, berpanjangan, bertukar menjadi tepukan. Semua orang berdiri.)"

Pendapat anda akan didengari dengan penuh perhatian, bantuan anda dalam mencipta laman web anak patung bersarang akan diterima dengan penuh rasa terima kasih. Maklumat lebih lengkap tentang buku itu ada di laman web, tersembunyi dengan bijak di Matryoshka C.

Sumber: www.habr.com

Tambah komen