Pemortaan: Perbedaan antara revisi
Konten dihapus Konten ditambahkan
still need veritification |
wikidata |
||
(25 revisi perantara oleh 14 pengguna tidak ditampilkan) | |||
Baris 1:
Dalam [[ilmu komputer]], '''''porting''''' atau '''pemortaan''' adalah proses
▲Dalam [[ilmu komputer]], '''pemortaan''' adalah proses untuk mengadaptasi perangkat lunak sehingga [[program komputer|program]] bisa-laksana (''executable'') dapat dibuat untuk lingkungan komputer yang berbeda dengan lingkungan asli desain. Istilah ini juga digunakan untuk mengacu kepada perubahan terhadap perangkat lunak/perangkat keras untuk menjadikannya dapat digunakan di lingkungan yang berbeda.
▲Perangkat lunak bersifat ''[[Portabilitas perangkat lunak|portabel]]'' ketika biaya memindahkannya ke platform baru secara signifikan lebih murah daripada biaya penulisannya dari awal. Semakin rendah biaya perangkat lunak porting relatif terhadap biaya implementasinya, dikatakan akan semakin portabel.
== Etimologi ==
Istilah "''port''" berasal dari bahasa Latin ''[[wikt:port#
Istilah ini umumnya tidak diterapkan pada proses
Pengembang perangkat lunak sering mengklaim bahwa perangkat lunak yang mereka tulis itu ''[[Portabilitas perangkat lunak|
== Sejarah ==
Jumlah CPU dan sistem operasi yang digunakan pada desktop saat ini jauh lebih kecil daripada sebelumnya. Dominasi [[Instruction set architecture|arsitektur]] [[x86]] berarti bahwa sebagian besar perangkat lunak desktop tidak pernah
Standar
Ada juga jumlah alat yang terus meningkat untuk memfasilitasi pemortaan, seperti [[GNU Compiler Collection]], yang menyediakan bahasa pemrograman yang konsisten di berbagai pelantar, dan [[GNU Autotools|Autotools]], yang mengotomatiskan pendeteksian variasi kecil di lingkungan dan menyesuaikan perangkat lunak sesuai sebelum kompilasi.
== Porting permainan video ==▼
Porting juga merupakan istilah yang digunakan saat permainan video dirancang untuk berjalan di satu platform, baik itu [[arkade]], [[konsol permainan video]], atau [[komputer pribadi]], dikonversi untuk berjalan di platform yang berbeda. Dari awal permainan video hingga tahun 1990-an, "ports", pada saat itu sering dikenal sebagai "conversions", sering kali bukan port yang benar, melainkan versi permainan yang dikerjakan ulang. Namun, banyak permainan video abad ke-21 yang dikembangkan menggunakan perangkat lunak (sering kali dalam format [[C++]]) yang dapat mengeluarkan kode untuk satu atau lebih konsol serta untuk PC tanpa perlu port yang sebenarnya (alih-alih mengandalkan port umum dari [[Pustaka (perangkat lunak)|pustaka]] komponen individu).▼
Kompilator untuk beberapa [[bahasa pemrograman tingkat tinggi]] (misalnya, [[Eiffel (bahasa pemrograman)|Eiffel]], [[Esterel]]) mendapatkan portabilitas dengan mengeluarkan kode sumber dalam [[Representasi menengah|bahasa perantara]] tingkat tinggi lainnya (seperti [[C (bahasa pemrograman)|C]]) di mana kompilator untuk banyak pelantar umumnya tersedia.
Dua aktivitas yang terkait dengan (tetapi berbeda dari) pemortaan adalah [[Emulator|emulasi]] dan [[Kompiler silang|kompilasi silang]].
== 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>
[[interpreter|Penafsir]] tidak terlalu rumit dan oleh karena itu lebih mudah untuk diporta daripada penghasil kode, karena tidak dapat melakukan pengoptimalan kode karena tampilan kode programnya terbatas (hanya melihat satu instruksi pada satu waktu, dan Anda memerlukan urutan untuk melakukan optimasi). Beberapa ''interpreter'' (penafsir) sangat mudah untuk diporta, 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 penafair. Ini perlu dikodekan dalam [[Bahasa rakitan|kode rakitan]], menggunakan ''[[assembler]]'' yang sudah ada di sasaran.
# Sesuaikan sumber penghasil kode (''code generator'') ke mesin baru.
# Eksekusi sumber yang disadurkan menggunakan penerjemah dengan sumber penghasil kode sebagai masukan. Ini akan menghasilkan kode mesin untuk penghasil 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>
Para perancang [[bahasa pemrograman Java]] mencoba memanfaatkan kekompakan kode yang ditafsirkan, karena program Java mungkin perlu dikirim melalui Internet sebelum eksekusi dapat dimulai pada [[Mesin Virtual Java]] sasaran.
▲
Pemortaan permainan dingdong ke konsol rumah dengan perangkat keras yang lebih rendah itu sulit. Versi pemortaan dari [[Pac-Man|Pac-man]] untuk [[Atari 2600]] menghilangkan banyak fitur visual dari permainan asli untuk mengimbangi kurangnya ruang [[ROM]] dan perangkat keras bermasalah ketika beberapa hantu muncul di layar menciptakan efek yang berkedip-kedip. Kinerja yang buruk dari [[Pac-Man (Atari 2600)|pemortaan Pac-Man]] dikutip oleh beberapa ahli sebagai penyebab ''crash'' atau [[crash permainan video tahun 1983|jatuhnya permainan video tahun 1983]].<ref>{{cite journal|last1=Nicoll|first1=Benjamin|date=2015|title=Bridging the Gap: The Neo Geo, the Media Imaginary, and the Domestication of Arcade Games|journal=Games and Culture|doi=10.1177/1555412015590048|s2cid=147981978}}</ref>
Banyak porta awal mengalami masalah kualitas permainan yang signifikan karena di komputer sangat berbeda.{{r|bunten198412}} [[Richard Garriott]] menyatakan pada tahun 1984 di [[Origins Game Fair]] bahwa [[Origin Systems]] mengembangkan permainan komputer untuk [[seri Apple II]] terlebih dahulu kemudian memortakannya ke [[Commodore 64]] dan [[Atari 8-bit]], karena ''[[Sprite (grafika komputer)|sprite]]'' mesin yang terakhir dan fitur canggih lainnya membuat pemortaan dari mereka ke Apple dikatakan "jauh lebih sulit, bahkan mungkin tidak mungkin".<ref name="cgw198410">{{cite magazine|title=The CGW Computer Game Conference|magazine=Computer Gaming World|date=October 1984|access-date=31 October 2013|url=http://www.cgwmuseum.org/galleries/index.php?year=1984&pub=2&id=18|pages=30|type=panel discussion}}</ref> Ulasan mengeluhkan porting yang menderita dari "Konversi Apple",<ref name="info198701c64">{{Cite magazine|last1=Dunnington|first1=Benn|last2=Brown|first2=Mark R.|last3=Malcolm|first3=Tom|date=January–February 1987|title=64/128 Gallery|url=https://archive.org/stream/info-magazine-13/Info_Issue_13_1987_Jan-Feb#page/n13/mode/2up|magazine=Info|pages=14–21}}</ref> mempertahankan "suara jelek dan grafis hitam-putih-hijau-ungu" Apple;<ref name="aw1984">{{cite book|year=1984|url=https://archive.org/stream/Atari_Software_1984#page/n21/mode/2up|title=The Addison-Wesley Book of Atari Software|publisher=Addison-Wesley|isbn=0-201-16454-X|editor1=Stanton, Jeffrey|pages=12,21,44,126|editor2=Wells, Robert P.|editor3=Rochowansky, Sandra|editor4=Mellid, Michael}}</ref><ref name="bernstein198505">{{cite news|author=Bernstein, Harvey|date=May 1985|title=Beyond Castle Wolfenstein|url=https://archive.org/stream/1985-05-anticmagazine/Antic_Vol_4-01_1985-05_New_Super_Ataris#page/n81/mode/2up|work=Antic|pages=83|access-date=8 January 2015}}</ref> setelah pernyataan Garriott, ketika [[Dan Bunten]] bertanya "orang-orang Atari dan Commodore di antara penonton, apakah Anda senang dengan penulisan ulang Apple? "teriak penonton "Tidak! "Garriott menjawab," [jika tidak] versi Apple tidak akan pernah selesai. Dari sudut pandang penerbit, itu bukanlah uang yang bijaksana".{{r|cgw198410}}
== Catatan ==
{{Reflist|2}}
==
* {{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]]
[[Kategori:Interoperabilitas]]
|