Porting: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
Tidak ada ringkasan suntingan
Tag: VisualEditor Suntingan perangkat seluler Suntingan peramban seluler
Tidak ada ringkasan suntingan
Tag: Suntingan perangkat seluler Suntingan peramban seluler
 
(3 revisi perantara oleh 3 pengguna tidak ditampilkan)
Baris 1:
Dalam [[ilmu komputer]], '''''porting''''' atau '''pemortaan''' adalah proses untuk menyadur peranti lunak sehingga [[program komputer|tata olah tereksekusikan]] (''executable program'') dapat dibuat untuk lingkungan komputer yang berbeda dengan lingkungan asli rancangannya. Istilah ini juga digunakan untuk mengacu kepada perubahan terhadap peranti lunak/peranti keras untuk menjadikannyaagar dapat digunakan di lingkungan berbeda.
 
Peranti lunak bersifat [[Portabilitas perangkat lunak|mudah alih]] (''portable'') karena biaya memindahkannya ke [[platform komputasi|pelantar]] baru secara signifikan lebih murah daripada biaya penulisannya dari awal. Semakin rendah biaya pemortaan peranti lunak relatif terhadap biaya implementasinya, dikatakan akan semakin mudah alih.
Baris 22:
 
== Kompilator portaan ==
Alih-alih menerjemahkan langsung ke [[kode mesin]], [[kompiler|kompilator]] modern menerjemahkan ke [[Bytecode|kode perantara]] mesin independen untuk meningkatkan portabilitas kompilator 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 ''code generator'' (penghasil 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>
 
Penerjemah[[interpreter|Penafsir]] tidak terlalu rumit dan oleh karena itu lebih mudah untuk di-portdiporta daripada generatorpenghasil kode, karena tidak dapat melakukan pengoptimalan kode karena tampilan kode programnya terbatas (itu hanya melihat satu instruksi pada satu waktu, dan Anda memerlukan urutan untuk melakukan optimasi). Beberapa ''interpreter'' (penafsir) sangat mudah untuk di-portdiporta, karena mereka hanya membuat asumsi minimal tentang set instruksi dari perangkat keras yang mendasarinya. Hasilnya, mesin virtual bahkan lebih sederhana daripada ''CPU target''.<ref>{{harvnb|Richards|Whitby-Strevens|1984|p=133. §7.4 The bootstrapping process and INTCODE}} explains the role of the INTCODE interpreter.</ref>
 
Menulis sumber kompilator seluruhnya dalam bahasa pemrograman yang seharusnya diterjemahkan oleh kompilator, membuat pendekatan berikut, lebih dikenal sebagai ''[[Bootstrapping (kompiler)|compiler bootstrapping]]'', layak di mesin sasaran:
 
# Pemortaan penerjemahpenafair. Ini perlu dikodekan dalam [[Bahasa rakitan|kode rakitan]], menggunakan ''[[assembler]]'' yang sudah ada di sasaran.
# Sesuaikan sumber pembuatpenghasil kode (''code generator'') ke mesin baru.
# Eksekusi sumber yang disadurkan menggunakan penerjemah dengan sumber pembuatpenghasil kode sebagai masukan. Ini akan menghasilkan kode mesin untuk pembuatpenghasil kode.
 
Bagian yang sulit dari pengkodean rutinitas pengoptimalan dilakukan dengan menggunakan [[bahasa pemrograman tingkat tinggi|bahasa tingkat tinggi]] alih-alih bahasa rakitan sasaran.
 
Menurut para perancang bahasa [[BCPL]], kode yang ditafsirkan (dalam kasus BCPL) lebih ringkas daripada kode mesin; biasanya dengan faktor dua banding satu. Namun kode yang ditafsirkan berjalan sekitar sepuluh kali lebih lambat daripada kode yang dikompilasi pada mesin yang sama.<ref>{{harvnb|Richards|Whitby-Strevens|1984|p=136. §7.4.3 Example}} gives an example translation of a BCPL program into INTCODE for the interpreter.</ref>
Baris 48:
{{Reflist|2}}
 
== RefrensiReferensi ==
 
* {{cite book|last1=Richards|first1=Martin|last2=Whitby-Strevens|first2=Colin|year=1984|title=BCPL, the language and its compiler|isbn=0-521-28681-6|author-link=Martin Richards (computer scientist)}}
* {{cite book|last=Tanenbaum|first=Andrew S.|year=1984|title=Structured computer organization|url=https://archive.org/details/structuredcomput0000tane_x2o7|isbn=0-13-854605-3|author-link=Andrew S. Tanenbaum}}
 
[[Kategori:Kode sumber]]