

Apakah perisian sistem yang boleh memproses program sumber bahasa peringkat tinggi ke dalam program sasaran?
Perisian sistem yang memproses program sumber bahasa peringkat tinggi menjadi program sasaran ialah "pengkompil". Pengkompil merujuk kepada program terjemahan yang menterjemah program sumber yang ditulis dalam bahasa pengaturcaraan peringkat tinggi kepada program sasaran yang setara dalam format bahasa mesin. Proses kerja penyusun untuk menterjemah program sumber kepada program sasaran dibahagikan kepada lima peringkat: analisis sintaks perantaraan; Analisis, jika terdapat kesalahan tatabahasa semasa analisis, mesej segera akan diberikan.
Persekitaran pengendalian tutorial ini: sistem Windows 7, komputer Dell G3.
Perisian sistem yang boleh memproses atur cara sumber yang ditulis dalam bahasa peringkat tinggi ke dalam atur cara sasaran ialah "pengkompil".
Pengkompil, menyusun atur cara, juga dipanggil pengkompil, merujuk kepada program terjemahan yang menterjemahkan atur cara sumber yang ditulis dalam bahasa pengaturcaraan peringkat tinggi ke dalam program sasaran format bahasa mesin yang setara . 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 pengkompil
Pengkompil juga dipanggil sistem penyusunan, yang menterjemahkan atur cara sumber berorientasikan proses yang ditulis dalam bahasa peringkat ke dalam pemproses bahasa 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, Menghasilkan perkataan simbol satu demi satu, dan mengubah atur cara sumber sebagai rentetan menjadi atur cara perantaraan rentetan simbol perkataan. Program yang melakukan analisis leksikal dipanggil lexer atau pengimbas.
Simbol perkataan dalam program sumber dianalisis oleh pengimbas dan secara amnya menghasilkan 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 sintaksis
Penganalisis sintaks pengkompil mengambil simbol perkataan sebagai input dan menganalisis sama ada rentetan simbol perkataan membentuk unit tatabahasa yang mematuhi tatabahasa peraturan, seperti ungkapan Rumus, tugasan, gelung, dsb., dan akhirnya lihat jika ia membentuk program yang memenuhi keperluan Analisis dan semak sama ada setiap pernyataan mempunyai struktur logik yang betul mengikut peraturan tatabahasa yang digunakan dalam bahasa ialah unit tatabahasa akhir. 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 atur cara supaya bermula daripada program yang diubah, matlamat yang lebih berkesan boleh dijana kod. 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 perisian sistem yang boleh memproses program sumber bahasa peringkat tinggi ke dalam program sasaran?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



机器语言的特点:难学、难懂、难理解;无通用性;需要人为分配内存;运行速度最快。汇编语言的特点:程序的执行效率非常高、占用存储空间小、运行速度快;缺乏通用性,程序不易移植。高级语言的特点:容易、有一定通用性、计算机不能直接识别和执行。

能够把高级语言编写的源程序翻译成目标程序的系统软件是“编译程序”。编译程序属于采用生成性实现途径实现的翻译程序;它以高级程序设计语言书写的源程序作为输入,而以汇编语言或机器语言表示的目标程序作为输出。

Bahasa himpunan bukan bahasa peringkat tinggi; ia adalah bahasa peringkat rendah seperti bahasa mesin. Perbezaan antara bahasa himpunan dan bahasa aras tinggi: 1. Kecekapan pengaturcaraan bahasa himpunan tidak tinggi, manakala kecekapan pengaturcaraan bahasa peringkat tinggi adalah lebih tinggi daripada bahasa himpunan 2. Kebolehbacaan bahasa peringkat tinggi adalah lebih tinggi daripada bahasa himpunan; 3. Bahasa himpunan ialah bahasa Mesin, manakala bahasa peringkat tinggi dipermudahkan dan dekat dengan bahasa semula jadi manusia.

Bahasa mesin bukan bahasa peringkat tinggi Ia adalah bahasa peringkat rendah yang digunakan untuk perkakasan komputer Ia berinteraksi secara langsung dengan perkakasan asas komputer menggunakan pengekodan binari untuk mewakili arahan dan data atau fungsi perkakasan komputer , Bahasa peringkat tinggi ialah bahasa pengaturcaraan yang lebih dekat dengan bahasa manusia, menyediakan keupayaan abstrak yang lebih tinggi dan kecekapan pembangunan Bahasa mesin dan bahasa peringkat tinggi memainkan peranan yang berbeza dalam pengaturcaraan, masing-masing mempunyai kelebihan dan senario yang berkenaan.

Kuai Technology melaporkan pada 17 November bahawa pagi ini, Shenzhen Kaihong mengumumkan bahawa robot humanoid KaihongOS pertama berdasarkan sumber terbuka Hongmeng, dibangunkan bersama olehnya dan Leju Robot, dikeluarkan secara rasmi. Menurut pengenalan rasmi, ini adalah sistem pengajaran pintar serba guna yang dilengkapi dengan KaihongOS dan menggunakan robot sebagai pembawa, meliputi pelbagai senario seperti industri dan perkhidmatan. Robot ini dilengkapi dengan sensor kadar jantung oksigen darah, sensor suhu dan kelembapan, sensor suhu inframerah, sensor aruhan badan manusia, NFC, paparan OLED dan lampu LED. Melalui pelbagai penderiaan bersama, ia boleh melaksanakan keputusan secara bijak Pada masa yang sama, robot juga boleh disambungkan dengan telefon mudah alih, tablet, komputer dan peranti lain dalam masa nyata, menyingkirkan kaedah sambungan abah-abah wayar tradisional dan meningkatkan kecekapan pengajaran. Pada masa yang sama, robot ini juga mempunyai 17

C语言规定,在一个源程序中,main函数的位置:可以是任意的;在执行一个c语言编写的程序时,main函数就相当于是执行程序的入口;不论main函数在整个过程中的位置如何,一个C程序总是从mam函数开始执行的。

Analisis ciri bahasa Go: Adakah ia bahasa peringkat tinggi? Bahasa Go ialah bahasa pengaturcaraan bertaip kuat secara statik yang dibangunkan oleh Google Ia direka bentuk untuk menjadi mudah, mudah dibaca dan ditulis serta mempunyai ciri serentak yang cekap. Jadi, mengikut takrifan bahasa peringkat tinggi, mari kita analisa sama ada bahasa Go ialah bahasa peringkat tinggi. Definisi bahasa peringkat tinggi Bahasa peringkat tinggi ialah bahasa pengaturcaraan yang lebih dekat dengan bahasa manusia berbanding bahasa mesin. Ia mempunyai ciri-ciri sintaks ringkas, mudah dibaca dan ditulis, dan tahap abstraksi yang tinggi, yang membolehkan pengaturcara lebih fokus pada menyelesaikan masalah itu sendiri.

Program 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.