Porting: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Need more vertification
Baris 16:
 
Standar internasional, seperti yang ditetapkan oleh [[International Organization for Standardization|ISO]], sangat memfasilitasi porting dengan menentukan detail lingkungan komputasi dengan cara yang membantu mengurangi perbedaan antara berbagai [[Platform komputasi|platform]] yang sesuai standar. Menulis perangkat lunak yang tetap dalam batas-batas yang ditentukan oleh standar ini merupakan upaya praktis meskipun tidak sepele. Porting program semacam itu antara dua platform yang sesuai standar (seperti [[POSIX|POSIX.1]]) hanya masalah memuat kode sumber dan [[Compiler|mengompilasinya kembali]] di platform baru. Namun, praktisi sering menemukan bahwa berbagai koreksi kecil diperlukan, karena perbedaan platform yang tidak kentara. Sebagian besar standar mengalami "area abu-abu" di mana perbedaan interpretasi standar menyebabkan variasi kecil dari platform ke platform.
 
== Kompiler porting ==
Alih-alih menerjemahkan langsung ke [[kode mesin]], [[kompiler]] modern menerjemahkan ke [[Bytecode|kode perantara]] mesin independen untuk meningkatkan portabilitas kompiler dan meminimalkan upaya desain. Bahasa perantara mendefinisikan ''[[mesin virtual]]'' yang dapat menjalankan semua program yang ditulis dalam [[Intermediate representation|bahasa perantara]] (sebuah mesin yang ditentukan oleh bahasanya dan sebaliknya).<ref name="Machinelanguage">{{harvnb|Tanenbaum|1984|p=3. §1.1 Languages,Levels, and Virtual Machines}} describes the terms and their relations.</ref> Instruksi kode perantara diterjemahkan ke dalam urutan kode mesin yang setara oleh sebuah ''generator'' ''kode'' untuk membuat [[Executable|kode yang dapat dieksekusi]]. Dimungkinkan juga untuk melewati pembuatan kode mesin dengan benar-benar menerapkan [[interpreter]] atau [[Just-in-time compilation|JIT]] untuk mesin virtual.<ref>{{harvnb|Tanenbaum|1984|p=2. Ch. 1 Introduction}} explains translation and interpretation.</ref>
 
== Porting permainan video ==