


Sejarah C dan C . Bahagian satu: kemunculan dan penyeragaman bahasa C. C dengan Kelas menjadi C
C dan C ialah bahasa ikonik di mana sejumlah besar kod ditulis. Apakah jalan yang telah mereka lalui untuk menjadi satu? Artikel ini merangkumi kemunculan C dan permulaan penyeragaman rasminya. Selain itu, anda akan belajar tentang C dengan Kelas dan perubahan akhirnya menjadi C .
1969 — 1973. C dilahirkan ke dunia
1969. Apollo 11 melawat Bulan. AT&T Bell Labs membangunkan bahasa yang kita semua tahu hari ini sebagai C. Pada masa ini, sistem pengendalian Unix berada di peringkat pembangunan awal.
Malah, bahasa C mengambil alih ciri utama daripada bahasa B. Serta asal usul namanya. Bagi Unix, ia pada mulanya dilaksanakan dalam bahasa himpunan dan tidak mempunyai pengkompil untuk bahasa peringkat tinggi. Atribut pembangunan projek ini kepada salah satu sebab penciptaan bahasa C.
Pada tahun 1971, pengkompil dan beberapa utiliti dalam C telah dimasukkan ke dalam versi kedua Unix. Dan pada tahun 1973, kernel Unix sebahagian besarnya ditulis dalam C.
1978. Buku ini menjadi spesifikasi pertama
Dennis Ritchie dan Brian Kernighan menerbitkan edisi pertama "The C Programming Language" pada 22 Februari 1978. Buku ini merupakan bahan pertama yang tersedia secara meluas dalam bahasa C.
Rajah N1 - Kulit edisi pertama buku "C Programming Language"
Ia telah menjadi standard untuk pembangunan C dari masa penerbitannya sehingga pensijilan bahasa rasmi yang pertama. "Standard" itu dipanggil K&R—selepas huruf pertama nama keluarga pengarang.
Buku ini memperkenalkan program "Hello World" sebagai contoh program kerja minimum. Selepas tahun 1978, hampir setiap buku mengenai bahasa pengaturcaraan tidak dapat dilakukan tanpa contoh kod ini. Hari ini, memaparkan "Hello World" sebagai program pertama anda adalah tradisi yang sudah sedia terjamin.
#include <stdio.h> main() { printf("Hello, World\n"); } </stdio.h>
K&R mempersembahkan beberapa ciri bahasa. Contohnya, struktur—satu set beberapa pembolehubah yang dikumpulkan di bawah satu nama untuk memudahkan rujukan, serta jenis data long int dan unsigned int.
Operator penambahan/tolak dengan tugasan juga berubah dalam K&R C. Sebelum ini, untuk meningkatkan nilai sebanyak satu, anda perlu menulis a = 1, tetapi operator tersebut mengelirukan pengkompil C. Selain itu, perbezaan antara a = 1 (naik satu) dan a = 1 (tugasan) kelihatan agak rapuh dari sudut pandangan manusia. Dalam K&R C pengendali ini bertukar menjadi yang biasa—a = 1.
Contoh kod dalam buku itu direka bentuk dalam gaya seragam, yang juga dinamakan sempena huruf pertama nama keluarga pencipta. Gaya K&R terkenal kerana penggunaan lapan ruang putih sebagai lekukan utama (walaupun empat ruang putih lebih biasa digunakan). Ia juga dipanggil "gaya kernel", kerana kernel Unix ditulis dalam gaya ini.
#include <stdio.h> main() { printf("Hello, World\n"); } </stdio.h>
1979. C dengan kelas
Pada Mei 1979, pekerja Bell Labs Bjarne Stroustrup mula membangunkan sistem yang akan menjadi kluster Unix yang pertama. Dengan kata lain, dia mula mencipta sistem pengkomputeran teragih yang disambungkan ke rangkaian biasa beberapa komputer.
Masalahnya ialah kekurangan kit alat yang sesuai untuk ini. Di antara bahasa pengaturcaraan sedia ada, terdapat dua pilihan yang boleh membantu menyelesaikan masalah ini, tetapi kedua-duanya mempunyai nuansa. Bahasa BCPL adalah pantas tetapi tidak sesuai untuk projek besar kerana ia agak hampir dengan bahasa peringkat rendah. Bahasa pengaturcaraan berorientasikan objek Simula, sebaliknya, sesuai untuk tugas itu tetapi agak perlahan. Jadi Stroustrup mula melaksanakan bahasa berasaskan Cnya sendiri.
Seawal Oktober 1979, prapemproses CPRE, menambah kelas, kepada C telah sedia. Bahasa itu dipanggil C dengan Kelas. Seseorang boleh menulis kod program dan menyampaikannya kepada prapemproses. Walau bagaimanapun, ia masih dianggap sebagai lanjutan kepada C.
Selain kelas, versi pertama C dengan Kelas termasuk:
- kelas terbitan, tetapi belum mempunyai fungsi maya;
- kawalan akses;
- pembina dan pemusnah;
- kelas rakan;
- kawalan dan penghantaran jenis hujah fungsi.
1983. ANSI C
Bahasa semakin popular:
- C mula menggantikan Asas sebagai bahasa utama untuk pengaturcaraan mikrokomputer;
- Penyusun baharu muncul. Lebih-lebih lagi, ia ditulis oleh orang yang tidak terlibat secara langsung dalam pembangunan bahasa.
Tetapi walaupun dengan populariti itu, C hanya mempunyai standard K&R yang tidak dinyatakan. Pembangun penyusun telah memperkenalkan banyak perubahan bukan standard kepada bahasa. Pada masa inilah masalah mudah alih kod mula memanas. Piawaian C pertama mula muncul memandangkan julat isu ini.
Pada tahun 1983, Institut Piawaian Kebangsaan Amerika (ANSI) membentuk jawatankuasa untuk merangka spesifikasi. Proses penyeragaman berakhir hanya pada tahun 1989, apabila standard pertama untuk bahasa itu disahkan sebagai "ANSI X3.159-1989: Bahasa Pengaturcaraan C". Pada tahun yang sama, edisi kedua buku "The C Programming Language" telah diterbitkan, menerangkan bahasa seperti yang terdapat dalam standard. Dalam masa setahun, piawaian ini telah diluluskan oleh Pertubuhan Standardisasi Antarabangsa (ISO) dengan perubahan kecil.
Rajah N2 - Kulit edisi kedua buku "C Programming Language"
Selain kemunduran perubahan pada bahasa sejak K&R, piawaian ini termasuk ciri baharu sepenuhnya, seperti prototaip fungsi dan prapemproses yang lebih canggih. Piawaian itu juga termasuk penerangan tentang komposisi perpustakaan standard. Di samping itu, beberapa cara yang tidak ditakrifkan lebih awal telah diberikan takrifan yang lebih tepat.
1983. C dengan Kelas C
Pada tahun 1982, Bjarne Stroustrup mula mengusahakan perubahan yang akan membawa C dengan Kelas keluar dari negeri ini, yang penciptanya panggil sebagai "kejayaan sederhana". Bermula dari saat itu, ia mengambil masa setahun untuk membangunkan penyusun. Cfront keluar pada tahun 1983.
Ciri utamanya ialah ia menukar C dengan kelas kepada kod C. Selepas itu, kod yang ditukar dihantar kepada pengkompil C. Ciri ini membolehkan lebih ramai orang menggunakan pengkompil, serta menggunakannya pada infrastruktur Unix sedia ada.
Apabila bahasa berkembang, namanya berubah beberapa kali. Ia pertama kali dipanggil C84 kerana komuniti memanggilnya hanya C. Walau bagaimanapun, nama itu juga mengelirukan, kerana ia lebih seperti standard C baharu daripada subset bahasa. Dan ia sebenarnya tidak membantu dengan masalah nama sebelumnya. Akhirnya bahasa itu dikenali sebagai C , iaitu C dan pengendali kenaikan.
Apabila berpindah dari C dengan kelas ke C , ciri baharu lain muncul dalam bahasa:
- fungsi maya;
- nama fungsi dan operator lebih muatan;
- rujukan;
- pemalar;
- semakan jenis dipertingkatkan;
- kawalan memori kedai bebas dikawal pengguna.
Gaya ulasan, yang masih digunakan hari ini, berakar pada peringkat perkembangan bahasa ini. Gaya ini digunakan dalam bahasa lain juga.
Beginilah kehidupan C sebelum pensijilan rasmi. Stroustrup bertindak balas dengan segera kepada permintaan komuniti pengaturcara. Beliau menerbitkan karya yang mewakili huraian standard bahasa itu. Jadi, bahasa itu dikekalkan terutamanya atas usaha penciptanya.
1985. "Bahasa pengaturcaraan C."
Pada Februari 1985, versi pertama C yang boleh diagihkan telah dikeluarkan. Pada bulan Oktober tahun yang sama, pencipta bahasa Bjarne Stroustrup mengeluarkan edisi pertama buku "The C Programming Language."
Rajah N3 - Kulit edisi pertama buku "The C Programming Language"
Ia menjadi standard tersirat pertama untuk bahasa C sama seperti buku Kernighan dan Ritchey "The C Programming Language." Ia sehingga standard rasmi pertama.
Dalam buku itu, Stroustrup merangkumi ciri bahasa serta isu reka bentuk dari perspektif C, menyerikan setiap titik dengan banyak contoh kod.
Sejak itu, buku itu telah dicetak semula tiga kali lagi, setiap kali dengan kemas kini bahasa. Pada masa penulisan, edisi ke-4 terbaharu termasuk standard C 11.
1989. C 2.0
Pada Julai 1989, pengkompil Cfront 2.0 telah dikeluarkan. Ia telah disemak dengan ketara berbanding versi sebelumnya dan juga membawa kebaharuan kepada bahasa C.
Pada masa ini, templat sudah menjadi buah mulut orang ramai. Tiada siapa yang meragui bahawa ia akan dilaksanakan, kerana ia adalah objektif yang realistik. Bagi satu lagi ciri unggul yang berpotensi—warisan berbilang—merupakan cabaran sebenar bagi pencipta daripada komuniti pengaturcaraan. Ramai yang mengatakan bahawa melaksanakan pelbagai warisan dalam C adalah mustahil. Dalam Simula, sebagai contoh, cadangan serupa telah ditolak kerana kerumitan pemungut sampah yang tidak dapat dielakkan. Walau bagaimanapun, warisan berbilang amat diperlukan, kerana ia akan memudahkan pembangunan perpustakaan yang kodnya agak menyusahkan tanpanya.
Akibatnya, berbilang warisan telah ditambahkan dalam Cfront 2.0. Penambahan bahasa ini telah mencetuskan kontroversi. Sebagai contoh, ada yang berpendapat bahawa bahasa Smalltalk, lambang pengaturcaraan berorientasikan objek, tidak mempunyai banyak warisan. Itulah sebabnya C sudah tentu tidak sepatutnya menerimanya. Pencipta bahasa beranggapan bahawa tindak balas sebegitu disebabkan oleh mengambil warisan berbilang terlalu serius.
Versi C di atas turut memperkenalkan:
- penunjuk kepada ahli, yang membenarkan membuat penunjuk kepada medan dan fungsi bukan statik;
- statik dan const fungsi ahli;
- pengubah suai akses dilindungi;
- pautan jenis-selamat;
- kelas abstrak;
- baharu dan padam khusus untuk kelas;
1990. Borland C
Pada tahun 1990, Borland mengeluarkan persekitaran pembangunan bersepadu Borland C untuk membangunkan program C dan C (macam kelainan, hah?). Ia pada asalnya bertujuan untuk pembangunan di bawah DOS, tetapi kemudiannya sokongan Windows telah diperkenalkan juga.
Rajah N4 - Tangkapan skrin daripada Borland C
Secara sejarah, Borland C adalah keturunan Turbo C tetapi menggabungkan ciri-ciri C —sokongan pengaturcaraan berorientasikan objek.
Setiap versi persekitaran mempunyai pengkompil sendiri yang menyokong piawaiannya sendiri. Lama kelamaan, Borland C mendapat banyak perpustakaan khusus untuk pembangunan aplikasi yang pantas.
Versi Borland C IDE yang terakhir dikeluarkan pada tahun 1997, selepas itu ia digantikan dengan siri Borland C Builder. Penamat Borland C datang pada tahun 2000 dengan keluaran Borland C 5.5 datang dengan pengkompil.
Borland C ialah editor selesa yang bagus untuk DOS. Malah terdapat beberapa jenis pewarnaan sintaks.
Yuri Minaev, arkitek teras C dan C penganalisis PVS-Studio
Empat tahun selepas Borland, Microsoft mengeluarkan persekitaran pembangunan bersepadu Visual Cnya.
1990. Templat dan mekanisme pengendalian pengecualian dalam C
Pada tahun 1986, Bjarne Stroustrup menulis artikel "Apakah Pengaturcaraan Berorientasikan Objek?" di mana dia menyuarakan tiga kelemahan C :
- kekurangan sokongan untuk jenis parameter;
- kekurangan mekanisme pengendalian pengecualian standard;
- kekurangan berbilang warisan.
Pewarisan berbilang diperkenalkan pada tahun 1989 dengan C 2.0, dan kelemahan selebihnya telah diperbaiki pada tahun 1990 dengan ciri bahasa baharu. Mereka diterangkan oleh Stroustrup dalam buku "Manual Rujukan C Beranotasi".
Templat dan pengendalian pengecualian muncul tidak lama lagi, satu demi satu. Templat telah diluluskan di Seattle pada bulan Julai, dan mekanisme pengendalian pengecualian telah diluluskan di Palo Alto pada bulan November. Keluaran rapat mereka adalah disebabkan oleh fakta bahawa kedua-dua inovasi ini menangani masalah yang sama. Menurut pencipta bahasa itu sendiri, templat membolehkan anda mengurangkan bilangan ralat semasa pelaksanaan program dengan memperluaskan keupayaan sistem jenis statik. Walaupun pengecualian membolehkan anda mengendalikan baki ralat.
Jenis berparameter telah dipertimbangkan kembali dalam edisi pertama C . Namun mereka terpaksa ditangguhkan kerana kekurangan masa untuk mengkaji isu reka bentuk dan pelaksanaan yang mencukupi. Pengecualian juga ditangguhkan atas sebab yang sama. Dan ia bukan sia-sia. Reka bentuk mereka bertahan dari 1984 hingga 1989.
"Manual Rujukan C Beranotasi" juga memperkenalkan ruang nama dan keupayaan untuk mengenal pasti jenis semasa masa jalan.
Pengaturcaraan generik mula mendapat momentum pada ketika itu. C dengan templat bukan perintis. Semasa membuat templat, pencipta sedang melukis idea daripada bahasa pengaturcaraan ML, CLU dan Ada.
Walau bagaimanapun, adalah selamat untuk mengatakan bahawa C mempromosikan paradigma ini. Templat memungkinkan untuk menulis kod tanpa makro dalam banyak kes, mengurangkan peluang menembak diri sendiri di kaki. Di sini datang lalat dalam salap —fungsi beroperasi sepenuhnya yang memudahkan kerja dengan pengaturcaraan generik hanya muncul oleh C 20. Tetapi itu tidak menghalang pengaturcara apabila mereka mengetahui bahawa templat boleh mendayakan pengiraan pada peringkat penyusunan...
Sebaliknya, pengecualian dalam C tidak begitu jelas. Malangnya, mereka tidak menyelesaikan semua masalah pengendalian ralat berbanding pendekatan terdahulu. Aliran kawalan menjadi tidak remeh apabila menggunakan pengecualian. Terdapat banyak cara untuk menembak diri sendiri dengan mereka, seperti mewarisi pengecualian secara peribadi, menangkap pengecualian mengikut nilai, atau mengatur blok tangkapan dalam susunan yang salah, dsb. Akibatnya, sesetengah piawaian pengekodan melarang penggunaannya, seperti Google Gaya Kod C.
Philipp Khandelyants, Ketua Pasukan pasukan pembangunan C dan C di PVS-Studio
"Manual Rujukan C Beranotasi" telah menjadi semacam pendahulu kepada penyeragaman rasmi C. Ia menerangkan semua inovasi yang tidak lama lagi akan menjadi standard untuk bahasa itu.
Dalam siri seterusnya...
Dalam artikel ini, kami membincangkan peristiwa dalam sejarah C dan C dari 1969 hingga 1990. Dalam artikel seterusnya, kami akan menyelidiki sejarah C dari 1991 hingga hari ini:
- Buku Bjarne Stroustrup tentang cara C dicipta;
- C 98 ialah piawaian rasmi pertama;
- C99—C terus bergerak;
- Laporan Teknikal 1—ciri C baharu di atas kertas;
- Keluaran Viva64, kemudian—PVS-Studio;
- C merekodkan apa yang telah dicapai (C99, C11), dan C memperoleh momentum (C 11, C 17);
- C 20 dan C 23.
Atas ialah kandungan terperinci Sejarah C dan C . Bahagian satu: kemunculan dan penyeragaman bahasa C. C dengan Kelas menjadi C. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

