Matryoshka C. Sistem bahasa program berlapis

Mari kita coba bayangkan kimia tanpa Tabel Periodik Mendeleev (1869). Berapa banyak elemen yang harus diingat, dan tanpa urutan tertentu... (Kemudian - 60.)

Untuk melakukan ini, cukup pikirkan satu atau beberapa bahasa pemrograman sekaligus. Perasaan yang sama, kekacauan kreatif yang sama.

Dan sekarang kita dapat menghidupkan kembali perasaan para ahli kimia abad ke-XNUMX ketika mereka ditawari semua pengetahuan mereka, dan lebih banyak lagi, dalam satu Tabel Periodik.

Matryoshka C. Sistem bahasa program berlapis


Buku “Matryoshka C. Sistem bahasa program berlapis" menyajikan sekilas semua unit bahasa C. Hal ini memungkinkan Anda untuk mengaturnya, memperbaiki informasi yang sudah ketinggalan zaman, dan bahkan memperjelas konsep program.

Saat ini, informasi pemrograman memerlukan sistematisasi lebih dari unsur kimia 150 tahun yang lalu.

Kebutuhan pertama adalah mengajar. Mendeleev mulai menciptakan sistemnya ketika dia dihadapkan pada pertanyaan tentang unsur mana yang harus mulai mengajar: O, H, N, He, Au... Pada saat yang sama, lebih mudah baginya - dia mengajar kimia kepada siswa terbaik - Universitas St. Pemrograman sudah diajarkan di sekolah dan akan segera dimulai di taman kanak-kanak.

Kebutuhan kedua adalah pendekatan ilmiah. Dengan bantuan Tabel Periodik, unsur-unsur baru ditemukan dan informasi tentang unsur-unsur lama diperbaiki. Dia membantu menciptakan model atom (1911). Dan seterusnya.

Kebutuhan ketiga adalah memperjelas konsep suatu program.

Pemrograman modern terjebak di tahun 50-an abad ke-XNUMX. Saat itu, programnya sederhana, tetapi mesin dan bahasa mesin rumit, jadi semuanya berkisar pada mesin dan bahasa.

Sekarang yang terjadi adalah sebaliknya: program itu rumit dan utama, bahasanya sederhana dan sekunder. Ini disebut pendekatan terapan, yang sepertinya sudah familiar bagi semua orang. Namun pelajar dan pengembang terus yakin bahwa semuanya sama.

Yang membawa kita kembali ke kuliah pertama Privatdozent Mendeleev. Apa yang harus diberitahukan kepada mahasiswa baru? Dimana kebenarannya? Itulah pertanyaannya.

Buku “Matryoshka C” menawarkan jawabannya atas pertanyaan ini. Sistem bahasa program berlapis". Selain itu, ditujukan tidak hanya kepada pelajar, tetapi juga kepada programmer terlatih, karena merekalah, yaitu kita, yang harus mencari kebenaran dan mengubah pandangan dunia.

Berikut ringkasan bukunya.

1. Pendahuluan

Pada tahun 1969, bahasa C diciptakan, yang menjadi bahasa pemrograman dasar dan bertahan selama 50 tahun. Mengapa demikian? Pertama-tama, karena C adalah terapan bahasa yang memberikan program manusiawi lihat saja mesin. Prestasi ini diraih oleh bahasa dari keluarga C: C++, JavaScript, PHP, Java, C# dan lain-lain. Kedua, bahasanya pendek dan indah.

Namun, bahasa C sendiri biasanya dicampur dengan mesin assembler, sehingga memperumit dan memutarbalikkan persepsinya. Ekstrem lainnya adalah pemaksaan “filsafat” tertentu ke dalam bahasa: prosedural, objek, fungsional, disusun, ditafsirkan, diketik, dan seterusnya. Ini menambah emosi, tetapi tidak membantu mendeskripsikan bahasa dengan lebih baik.

Kebenarannya ada di tengah-tengah, dan untuk bahasa C, kebenarannya berada di tengah-tengah antara persepsi filosofis dan mesin.

