Perbezaan antara pengoptimuman kod bergantung dan mesin bebas mesin

Perbezaan antara pengoptimuman kod bergantung dan mesin bebas mesin

Perbezaan utama - mesin Bergantung vs Mesin Pengoptimuman kod bebas
 

Program komputer adalah set arahan yang diberikan kepada perkakasan, untuk melaksanakan tugas. Program-program ini kebanyakannya ditulis dalam bahasa peringkat tinggi, dan komputer tidak memahami bahasa itu. Oleh itu, pengkompil digunakan untuk menukar arahan tersebut ke dalam kod mesin atau kod sasaran. Ia melalui beberapa fasa untuk membina kod sasaran. Pengoptimuman kod adalah salah satu daripada mereka. Terdapat dua teknik pengoptimuman seperti, bergantung kepada mesin dan pengoptimuman kod bebas mesin. The Perbezaan utama antara pengoptimuman kod bergantung dan mesin bebas mesin ialah Pengoptimuman bergantung mesin digunakan untuk kod objek manakala pengoptimuman kod bebas mesin digunakan untuk kod perantaraan.

Kandungan

1. Gambaran Keseluruhan dan Perbezaan Utama
2. Apakah pengoptimuman kod bergantung mesin
3. Apakah pengoptimuman kod bebas mesin
4. Persamaan antara mesin bergantung dan mesin pengoptimuman kod bebas mesin
5. Perbandingan sampingan - Mesin bergantung vs mesin pengoptimuman kod bebas dalam bentuk jadual
6. Ringkasan

Apakah pengoptimuman kod bergantung mesin?

Apabila menukar kod sumber ke kod objek atau kod sasaran, pengkompil melalui beberapa fasa. Pertama, kod sumber diberikan kepada penganalisis leksikal yang menghasilkan token. Kemudian, output diberikan kepada penganalisis sintaks yang menyiasat sama ada token yang dihasilkan berada dalam urutan logik. Output itu diberikan kepada penganalisis semantik. Anggapkan bahawa terdapat sekeping kod sebagai p = q + r;

Di sini, p, q adalah bilangan bulat, tetapi r adalah terapung. Menggunakan penganalisis semantik, pemboleh ubah integer C ditukar kepada apungan. Oleh itu, ia menganalisis semantik. Output penganalisis semantik pergi ke penjana kod pertengahan. Ia mengembalikan kod perantaraan yang kemudiannya pergi ke pengoptimasi kod. Pengoptimuman Kod adalah proses menghapuskan pernyataan program yang tidak penting tanpa mengubah makna kod sumber sebenar. Ia bukan wajib dioptimumkan tetapi, ia dapat meningkatkan masa berjalan kod sasaran. Output pengoptimasi kod diberikan kepada penjana kod, dan akhirnya, kod sasaran dibina.

Rajah 01: Fasa pengkompil

Dalam pengoptimuman kod bergantung mesin, pengoptimuman digunakan untuk kod sumber. Peruntukan jumlah sumber yang mencukupi dapat meningkatkan pelaksanaan program dalam pengoptimuman ini.

Apakah pengoptimuman kod bebas mesin?

Apabila pengoptimuman dilakukan pada kod perantaraan, ia dipanggil pengoptimuman kod bebas mesin. Terdapat teknik yang berbeza untuk mencapai pengoptimuman kod bebas mesin. Mereka digambarkan menggunakan contoh berikut.

Baca Bellow Lines of Code.

untuk (j = 0; j<10; j ++)

b = x+2;

a [j] = 5* j;

Menurut kod di atas, b = x+2 dikira lagi dan lagi dalam setiap lelaran. Sekali b dikira, ia tidak berubah. Jadi, garis ini boleh diletakkan di luar gelung seperti berikut.

b = x+2;

untuk (j = 0; j< 10; j++)

a [j] = 5 * j;

Ini dipanggil pergerakan kod.

Baca Bellow Lines of Code.

J = 5;

jika (j == 10)

A = B+20;

Menurut kod di atas, 'jika blok' tidak akan dilaksanakan kerana nilai j tidak akan sama dengan 10. Ia sudah dimulakan dengan nilai 5. Oleh itu, ini jika blok dapat dikeluarkan. Teknik ini adalah penghapusan kod mati.