C Pelajar dan pemaju boleh mendapatkan sumber dan sokongan dari StackOverflow, Komuniti R/CPP Reddit, Coursera dan EDX, Projek Sumber Terbuka di GitHub, Perkhidmatan Perundingan Profesional, dan CPPCON. 1. StackOverflow memberikan jawapan kepada soalan teknikal; 2. Komuniti R/CPP Reddit berkongsi berita terkini; 3. Coursera dan EDX menyediakan kursus f rasmi; 4. Projek sumber terbuka pada GitHub seperti LLVM dan meningkatkan kemahiran meningkatkan; 5. Perkhidmatan perundingan profesional seperti jetbrains dan perforce menyediakan sokongan teknikal; 6. CPPCON dan persidangan lain membantu kerjaya

C# sesuai untuk projek yang memerlukan kecekapan pembangunan tinggi dan sokongan silang platform, manakala C sesuai untuk aplikasi yang memerlukan prestasi tinggi dan kawalan asas. 1) C# Memudahkan pembangunan, menyediakan pengumpulan sampah dan perpustakaan kelas yang kaya, sesuai untuk aplikasi peringkat perusahaan. 2) C membolehkan operasi memori langsung, sesuai untuk pembangunan permainan dan pengkomputeran berprestasi tinggi.

