Atur cara yang ditulis dalam "bahasa pengaturcaraan" dipanggil program sumber. Kod sumber merujuk kepada fail teks yang tidak tersusun yang ditulis mengikut spesifikasi bahasa pengaturcaraan tertentu Ia merujuk kepada satu siri arahan bahasa komputer yang boleh dibaca manusia, biasanya ditulis dalam bahasa peringkat tinggi. Matlamat utama program sumber komputer adalah untuk menterjemah teks yang boleh dibaca manusia ke dalam arahan binari yang boleh dilaksanakan oleh komputer Proses ini dipanggil kompilasi dan diselesaikan melalui pengkompil.
Persekitaran pengendalian tutorial ini: sistem Windows 7, komputer Dell G3.
Atur cara yang ditulis dalam "bahasa pengaturcaraan" dipanggil program sumber.
Apakah itu program sumber?
Atur cara sumber, juga dikenali sebagai kod sumber, merujuk kepada tidak tersusun dan direka bentuk mengikut program tertentu Fail teks yang ditulis dalam spesifikasi bahasa merujuk kepada satu siri arahan bahasa komputer yang boleh dibaca manusia, biasanya ditulis dalam bahasa peringkat tinggi.
Dalam bahasa pengaturcaraan moden, program sumber boleh muncul dalam bentuk buku atau pita atau pembawa lain, tetapi format yang paling biasa digunakan ialah fail teks Tujuan format biasa ini adalah untuk menyusun atur cara komputer.
Matlamat utama program sumber komputer adalah untuk menterjemah teks yang boleh dibaca manusia ke dalam arahan binari yang boleh dilaksanakan oleh komputer Proses ini dipanggil kompilasi dan diselesaikan melalui pengkompil.
Jenis fail program sumber merujuk kepada kaedah pengekodan khas yang digunakan semasa menyimpan program sumber, yang mudah dibaca dan dikenal pasti. Fail teks adalah jenis fail yang paling biasa digunakan, tetapi banyak bahasa peringkat tinggi dan bahasa pemasangan mempunyai jenis fail mereka sendiri kemudahan penyusunan penyusun masa hadapan.
Kemunculan bahasa pengaturcaraan peringkat tinggi (juga dipanggil bahasa peringkat tinggi) menjadikan bahasa pengaturcaraan komputer tidak lagi bergantung terlalu banyak pada mesin atau persekitaran tertentu. Ini kerana bahasa peringkat tinggi disusun ke dalam bahasa mesin yang berbeza pada platform yang berbeza dan bukannya dilaksanakan secara langsung oleh mesin. Salah satu matlamat utama FORTRAN, salah satu bahasa pengaturcaraan terawal, adalah untuk mencapai kebebasan platform.
Fungsi
Fungsi utama kod sumber mempunyai dua fungsi berikut:
Jana kod sasaran, iaitu , komputer boleh mengenali kodnya.
Terangkan perisian, iaitu menerangkan penulisan perisian. Ramai pemula, dan juga beberapa pengaturcara yang berpengalaman, mengabaikan penulisan perihalan perisian kerana bahagian ini tidak akan dipaparkan secara langsung dalam program yang dihasilkan, dan ia tidak akan terlibat dalam penyusunan. Tetapi ia menunjukkan bahawa ia mempunyai faedah yang besar untuk pembelajaran perisian, perkongsian, penyelenggaraan dan penggunaan semula perisian. Oleh itu, menulis perihalan perisian dianggap sebagai tabiat yang baik dalam industri untuk mencipta program yang sangat baik, dan sesetengah syarikat juga mewajibkan untuk menulisnya.
Perlu ditegaskan bahawa untuk bahasa yang disusun, seperti C/C/Java, pengubahsuaian kod sumber tidak boleh mengubah kod sasaran yang dijana. Jika kod sasaran perlu diubah suai dengan sewajarnya, ia mesti dikompilasi semula. Walau bagaimanapun, pada masa ini terdapat banyak bahasa skrip yang popular, seperti Perl/Python, yang tidak memerlukan penyusunan semula Selepas mengubah suai kod, anda boleh terus melaksanakannya dan melihat hasil pengubahsuaian.
Gabungan kod
Kod sumber ialah bahagian khas perisian dan mungkin disertakan dalam satu atau lebih fail. Program tidak perlu ditulis dalam format yang sama seperti kod sumber. Sebagai contoh, jika program disokong oleh perpustakaan bahasa C, ia boleh ditulis dalam bahasa C manakala bahagian lain boleh ditulis dalam bahasa himpunan untuk mencapai kecekapan operasi yang lebih tinggi. Setakat situasi semasa, terdapat sangat sedikit perisian yang perlu ditulis secara langsung dalam bahasa himpunan, kerana banyak kali program pengoptimuman yang dihasilkan oleh pengkompil sudah sangat cekap, dan lebih kerap ia disusun menggunakan C/C. Bahasa untuk menulis bahagian teras yang memerlukan kelajuan, dan menggunakan bahasa dinamik seperti Perl/Python/Lua untuk melakukan sambungan teras, seperti antara muka, konfigurasi pengurusan, dsb. Ini tidak akan kehilangan kecekapan mahupun meningkatkan fleksibiliti program.
Perisian yang lebih kompleks secara amnya memerlukan penyertaan berpuluh atau bahkan ratusan kod sumber. Untuk mengurangkan kerumitan ini, sistem yang boleh menerangkan hubungan antara setiap kod sumber dan cara menyusunnya dengan betul mesti diperkenalkan. Dalam konteks ini, sistem kawalan versi (VCS) telah dilahirkan dan menjadi salah satu alat yang diperlukan untuk pembangun untuk menyemak semula kod.
Terdapat kombinasi lain: mengalihkan perisian yang ditulis untuk satu platform ke platform lain, seperti mengalihkan perisian di bawah Windows ke Linux atau MacOS Istilah profesional ialah pengalihan perisian. Secara amnya, perisian yang boleh berjalan pada berbilang platform dipanggil perisian merentas platform.
Memproses program sumber bahasa peringkat tinggi ke dalam program sasaran
Perisian sistem yang boleh memproses program sumber bahasa peringkat tinggi menjadi program sasaran ialah " Program penyusun".
Penyusun, atur cara menyusun, juga dipanggil pengkompil, merujuk kepada atur cara terjemahan yang menterjemahkan atur cara sumber yang ditulis dalam bahasa pengaturcaraan peringkat tinggi ke dalam atur cara sasaran yang setara dalam format bahasa mesin. Penyusun ialah program terjemahan yang dilaksanakan menggunakan pendekatan pelaksanaan generatif. Ia memerlukan program sumber yang ditulis dalam bahasa pengaturcaraan peringkat tinggi sebagai input, dan program sasaran yang dinyatakan dalam bahasa himpunan atau bahasa mesin sebagai output. Program sasaran yang disusun biasanya juga melalui peringkat berjalan untuk berjalan dengan sokongan program berjalan, memproses data awal, dan mengira hasil pengiraan yang diperlukan.
Pengkompil mesti menganalisis atur cara sumber dan kemudian mensintesiskannya ke dalam atur cara sasaran. Pertama, semak ketepatan program sumber dan menguraikannya kepada beberapa komponen asas, kedua, wujudkan bahagian program sasaran yang sepadan berdasarkan komponen asas ini. Untuk menyelesaikan tugasan ini, pengkompil mesti mencipta beberapa jadual semasa fasa analisis dan mengubah atur cara sumber kepada bentuk bahasa perantaraan supaya ia boleh dirujuk dan diproses dengan mudah semasa analisis dan sintesis.
Ciri-ciri pengkompil:
Pengkompil mesti menganalisis atur cara sumber dan kemudian mensintesiskannya ke dalam program sasaran. Pertama, semak ketepatan program sumber dan menguraikannya kepada beberapa komponen asas, kedua, wujudkan bahagian program sasaran yang sepadan berdasarkan komponen asas ini. Untuk menyelesaikan tugasan ini, pengkompil mesti mencipta beberapa jadual semasa fasa analisis dan mengubah atur cara sumber kepada bentuk bahasa perantaraan supaya ia boleh dirujuk dan diproses dengan mudah semasa analisis dan sintesis.
Struktur data utama yang digunakan dalam analisis dan sintesis struktur data, termasuk jadual simbol, jadual malar dan atur cara bahasa perantaraan. Jadual simbol terdiri daripada pengecam yang digunakan dalam program sumber bersama-sama dengan atributnya, yang termasuk jenis (seperti pembolehubah, tatasusunan, struktur, fungsi, prosedur, dll.), jenis (seperti integer, jenis sebenar, rentetan, jenis kompleks, label) dsb.), dan maklumat lain yang diperlukan oleh program sasaran. Jadual pemalar terdiri daripada pemalar yang digunakan dalam program sumber, termasuk perwakilan mesin bagi pemalar, dan alamat program sasaran yang diberikan kepada mereka. Program bahasa perantaraan ialah bentuk perantaraan program yang diperkenalkan sebelum menterjemah program sumber ke dalam program sasaran Pilihan perwakilannya bergantung pada cara pengkompil akan menggunakan dan memprosesnya kemudian. Bentuk bahasa perantaraan yang biasa digunakan termasuk perwakilan Poland, tiga kali ganda, empat kali ganda dan tiga kali ganda tidak langsung.
Analisis sebahagian daripada program sumber dicapai melalui tiga langkah: analisis leksikal, analisis sintaksis dan analisis semantik. Analisis leksikal dilengkapkan dengan program analisis leksikal (juga dipanggil pengimbas), yang tugasnya adalah untuk mengenal pasti perkataan (iaitu pengecam, pemalar, perkataan terpelihara, dan pelbagai operator, tanda baca, dll.), mencipta jadual simbol dan jadual tetap, dan convert Program sumber ditukar kepada bentuk dalaman yang mudah dianalisis dan diproses oleh pengkompil. Penganalisis sintaks ialah bahagian teras pengkompil Tugas utamanya adalah untuk memeriksa sama ada program sumber adalah tatabahasa mengikut peraturan tatabahasa bahasa. Jika ia tidak gramatis, mesej ralat sintaks akan dikeluarkan; jika ia adalah tatabahasa, struktur tatabahasa program sumber akan terurai dan program dalaman dalam bentuk bahasa perantaraan akan dibina. Tujuan analisis tatabahasa adalah untuk memahami bagaimana perkataan membentuk ayat dan bagaimana pernyataan membentuk atur cara. Program analisis semantik selanjutnya menyemak ketepatan semantik struktur program undang-undang Tujuannya adalah untuk memastikan penggunaan pengecam dan pemalar yang betul, mengumpul dan menyimpan maklumat yang diperlukan ke dalam jadual simbol atau program bahasa perantaraan, dan melaksanakan pemprosesan semantik yang sepadan.
Proses kerja penyusun
Penyusun juga dipanggil sistem penyusunan Ia ialah atur cara pemprosesan bahasa yang menterjemahkan atur cara sumber berorientasikan proses yang ditulis dalam bahasa tinggi. bahasa peringkat ke dalam program sasaran. Proses pengkompil untuk menterjemah program sumber kepada program sasaran dibahagikan kepada lima peringkat: analisis sintaks perantaraan; Ia terutamanya menjalankan analisis leksikal dan analisis sintaks, juga dikenali sebagai analisis program sumber Semasa proses analisis, ralat tatabahasa ditemui dan maklumat segera diberikan.
(1) Analisis leksikal
Tugas analisis leksikal ialah memproses perkataan yang terdiri daripada aksara, mengimbas aksara program sumber mengikut aksara dari kiri ke kanan, dan menjana simbol perkataan satu demi satu , mengubah atur cara sumber yang merupakan rentetan kepada atur cara perantaraan yang merupakan rentetan simbol perkataan. Program yang melakukan analisis leksikal dipanggil lexer atau pengimbas.
Simbol perkataan dalam program sumber dianalisis oleh pengimbas dan secara amnya menjana formula binari: kategori perkataan; Kategori perkataan biasanya dikodkan dengan integer Jika kategori mengandungi hanya satu simbol perkataan, maka untuk simbol perkataan ini, pengekodan kategori mewakili nilainya sendiri. Jika kategori mengandungi banyak simbol perkataan, maka bagi setiap simbol perkataannya, sebagai tambahan kepada kod kategori, nilainya sendiri juga perlu diberikan.
Penganalisis leksikal biasanya dibina dalam dua cara: pembinaan manual dan penjanaan automatik. Pembinaan manual boleh berfungsi menggunakan gambar rajah keadaan, penjanaan automatik boleh dilaksanakan menggunakan automata terhingga deterministik.
(2) Analisis sintaks
Penganalisis sintaks pengkompil mengambil simbol perkataan sebagai input, menganalisis sama ada rentetan simbol perkataan membentuk unit tatabahasa yang mematuhi peraturan tatabahasa, seperti ungkapan, tugasan, gelung, dsb., dan akhirnya menyemak sama ada ia membentuk program yang memenuhi keperluan, mengikut bahasa Analisis peraturan tatabahasa yang digunakan menyemak sama ada setiap pernyataan mempunyai struktur logik yang betul, dan program itu adalah unit tatabahasa yang terakhir. Peraturan tatabahasa penyusun boleh dicirikan oleh tatabahasa tanpa konteks.
Terdapat dua kaedah analisis sintaks: analisis atas ke bawah dan analisis bawah ke atas. Atas ke bawah bermaksud bermula daripada simbol permulaan tatabahasa, deduksi ke bawah, dan deduksi ayat. Kaedah analisis bawah ke atas menggunakan kaedah pengurangan anjakan masuk Idea asas ialah: gunakan simbol keluar pertama masuk terakhir untuk mengalihkan simbol masukan ke dalam tindanan satu persatu apabila bahagian atas tindanan pengeluaran tertentu Apabila ungkapan calon ditemui, bahagian di bahagian atas tindanan dikurangkan kepada simbol jiran kiri pengeluaran.
(3) Penjanaan kod perantaraan
Kod perantaraan ialah perwakilan dalaman program sumber, atau bahasa perantaraan. Fungsi kod perantaraan adalah untuk menjadikan struktur program yang disusun secara logik lebih mudah dan jelas, terutamanya untuk menjadikan pengoptimuman kod sasaran lebih mudah untuk dilaksanakan. Kod perantaraan ialah program bahasa perantaraan, dan kerumitan bahasa perantaraan adalah antara bahasa program sumber dan bahasa mesin. Terdapat banyak bentuk bahasa perantaraan, yang biasa adalah notasi Poland terbalik, tetragram, bentuk ternary dan pokok.
(4) Pengoptimuman kod
Pengoptimuman kod merujuk kepada melakukan pelbagai transformasi setara pada program supaya kod sasaran yang lebih berkesan boleh dijana bermula daripada program yang diubah. Persamaan yang dipanggil bermakna bahawa hasil larian program tidak diubah. Apa yang dipanggil berkesan terutamanya merujuk kepada masa berjalan pendek kod sasaran dan ruang penyimpanan kecil yang diduduki. Transformasi ini dipanggil pengoptimuman.
Terdapat dua jenis pengoptimuman: satu adalah untuk mengoptimumkan kod perantaraan selepas analisis sintaks, yang tidak bergantung pada komputer tertentu adalah untuk mengoptimumkan apabila menjana kod sasaran, yang sebahagian besarnya Bergantung pada komputer tertentu. Untuk jenis pengoptimuman dahulu, ia boleh dibahagikan kepada tiga peringkat berbeza: pengoptimuman tempatan, pengoptimuman gelung dan pengoptimuman global mengikut skop program yang terlibat.
(5) Penjanaan kod sasaran
Penjanaan kod sasaran ialah peringkat terakhir penyusunan. Penjana kod sasaran menukar kod perantaraan yang dihuraikan atau dioptimumkan kepada kod sasaran. Terdapat tiga bentuk kod sasaran:
① Kod bahasa mesin yang boleh dilaksanakan serta-merta, semua alamat dipindahkan
② Modul bahasa mesin yang akan dipasang, yang dimuatkan oleh sambungan apabila; pelaksanaan diperlukan Program menghubungkannya dengan atur cara berjalan tertentu dan menukarkannya kepada kod bahasa mesin boleh laku;
Peringkat penjanaan kod sasaran harus mempertimbangkan tiga isu yang secara langsung mempengaruhi kelajuan kod sasaran: pertama, cara menjana kod sasaran yang lebih pendek, kedua, cara menggunakan sepenuhnya daftar dalam komputer dan mengurangkan masa kod sasaran mengakses unit storan kali ketiga ialah cara menggunakan sepenuhnya ciri-ciri sistem arahan komputer untuk meningkatkan kualiti kod sasaran.
Untuk lebih banyak pengetahuan berkaitan, sila lawati ruangan
Soalan LazimAtas ialah kandungan terperinci Apakah program yang ditulis dalam yang dipanggil program sumber?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!