Kaedah lain adalah pengurangan kekuatan. Operasi aritmetik seperti pendaraban memerlukan lebih banyak ingatan, masa, dan kitaran CPU. Ekspresi mahal ini boleh digantikan dengan ekspresi murah seperti B = A * 2; atau boleh digantikan dengan tambahan, b = a + a;

Rujuk kod di bawah.

untuk (j = 1; j <= 5; j ++)

nilai = J * 5;

Bukannya pendaraban, kod boleh diubah seperti berikut.

int temp = 5;

untuk (j = 1; j<=5; j++)

temp = temp + 5;

nilai = temp;

Adalah mungkin untuk menilai ungkapan yang menjadi pemalar semasa runtime. Ia dikenali sebagai lipatan berterusan. Boleh dinyatakan seperti b [j+1] = c [j+1];

Sebaliknya, ia boleh diubah seperti berikut.

n = j +1;

b [n] = c [n];

Boleh ada gelung seperti berikut.

untuk (j = 0; j<5; j++)

printf ("a \ n");

untuk (j = 0; j <5; j++)

printf ("b \ n");

Mencetak A dan B, kedua -duanya mempunyai bilangan lelaran yang sama. Kedua -duanya boleh digabungkan dengan satu untuk gelung seperti berikut.

untuk (j = 0; j <5; j++)

printf ("a \ n");

printf ("b \ n");

Satu lagi teknik penting ialah Penghapusan ungkapan sub biasa. Ia adalah untuk menggantikan ungkapan yang sama dengan pemboleh ubah tunggal untuk melakukan pengiraan. Rujuk kod bawah.

a = b*c + k;

d = b* c + m;

Kod ini boleh ditukar seperti berikut.

temp = b*c;

a = temp + k;

d = temp + m;

Tidak dikehendaki mengira b*c berulang kali. Nilai berlipat ganda dapat disimpan dalam pembolehubah dan digunakan semula.

Apakah persamaan antara pengoptimuman kod bergantung dan mesin bebas mesin?

  • Kedua -duanya tergolong dalam pengoptimuman kod

Apakah perbezaan antara pengoptimuman kod bergantung dan mesin bebas mesin?

Pengoptimuman kod bebas mesin vs mesin 

Pengoptimuman kod bergantung mesin digunakan untuk kod objek. Pengoptimuman kod bebas mesin digunakan untuk kod perantaraan.
Penglibatan dengan perkakasan
Pengoptimuman bergantung mesin melibatkan daftar CPU dan rujukan memori mutlak.  Pengoptimuman kod bebas mesin tidak melibatkan daftar CPU atau rujukan memori mutlak.

Ringkasan -Mesin Pengoptimuman Kod Bebas Vs Mesin Bergantung 

Pengoptimuman kod terdiri daripada dua teknik pengoptimuman iaitu, pengoptimuman kod bergantung dan mesin bebas mesin. Perbezaan antara mesin bergantung dan mesin pengoptimuman kod bebas mesin adalah bahawa pengoptimuman bergantung mesin digunakan untuk kod objek sedangkan, pengoptimuman kod bebas mesin digunakan untuk kod perantaraan.

Muat turun versi PDF Mesin Bergantung Vs Mesin Pengoptimuman Kod Bebas Mesin

Anda boleh memuat turun versi PDF artikel ini dan menggunakannya untuk tujuan luar talian mengikut nota petikan. Sila muat turun versi pdf di sini perbezaan antara pengoptimuman kod bergantung dan mesin bebas mesin

Rujukan:

1."Reka bentuk pengkompil | Pengoptimuman kod."Geeksforgeeks. Terdapat di sini
2.Titik, tutorial. "Reka bentuk pengkompil - Pengoptimuman Kod."Www.TutorialSpoint.com, titik tutorial, 15 Ogos. 2017. Terdapat di sini  
3.Estudies4you. "Bahan belajar jntuh cse."Perbezaan antara pengoptimuman kod bergantung dan bebas mesin. Terdapat di sini  

Ihsan gambar:

1.'Compiler' oleh I, Surachit, (CC BY-SA 3.0) melalui Commons Wikimedia