C Alasan penggunaan berterusan termasuk prestasi tinggi, aplikasi luas dan ciri -ciri yang berkembang. 1) Prestasi kecekapan tinggi: C melaksanakan dengan baik dalam pengaturcaraan sistem dan pengkomputeran berprestasi tinggi dengan terus memanipulasi memori dan perkakasan. 2) Digunakan secara meluas: bersinar dalam bidang pembangunan permainan, sistem tertanam, dan lain -lain. 3) Evolusi berterusan: Sejak pembebasannya pada tahun 1983, C terus menambah ciri -ciri baru untuk mengekalkan daya saingnya.

Trend pembangunan masa depan C dan XML adalah: 1) C akan memperkenalkan ciri -ciri baru seperti modul, konsep dan coroutin melalui piawaian C 20 dan C 23 untuk meningkatkan kecekapan dan keselamatan pengaturcaraan; 2) XML akan terus menduduki kedudukan penting dalam pertukaran data dan fail konfigurasi, tetapi akan menghadapi cabaran JSON dan YAML, dan akan berkembang dengan lebih ringkas dan mudah untuk menghuraikan arahan, seperti penambahbaikan XMLSChema1.1 dan XPath3.1.

Model reka bentuk C moden menggunakan ciri -ciri baru C 11 dan seterusnya untuk membantu membina perisian yang lebih fleksibel dan cekap. 1) Gunakan Ekspresi Lambda dan STD :: Fungsi untuk memudahkan corak pemerhati. 2) Mengoptimumkan prestasi melalui semantik mudah alih dan pemajuan sempurna. 3) Penunjuk pintar memastikan jenis keselamatan dan pengurusan sumber.

