Jenis bahasa komputer termasuk: 1. Bahasa peringkat tinggi dan bahasa peringkat rendah; 2. Jenis dinamik dan jenis statik; .
Tiga kategori utama bahasa komputer (dibahagikan mengikut tahap)
Kaitan dengan perkakasan secara beransur-ansur berkurangan
Terdapat banyak jenis bahasa komputer mengikut fungsi dan kaedah pelaksanaan yang berbeza, ia boleh dibahagikan secara kasar kepada 3 kategori utama: bahasa mesin Bahasa perhimpunan dan bahasa peringkat tinggi.
1. Bahasa mesin, bahasa yang boleh dikenali secara langsung oleh komputer tanpa terjemahan dipanggil bahasa mesin (juga dikenali sebagai bahasa kod binari).
2. Bahasa himpunan menggunakan huruf Inggeris atau rentetan simbol untuk menggantikan bahasa mesin yang sukar difahami dan diingati mengikut perhubungan yang sepadan lebih mudah dibaca dan difahami bahasa.
3. Bahasa peringkat tinggi bukan bahasa tetapi nama kolektif untuk kelas bahasa Ia lebih dekat dengan bahasa yang digunakan oleh manusia daripada bahasa himpunan dan mudah difahami, diingati dan digunakan. Oleh kerana bahasa peringkat tinggi tidak ada kaitan dengan seni bina komputer dan set arahan, ia mempunyai kemudahalihan yang baik. Bahasa peringkat tinggi digunakan secara meluas untuk pembangunan program, termasuk C, C+, Java, VB, C#, Python, Ruby, dll.
Beberapa klasifikasi kaedah pengelasan biasa
1 Bahasa peringkat tinggi dan bahasa peringkat rendah
Bahasa peringkat rendah biasa ialah: kod mesin, bahasa himpunan
Bahasa peringkat tinggi biasa seperti itu. sebagai: c, c++, java, python, PHP, Ruby, go, kotlin, swift.
Kod mesin, kod sekunder yang boleh dikenali secara langsung oleh komputer Tidak kira betapa canggihnya bahasa, ia mesti ditukar menjadi fail sekunder untuk dikenali dan dijalankan oleh komputer.
Perhimpunan, menggunakan mnemonik untuk menggantikan opcode arahan mesin, menggunakan simbol alamat Simbol atau label untuk menggantikan alamat arahan atau operan, terdapat set arahan yang berbeza dalam peranti yang berbeza
Bahasa peringkat tinggi, untuk menjimatkan pengaturcaraan Ia menghapuskan butiran operasi yang tidak perlu, menjimatkan jumlah kod, sangat boleh dibaca dan diselenggara, dan lebih mesra pengguna.
Perbezaan antara bahasa peringkat tinggi dan bahasa peringkat rendah: Kebanyakan bahasa peringkat tinggi tidak boleh berinteraksi secara langsung dengan perkakasan, yang menjadikan program relatif berjalan lebih perlahan Secara ringkasnya, bahasa yang lebih dekat dengan manusia alam lebih maju.
Enam proses kompilasi bahasa peringkat tinggi
Kompilasi ialah proses menterjemah program sumber bahasa peringkat tinggi kepada program sasaran.
Seluruh proses secara amnya boleh dibahagikan kepada enam peringkat: analisis leksikal, analisis sintaksis, analisis semantik, penjanaan kod perantaraan, pengoptimuman kod dan penjanaan kod sasaran.
Analisis leksikal, analisis leksikal ialah peringkat pertama Tugas peringkat ini ialah membaca aksara program sumber mengikut aksara dari kiri ke kanan, mengimbas dan menguraikan aliran aksara yang membentuk program sumber, dan dengan itu mengenal pasti setiap aksara. perkataan.
Analisis tatabahasa, tugas analisis tatabahasa adalah untuk menguraikan atur cara perkataan kepada frasa gramatis berdasarkan analisis leksikal.
Analisis semantik, analisis semantik adalah untuk menyemak atur cara sumber untuk ralat semantik dan mengumpul maklumat jenis untuk peringkat penjanaan kod.
Penjanaan kod perantaraan, selepas melaksanakan peringkat analisis sintaks yang dinyatakan di atas dan kerja lain, sesetengah penyusun mengubah program sumber menjadi perwakilan dalaman ini dipanggil bahasa perantaraan atau kod perantaraan. Peringkat penjanaan kod perantaraan seterusnya menukar program sumber kepada perwakilan dalaman berdasarkan sintaks dan analisis semantik Ia biasanya mudah untuk menjana dan menterjemah ke dalam kod sasaran, tetapi tidak semua bahasa mesti melalui langkah ini.
Pengoptimuman kod, tugas peringkat ini adalah untuk mengubah atau mengubah kod perantaraan yang dijana pada peringkat sebelumnya, dengan tujuan menjadikan kod sasaran yang dihasilkan lebih cekap. Dalam fasa pengoptimuman kod, tidak perlu mengubah atau mengubah kod perantaraan yang dijana dalam fasa sebelumnya untuk menjimatkan lebih banyak masa dan ruang semasa menjana kod sasaran.
Penjanaan kod sasaran, tugas peringkat ini adalah untuk mengubah kod perantaraan kepada kod arahan mutlak atau kod arahan yang boleh dipindahkan atau kod arahan pemasangan pada mesin tertentu.
2. Jenis dinamik dan jenis statik
Bahasa dinamik merujuk kepada menentukan jenis data untuk pembolehubah semasa menjalankan program, manakala bahasa jenis statik adalah sebaliknya Adalah perlu untuk menentukan jenis pembolehubah Bahasa ini mempunyai cc++java
3 Jenis paksa dan jenis lemah
Kita tahu bahawa pembolehubah dalam bahasa C hanya boleh ditakrifkan sebagai satu jenis, seperti jenis apungan, maka ia hanya boleh menjadi jenis apungan Jenis int tidak boleh ditetapkan tanpa penukaran Ini adalah penjelmaan khusus jenis wajib.
Dalam python, pembolehubah dalam python boleh disalin sewenang-wenangnya tanpa sempadan jenis. Ini adalah penaipan yang lemah
Taip paksa lebih ketat dan kurang terdedah kepada ralat, tetapi bahasa yang ditaip lemah lebih elegan dan selesa untuk ditulis
4 Disusun dan ditafsirkan separuh disusun dan separuh ditafsirkan
Untuk program sumber, bahasa yang dikompilasi berada dalam program pelaksanaan Fail sumber akan ditukar menjadi kod mesin pada satu masa, manakala bahasa yang ditafsirkan disusun dan ditafsir pada masa yang sama
Bahasa yang dikompilasi tidak dapat dipisahkan daripada jurubahasa, yang juga menyebabkan bahasa yang ditafsirkan menjadi lebih perlahan pada masa jalanan Bahasa yang ditafsirkan lebih mudah untuk dipindahkan selagi ada jurubahasa, manakala bahasa yang dikompilasi perlu disusun untuk. sistem yang berbeza. Kerjanya membosankan dan perlahan apabila menyahpepijat program
Bahasa yang disusun boleh didapati dalam cc++, dll.
Bahasa yang ditafsirkan boleh didapati dalam python, JavaScript, Perlshell, dll.
Dan java adalah bahasa separa tersusun dan separa tafsiran Java akan menukar fail sumber kepada Bytecode, iaitu, fail .class, ditukar kepada fail binari apabila program dijalankan. Ia agak berbeza daripada .net dalam C# Kod sasaran .net yang disusun oleh C# adalah hampir dengan kemudahalihan fail binari dan tidak sebagus java ialah "kompil sekali dan laksanakan di mana-mana". dan menyusun di mana-mana".
5. Berorientasikan objek dan berorientasikan proses
Berorientasikan proses ialah tentang menentukan cara menurap jalan untuk mencapai penghujung, manakala berorientasikan objek ialah menggunakan imej dengan fungsi tertentu untuk melakukannya.
C++ ialah bahasa Java berorientasikan objek separa dengan enkapsulasi, bahasa C berorientasikan objek sepenuhnya dan bahasa berorientasikan proses.
Terdapat juga jenis fungsi di sini
Konsep jenis dinamik, statik dan kuat dan lemah paradigma bahasa pengaturcaraan - Angin jernih dan hati berterbangan - Blog Park Konsep jenis dinamik, statik dan kuat dan lemah paradigma bahasa pengaturcaraan sering ditemui semasa mempelajari bahasa Beberapa konsep seperti Java ialah bahasa berorientasikan objek, C ialah bahasa berorientasikan proses, Lisp ialah bahasa pengaturcaraan yang berfungsi, Scala ialah bahasa statik Apa maksudnya https: //www.cnblogs.com/binbinbin/articles/14012424.html
6. Bezakan antara jenis yang disusun dan ditafsirkan
1 Program yang disusun disusun secara keseluruhan untuk membentuk kod sasaran dan kemudian dilaksanakan sekaligus.
Jurubahasa ditafsir dan dilaksanakan pada masa yang sama. Penjelasan ayat dan kemudian menyerahkannya ke komputer untuk pelaksanaan tidak membentuk program sasaran. Sama seperti "tafsiran" dalam terjemahan bahasa asing, ia tidak menghasilkan teks terjemahan.
2. Penyusunan bermaksud kecuali kompilasi pertama, ia sentiasa kod sasaran + pelaksanaan mesin = hasil
Dan jurubahasa sentiasa kod + jurubahasa + pelaksanaan mesin = hasil
Secara terperinci, pengkompil menukar setiap bahagian program sumber Setiap pernyataan disusun ke dalam bahasa mesin dan disimpan ke dalam fail binari Dengan cara ini, komputer boleh terus menjalankan program dalam bahasa mesin pada masa jalan, yang sangat pantas.
Jurubahasa hanya mentafsir atur cara satu persatu ke dalam bahasa mesin untuk dilaksanakan oleh komputer, jadi kelajuan larian tidak sepantas atur cara yang disusun. Ini kerana komputer tidak dapat mengecam dan melaksanakan kenyataan yang kita tulis secara langsung, ia hanya boleh mengenali bahasa mesin (dalam bentuk binari)
7 Sebab pengelasan mengikut tahap
1 Kod perantaraan
Penjanaan kod perantaraan proses kod. Apa yang dipanggil "kod perantaraan" ialah sistem tatatanda dengan struktur ringkas dan makna yang jelas Kerumitan sistem tatatanda ini adalah antara bahasa program sumber dan bahasa mesin, dan ia mudah untuk menterjemahkannya ke dalam kod sasaran. Selain itu, pengoptimuman bebas mesin boleh dilakukan pada tahap kod pertengahan.
Kod pemasangan ialah kod sasaran dan kod perantaraan secara teorinya bebas mesin.
Dalam prinsip kompilasi, pengetahuan ternary, quaternary, reverse Poland, dsb. mewakili kod perantaraan.
2. Kod objek
Kod objek merujuk kepada kod yang dihasilkan oleh pengkompil atau penghimpun dalam sains komputer selepas memproses kod sumber ia biasanya terdiri daripada kod mesin atau kod yang hampir dengan bahasa mesin. Fail objek ialah fail komputer yang menyimpan kod objek Ia sering dipanggil fail binari. Fail objek mengandungi kod mesin; data yang boleh dilaksanakan secara langsung oleh pemproses pusat komputer dan digunakan oleh kod pada masa jalan, seperti maklumat penempatan semula seperti simbol program untuk memautkan atau menyahpepijat nama pembolehubah dan fungsi, dan maklumat penyahpepijatan yang lain; Fail objek ialah produk perantaraan proses penjanaan fail program daripada fail kod sumber Pemaut menjana fail boleh laku atau fail perpustakaan dengan memautkan fail objek bersama-sama. Satu-satunya elemen dalam fail objek ialah kod mesin Contohnya, fail objek untuk sistem terbenam mungkin mengandungi kod mesin sahaja.
Kod sasaran biasanya mengambil tiga bentuk: bahasa himpunan bahasa mesin dan modul bahasa mesin untuk dipasang.
Isu yang harus dipertimbangkan semasa menjana kod sasaran
(1) Bagaimana untuk menjadikan kod sasaran yang dijana lebih pendek
(2) Cara menggunakan sepenuhnya daftar untuk mengurangkan bilangan akses memori
(3) Bagaimana untuk menggunakan sepenuhnya ciri-ciri sistem.
Dalam bahasa himpunan, daftar AX, IR daftar arahan, dsb. selalunya digunakan secara langsung Parameter daftar yang berbeza adalah berbeza, jadi bahasa himpunan lebih kepada bahasa perkakasan.
Atas ialah kandungan terperinci Apakah jenis bahasa komputer yang ada?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!