Bahasa C tidak berdiri sendiri, ia mematuhi bahasa tertulis biasa, dan pada saat yang sama ia mengontrol bahasa rakitan itu sendiri. Posisi ini menjelaskan Model pidato program, yang menurutnya program ini dibagi menjadi tiga jenis bawahan: ucapan, kode, perintah. Bahasa C bertanggung jawab untuk tipe kode kedua.

Setelah menentukan tempat bahasa dalam program, Anda dapat mengatur informasi tentangnya, apa yang dilakukannya Sistem bahasa program berlapis, mewakili bahasa C dalam semangat sistem periodik - dalam satu halaman.

Sistem ini dibangun dengan mempertimbangkan komunitas bahasa terapan, yang timbul dari subordinasi ucapan mereka. Satu set unit Matryoshka C memungkinkan Anda mendeskripsikan dan membandingkan berbagai bahasa, membuat serangkaian Matryoshka: C++, PHP, JavaScript, C#, MySQL, Python, dan seterusnya. Adalah layak dan benar bahwa bahasa-bahasa yang berbeda dideskripsikan berdasarkan satuan-satuan bahasa dasar.

2. BAB 1. Model pidato program. Hapus C

Bab pertama menyajikan model pidato program, mencerminkan pendekatan terapan. Menurutnya, program ini memiliki tiga tipe sekuensial yang jelas:

  1. pidato - pidato langsung dari programmer yang memecahkan masalah,
  2. kode - pengkodean solusi ke dalam bentuk matematika dalam bahasa C (atau lainnya)
  3. dan perintah - perintah mesin langsung.

Model pidato menjelaskan mengapa C adalah bahasa yang sederhana dan mudah dimengerti. Xi dibangun berdasarkan gambaran dan kemiripan ucapan manusia yang kita kenal.

Jenis program yang pertama adalah pidato langsung dari programmer. Ucapan berhubungan dengan pemikiran manusia. Pemrogram pemula menulis program menggunakan ucapan - pertama dalam bahasa Rusia, kemudian menerjemahkan tindakan selangkah demi selangkah ke dalam bahasa kode. Dan justru pada model inilah bahasa C diciptakan.

Kesimpulan programmer, yang diungkapkan dalam ucapan, diubah menjadi bentuk numerik yang dikodekan. Transformasi ini harus disebut cerminan, karena ucapan dan kode mempunyai sifat yang sama (refleksi – kelahiran – gender). Hal ini cukup jelas jika kita membandingkan jenis ucapan (di sebelah kiri) dan kode (di sebelah kanan) dari program tersebut.

Matryoshka C. Sistem bahasa program berlapis

Sangat mengherankan bahwa refleksi terjadi dengan sangat sederhana - hanya dengan dua jenis ekspresi.

Namun, deskripsi modern bahasa C (sejak 1978) tidak memuat daftar nama yang cukup untuk mendeskripsikan bahasa secara umum, atau untuk tugas refleksi pada khususnya. Oleh karena itu, kami terpaksa harus berkreasi dan memperkenalkan nama-nama tersebut.

Pemilihan kata harus tepat dan jelas. Hal ini memerlukan pendekatan khusus, yang secara singkat diungkapkan sebagai berikut: penggunaan bahasa ibu secara ketat. Kalau orang Inggris itu bahasa Inggris, tapi kami bukan orang Inggris. Jadi kami akan menggunakan apa yang kami punya dan mencoba berbicara bahasa Rusia.

Refleksi dilakukan dengan dua jenis ekspresi:

  1. perhitungan (HF) - mencerminkan perubahan properti suatu objek. Sifat suatu benda dinyatakan dengan suatu bilangan, maka suatu tindakan terhadap suatu sifat adalah tindakan terhadap suatu bilangan – suatu operasi.
  2. subordinasi (Pch) - mencerminkan perubahan dalam urutan tindakan. Prototipe Pch adalah kalimat kompleks tutur, oleh karena itu sebagian besar jenis Pch diawali dengan konjungsi subordinatif “jika”, “sebaliknya”, “sementara”, “untuk”. Jenis PC lain melengkapinya.