C Konsep teras pengaturcaraan multithreading dan serentak termasuk penciptaan dan pengurusan thread, penyegerakan dan pengecualian bersama, pembolehubah bersyarat, penyatuan thread, pengaturcaraan tak segerak, kesilapan umum dan teknik debugging, dan pengoptimuman prestasi dan amalan terbaik. 1) Buat benang menggunakan kelas STD :: Thread. Contohnya menunjukkan cara membuat dan menunggu benang selesai. 2) Segerakkan dan pengecualian bersama untuk menggunakan std :: mutex dan std :: lock_guard untuk melindungi sumber bersama dan mengelakkan persaingan data. 3) Pemboleh ubah keadaan menyedari komunikasi dan penyegerakan antara benang melalui std :: condition_variable. 4) Contoh kolam benang menunjukkan cara menggunakan kelas threadpool untuk memproses tugas selari untuk meningkatkan kecekapan. 5) Pengaturcaraan Asynchronous menggunakan std :: as

Pengurusan memori C, petunjuk dan templat adalah ciri teras. 1. Pengurusan memori secara manual memperuntukkan dan melepaskan memori melalui baru dan memadam, dan memberi perhatian kepada perbezaan antara timbunan dan timbunan. 2. Pointers membenarkan operasi langsung alamat memori, dan gunakannya dengan berhati -hati. Penunjuk pintar dapat memudahkan pengurusan. 3.

C sesuai untuk pengaturcaraan sistem dan interaksi perkakasan kerana ia menyediakan keupayaan kawalan dekat dengan perkakasan dan ciri-ciri kuat pengaturcaraan berorientasikan objek. 1) C melalui ciri-ciri peringkat rendah seperti penunjuk, pengurusan memori dan operasi bit, operasi peringkat sistem yang cekap dapat dicapai. 2) Interaksi perkakasan dilaksanakan melalui pemacu peranti, dan C boleh menulis pemandu ini untuk mengendalikan komunikasi dengan peranti perkakasan.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver Mac版
Alat pembangunan web visual

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),