Ngomong-ngomong, percayakah Anda bahwa dalam deskripsi C tidak ada nama untuk ekspresi perhitungan - mereka hanya disebut "ekspresi"? Setelah itu, tidak mengherankan lagi jika tidak ada nama dan asosiasi untuk jenis subordinasi, dan bahkan kurangnya nama, definisi dan generalisasi secara umum. Hal ini karena K/R yang terkenal (“The C Language”, Kernighan/Ritchie, 1978) bukanlah sebuah deskripsi, melainkan panduan dalam menggunakan bahasa tersebut.

Namun, saya tetap ingin mengetahui deskripsi bahasanya. Oleh karena itu dia ditawari Sistem bahasa program berlapis.

3. BAB 2. Sistem lapisan. Singkat C

Deskripsi apa pun harus akurat dan sangat ringkas. Dalam kasus bahasa program, deskripsi frontal sulit dilakukan.

Di sini kami punya program. Ini terdiri dari modul. Modul terdiri dari subrutin dan koleksi (struktur). Subrutin terdiri dari ekspresi individual: deklarasi, perhitungan, subordinasi. Ada sebanyak sepuluh jenis subordinasi. Subordinasi menghubungkan sublevel dan subrutin. Ada juga beberapa iklan. Namun, deklarasi disertakan tidak hanya dalam subrutin dan sublevel, tetapi juga dalam modul dan koleksi. Dan sebagian besar ekspresi terdiri dari kata-kata yang sangat sulit untuk dijelaskan sehingga biasanya hanya diberikan dalam dua daftar - kata asli dan kata turunan, yang akan Anda kenali selama pembelajaran dan penggunaan bahasa tersebut. Mari tambahkan tanda baca dan sejumlah ekspresi lainnya ke dalamnya.

Dalam presentasi seperti itu, tidak mudah untuk memahami siapa yang berdiri di atas siapa.

Pendekatan hierarki langsung untuk mendeskripsikan suatu bahasa akan menjadi terlalu rumit. Pencarian tidak langsung mengarah pada deskripsi bahasa berdasarkan sifat bicara dan sisi perintahnya. Maka lahirlah Sistem Lapisan, sebagian bertepatan dengan Sistem Periodik Mendeleev, yang juga demikian lapis. Ternyata 42 tahun setelah diterbitkan (1869), periodisitas sistem dikaitkan dengan elektronik lapisan (1911, model atom Bohr-Rutherford). Selain itu, sistem Berlapis dan Berkala serupa dalam susunan tabel semua unit dalam satu halaman.

Uraian satuan bahasa singkat - hanya 10 jenis ekspresi dan 8 jenis satuan lainnya, serta bermakna dan visual. Meski tidak biasa untuk kenalan pertama.

Satuan bahasa dibagi menjadi 6 tingkatan:

  1. unit - baris tabel
  2. departemen - kelompok genera khusus (bagian dari baris pertama)
  3. genus - sel (tingkat pembelahan utama)
  4. superspesies - pemisah spesies (tingkat langka)
  5. jenis - rumus satuan di bagian bawah sel atau secara terpisah
  6. pola - unit itu sendiri (hanya untuk kata-kata)

Contoh kata menjelaskan kamus - subsistem terpisah yang terdiri dari enam level yang sama.

Komponen ucapan bahasa C cukup jelas, meski masih layak untuk dideskripsikan. Tetapi bagian perintah dari bahasa tersebut justru terkait dengan kontrol kompilasi, di mana jenis program ketiga dibuat - perintah. Di sini kita sampai pada aspek paling menarik dari bahasa C: keindahan.

4. BAB BERIKUTNYA. Si tampan

Bahasa C adalah dasar dari pemrograman modern. Mengapa? Pertama, karena korespondensi ucapan yang paling besar. Kedua, karena ia dengan indahnya melewati batasan pemrosesan nomor mesin.

Apa sebenarnya usulan Xi? Gambar dan lapisan.

Kata "gambar" merupakan terjemahan dari kata bahasa Inggris "type", yang berasal dari bahasa Yunani "prototype" - "type". Dalam bahasa Rusia, kata "tipe" tidak menyampaikan landasan konsep yang diungkapkan, apalagi dikacaukan dengan arti tambahan "tipe".

Awalnya, gambar memecahkan masalah perhitungan mesin murni, dan kemudian menjadi landasan bagi lahirnya bahasa objek.

Lapisan ini memecahkan beberapa masalah sekaligus - baik masalah mesin maupun masalah terapan. Oleh karena itu, pertimbangan akan dimulai dengan gambar tugas tunggal dan beralih ke lapisan multitugas.

Salah satu ciri yang tidak menyenangkan dari pemrograman sejarah adalah sebagian besar konsep, termasuk konsep dasar, diberikan tanpa definisi. “Bahasa pemrograman (nama sungai) memiliki tipe bilangan bulat dan mengambang…” dan mereka menggaruk lebih jauh. Tidak perlu mendefinisikan apa itu “tipe” (gambar), karena penulisnya sendiri belum sepenuhnya memahami hal ini dan akan menutup-nutupinya “demi kejelasan”. Jika ditempel di dinding, akan memberikan definisi yang kabur dan tidak berguna. Sangat membantu untuk bersembunyi di balik kata-kata asing: untuk penulis Rusia - di belakang bahasa Inggris (tipe), untuk orang Inggris - di belakang bahasa Prancis (subrutin), Yunani (polimorfisme), Latin (enkapsulasi) atau kombinasinya (polimorfisme ad-hoc).

Tapi ini bukan takdir kita. Pilihan kami adalah definisi dengan pelindung terangkat dalam bahasa Rusia murni.

Gambar

Gambar adalah nama prefiguratif suatu besaran, yang menjelaskan 1) sifat intrinsik suatu besaran dan 2) pemilihan operasi untuk besaran tersebut.

Kata "tipe" (tipe) sesuai dengan bagian pertama definisi: "sifat intrinsik suatu besaran". Namun arti utama dari gambar tersebut ada pada bagian kedua: “pemilihan operasi terhadap besaran”.

Titik awal untuk memasukkan gambar ke dalam C adalah perhitungan normal, seperti operasi penjumlahan.

Kertas Matematika, baik yang ditulis dengan tangan atau dicetak, tidak banyak membedakan jenis bilangan, biasanya berasumsi bahwa bilangan tersebut nyata. Oleh karena itu, operasi pemrosesan mereka tidak ambigu.

Mesin Matematika secara ketat membagi bilangan menjadi bilangan bulat dan pecahan. Berbagai jenis angka disimpan secara berbeda dalam memori dan diproses oleh instruksi prosesor yang berbeda. Misalnya, instruksi untuk menjumlahkan bilangan bulat dan pecahan adalah dua instruksi berbeda yang berhubungan dengan dua node prosesor berbeda. Tetapi tidak ada perintah untuk menambahkan argumen bilangan bulat dan pecahan.

Terapan matematika, yaitu bahasa C, memisahkan jenis bilangan, tetapi menggabungkan operasi: penjumlahan bilangan bulat dan/atau pecahan ditulis dengan satu tanda tindakan.

Definisi yang jelas tentang gambaran konsep memungkinkan kita untuk secara pasti membicarakan dua konsep lainnya: besarnya и operasi.

Besaran dan operasi

Nilai — nomor yang sedang diproses.

Operasi — mengolah nilai nilai awal (argumen) untuk memperoleh bilangan akhir (total).

Besaran dan operasi saling terkait. Setiap operasi merupakan besaran karena mempunyai hasil numerik. Dan setiap nilai merupakan hasil pemindahan suatu nilai ke/dari register pemroses, yaitu hasil operasi. Terlepas dari hubungan ini, hal utama adalah kemungkinan deskripsi terpisah, meskipun dengan pengulangan satu kata di bagian kamus yang berbeda, seperti yang terjadi di MA3.

Pendekatan mesin membagi semua angka yang digunakan oleh programmer menjadi tim и data. Dulunya keduanya berupa angka, misalnya perintah ditulis dalam kode numerik. Namun, dalam bahasa terapan, perintah tidak lagi berupa angka dan menjadi dalam kata kata и tanda-tanda tindakan. Hanya “data” yang tersisa sebagai angka, tetapi tidak masuk akal untuk terus menyebutnya demikian, karena dalam peralihan dari sudut pandang mesin ke matematika, angka adalah besaran yang habis dibagi dengan aslinya (data) dan akhir (diperlukan). “Datum tidak diketahui” akan terdengar bodoh.

Tim juga dibagi menjadi dua jenis tindakan: matematika dan servis. Tindakan matematika - operasi. Kita akan membahas hal-hal resmi nanti.

Dalam bahasa C, operasi matematika biasa yang tidak ambigu, atau tunggal, hampir secara universal menjadi banyak.

Operasi ganda adalah beberapa operasi dengan nama yang sama dengan jenis argumen yang berbeda dan tindakan yang berbeda, serupa artinya.

Argumen bilangan bulat berhubungan dengan seluruh operasi, dan argumen pecahan berhubungan dengan operasi pecahan. Perbedaan ini terlihat jelas pada operasi pembagian, ketika ekspresi 1/2 menghasilkan total 0, bukan 0,5. Notasi seperti itu tidak sesuai dengan aturan matematika kertas, tetapi bahasa C tidak berusaha untuk mematuhinya (tidak seperti Fortran) - ia bermain sesuai dengan aturannya sendiri. terapan aturan.

Dalam kasus pencampuran bilangan bulat dan pecahan, satu-satunya yang benar akan disertakan memberikan nilai argumen — transformasi selektif suatu nilai dari satu gambar ke gambar lainnya. Memang saat menjumlahkan bilangan bulat dan bilangan pecahan, hasilnya adalah pecahan, begitulah gambaran operasinya menjemput operasi mengubah argumen bilangan bulat menjadi nilai pecahan.

Masih ada sejumlah operasi yang tersisa jamakDan Lajang. Operasi tersebut didefinisikan hanya untuk satu jenis argumen: sisa pembagian - argumen bilangan bulat, penumpukan (operasi bitwise) - bilangan bulat alami. Ma3 menunjukkan banyaknya operasi dengan tanda (#^) yang menunjukkan gambar yang operasinya ditentukan. Ini adalah properti yang penting namun sebelumnya diabaikan dalam setiap operasi.

Semua fungsi adalah operasi unit arbitrer. Pengecualian adalah operator - fungsi non-braket, dibangun ke dalam bahasa (operasi asli).

Pendampingan

Pendampingan - tindakan yang menyertai operasi.

Jika kita menganggap operasi sebagai tindakan utama, maka kita dapat membedakan dua tindakan pendamping yang menyediakan operasi dan berbeda darinya. Ini adalah 1) kontrol variabel dan 2) subordinasi. Tindakan ini disebut pendampingan.

Di sini kita perlu ngelantur dan mengatakan secara terpisah tentang terjemahan buku teks pemrograman dalam bahasa Rusia. Sebuah kata baru diperkenalkan dalam teks K/R untuk mencatat tindakan pernyataan (ekspresi), yang mencoba membagi konsep perintah mesin menjadi tindakan yang berbeda: 1) operasi, 2) deklarasi, dan 3) subordinasi (disebut "konstruk kontrol"). Upaya ini dikubur oleh para penerjemah Rusia, mengganti “ekspresi” dengan kata “operator”, yang:

  1. telah menjadi sinonim dengan kata mesin “perintah”,
  2. ternyata sinonim dengan ungkapan “tanda perbuatan”,
  3. dan juga menerima nilai tambahan dalam jumlah tidak terbatas. Artinya, telah berubah menjadi sesuatu yang mirip dengan artikel bahasa Inggris “uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh”

Pertimbangkan tindakan yang menyertainya, atau pendampingan.

Kontrol variabel

Kontrol variabel (ATAS) - membuat/menghapus sel variabel.
UE muncul secara implisit ketika mendeklarasikan variabel yang sudah ditulis untuk alasan lain - untuk menunjukkan gambar nilai. Hanya satu tampilan yang dikelola secara eksplisit variabel tambahan menggunakan fungsi malloc() dan free().

Perlu dicatat bahwa tindakan implisit lebih mudah untuk ditulis, karena tidak memerlukan penulisan apa pun, tetapi lebih sulit untuk dipahami - lebih sulit untuk diperhitungkan dan ditafsirkan.

Subordinasi

Subordinasi — menghubungkan/menonaktifkan bagian lapisan.

Bahasa C menawarkan metode terapan untuk mengontrol urutan tindakan, berbeda dari assembler - subordinasi. Ini mencerminkan dan mengembangkan kalimat kompleks ucapan dengan pembagian yang jelas menjadi bagian utama (klausa subordinasi) dan bagian bawahan (bagian sublevel/subrutin).

Baik deklarasi maupun penyerahan seluruhnya dibangun berdasarkan konsep tersebut слой.

Lapisan

Lapisan adalah serangkaian ekspresi selektif tingkat tunggal yang terbatas.

Lapisan tersebut secara eksplisit dan implisit melakukan beberapa tugas sekaligus:

  1. pengorganisasian program tersebut
  2. membatasi visibilitas nama (secara implisit),
  3. manajemen variabel (sel memori) (implisit),
  4. definisi klausa bawahan untuk subordinasi,
  5. definisi fungsi dan pilihan dan lain-lain.

Konsep lapisan dalam bahasa mesin tidak ada, sehingga tidak muncul di K/R, dan jika tidak ada, maka memperkenalkannya di buku-buku berikutnya adalah ajaran sesat dan pemikiran bebas. Oleh karena itu, konsep lapisan tidak muncul sama sekali, meskipun sangat berguna dan cukup jelas.

Tanpa lapisan, tidak mungkin menjelaskan secara singkat dan jelas banyak tindakan dan aturan program. Misalnya, mengapa goto yang sederhana seperti tiga kopeck itu buruk, dan yang rumit itu bagus. Anda hanya bisa bersumpah tanpa daya, seperti yang dilakukan Dijkstra (“keahlian programmer adalah fungsi yang berbanding terbalik dengan frekuensi kemunculan pernyataan goto dalam program mereka.” Singkatnya, hanya kambing yang menggunakan goto. Tingkat pembenarannya adalah Tuhan.) Benar, ini tidak terlalu menakutkan jika buku Anda tidak perlu menjelaskan apa pun kepada kami, tetapi, seperti yang telah kami katakan, ini bukan takdir kami.

Omong-omong, kita dapat berasumsi bahwa Dan Ritchie meninggalkan goto justru sebagai kunci untuk mencari konsep yang tidak disebutkan namanya, karena tidak ada kebutuhan atau keindahan dalam ekspresi goto. Namun diperlukan penjelasan yang sederhana dan mudah dipahami tentang prinsip-prinsip baru bahasa, yang tidak ingin diberikan oleh Richie sendiri, dan justru didasarkan pada konsep tersebut. слой.

Deviasi

Deviasi — mengubah properti biasa dari nama baru.

Penyimpangan yang paling penting justru berkaitan dengan properti lapisan program, dan dijelaskan dengan satu kata “statis”, yang memiliki arti berbeda di setiap jenis lapisan.

5. BAB TERAKHIR. Kesamaan bahasa yang diterapkan

Bahasa terapan adalah kiasan bahasa (memiliki gambar, "diketik"). Mereka didasarkan pada penggunaan gambar secara eksplisit atau implisit. Selain itu, kontradiksi muncul lagi di sini: gambaran eksplisit lebih mudah dipahami, tetapi kurang nyaman, dan sebaliknya.

Matryoshka C. Sistem bahasa program berlapis

(Tata letak tabel belum dikirimkan, jadi tabel ditampilkan dengan gambar.)

Setelah C, perkembangan bahasa terapan mengambil jalur untuk meningkatkan kiasannya. Yang paling penting untuk memahami citra tinggi adalah turunan langsung dari C - bahasa C++. Dia mengembangkan gagasan tentang pemilihan operasi kuantitas yang sewenang-wenang dan mewujudkannya berdasarkan pemilihan ekspresi sintetik, yang menerima nama baru - objek. Namun, C++ tidak sesingkat dan ekspresif C karena kelebihan jenis koleksi baru dan aturan terkaitnya. Ngomong-ngomong, mari kita bicara tentang “kelebihan beban”.

Kelebihan beban dan polimorfisme

Kata "overload" adalah istilah pembelajaran mesin yang sudah ketinggalan zaman untuk penciptaan beberapa operasi.

Pemrogram mesin (sistem). kemajemukan operasi bisa jadi menjengkelkan: “Apa arti tanda (+) ini: menjumlahkan bilangan bulat, menjumlahkan pecahan, atau bahkan menggeser?! Di zaman kita, mereka tidak menulis seperti itu!” Oleh karena itu konotasi negatif dari kata yang dipilih (“berlebihan”, “lelah”). Bagi seorang pemrogram aplikasi, banyak operasi adalah hal terpenting, pencapaian utama dan warisan bahasa C, begitu wajar sehingga sering kali tidak dikenali.

Dalam bahasa C++ kemajemukan diperluas tidak hanya ke operasi asli, tetapi juga ke fungsi - baik metode individual maupun gabungan ke dalam kelas. Dengan berbagai metode, muncullah kemampuan untuk menimpanya di kelas yang diperluas, yang secara samar-samar disebut "polimorfisme". Kombinasi polimorfisme dan beban berlebih menghasilkan campuran eksplosif yang terpecah menjadi dua polimorfisme: “benar” dan “ad-hoc”. Hal ini hanya dapat dipahami meskipun ada nama yang diberikan. Jalan menuju iklan dipenuhi dengan nama-nama asing.

Pernyataan dalam bentuk “kelebihan beban” lebih baik diungkapkan dalam kata pengumuman tambahan — menambahkan deklarasi fungsi dengan nama yang sama dengan argumen gambar yang berbeda.

Deklarasi bentuk “polimorfisme” lebih baik disebut pengumuman ulang — deklarasi yang tumpang tindih di lapisan ekstensi baru dari fungsi dengan nama yang sama dengan argumen gambar yang sama.

Maka akan mudah untuk memahami bahwa metode yang sama dari gambar (argumen) yang berbeda - tambahan diumumkan, dan satu gambar - diumumkan kembali.

Kata-kata Rusia memutuskan.

landasan pacu

Pertimbangan konsep-konsep bahasa yang sangat kiasan menegaskan pentingnya definisi yang jelas tentang konsep-konsep dasar. Dengan C yang dijelaskan dengan benar, mempelajari bahasa kiasan tinggi akan menjadi mudah dan menyenangkan.

Ini sangat penting untuk bahasa implisit yang sangat kiasan (PHP, Javascript). Bagi mereka, pentingnya objek (gambar komposit) menjadi lebih tinggi dibandingkan di C++, namun konsep gambar menjadi implisit dan sulit dipahami. Dari sudut pandang kemudahan, mereka menjadi lebih sederhana, tetapi dari sudut pandang pemahaman, mereka menjadi lebih sulit.

Oleh karena itu, Anda sebaiknya mulai belajar bahasa pemrograman dengan bahasa C dan melangkah lebih jauh sesuai urutan munculnya bahasa keluarga C.

Hal yang sama berlaku untuk mendeskripsikan bahasa. Bahasa yang berbeda memiliki kumpulan unit gender yang sama, atau lebih kecil, dibandingkan bahasa C. Jumlah tipe dan sampel mungkin berbeda di kedua arah: C++ memiliki lebih banyak tipe daripada C, sedangkan JavaScript memiliki lebih sedikit.

Bahasa MySQL patut mendapat perhatian khusus. Tampaknya tidak ada kesamaan, tetapi ia digambarkan dengan sempurna oleh Matryoshka, dan mengenalnya menjadi lebih cepat dan mudah. Yang mana ini penting, mengingat pentingnya web - jalur makan pemrograman modern. Dan di mana ada MySQL, di situ ada SQL lainnya. Nah, segala jenis Fortran-Pascal-Python juga dijelaskan oleh Matryoshka, segera setelah mereka mendapatkannya.

Jadi, hal-hal besar menanti kita - deskripsi terapan dari bahasa C dan deskripsi terpadu dari bahasa-bahasa yang mengikutinya. “Tujuan kami jelas, tugas kami jelas. Mulailah bekerja, kawan! (Tepuk tangan meriah dan berkepanjangan, berubah menjadi tepuk tangan meriah. Semua orang berdiri.)"

Pendapat anda akan disimak dengan penuh perhatian, bantuan anda dalam pembuatan website boneka bersarang akan diterima dengan penuh rasa terima kasih. Informasi lebih lengkap tentang buku tersebut ada di website, yang disembunyikan dengan cerdik di Matryoshka C.

Sumber: www.habr.com

Tambah komentar