Porting: Perbedaan antara revisi
Konten dihapus Konten ditambahkan
merapikan awal kalimat dan beberapa istilah. Tag: Suntingan perangkat seluler Suntingan peramban seluler |
Tidak ada ringkasan suntingan Tag: Suntingan perangkat seluler Suntingan peramban seluler |
||
(7 revisi perantara oleh 7 pengguna tidak ditampilkan) | |||
Baris 1:
Dalam [[ilmu komputer]], '''''porting''''' atau '''pemortaan''' adalah proses
== Etimologi ==
Istilah "''port''" berasal dari bahasa Latin ''[[wikt:port#
Istilah ini umumnya tidak diterapkan pada proses menyadurkan perangkat lunak agar berjalan dengan lebih sedikit memori pada CPU dan sistem operasi yang sama, juga tidak diterapkan pada penulisan ulang kode sumber dalam [[Bahasa pemrograman|bahasa]] yang berbeda (yaitu konversi atau terjemahan bahasa).
Baris 13:
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 diportakan ke CPU yang berbeda. Di pasar yang sama, pilihan sistem operasi telah dikurangi menjadi tiga: [[Microsoft Windows]], [[macOS]], dan [[Linux]]. Namun, dalam [[Sistem terbenam|sistem tertanam]] dan pasar seluler, [[Portabilitas perangkat lunak|portabilitas]] tetap menjadi masalah yang signifikan, dengan [[ARM architecture|ARM]] menjadi alternatif yang banyak digunakan.
Standar mancanegara, seperti yang ditetapkan oleh [[International Organization for Standardization|ISO]], sangat memfasilitasi pemortaan dengan menentukan perincian lingkungan komputasi dengan cara yang membantu mengurangi perbedaan antara berbagai [[Platform komputasi|pelantar]] yang sesuai standar. Menulis perangkat lunak yang tetap dalam batas-batas yang ditentukan oleh standar ini merupakan upaya praktis meskipun tidak sepele.
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.
Baris 21:
Dua aktivitas yang terkait dengan (tetapi berbeda dari) pemortaan adalah [[Emulator|emulasi]] dan [[Kompiler silang|kompilasi silang]].
== Kompilator
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>
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
# Sesuaikan sumber
# Eksekusi sumber yang disadurkan menggunakan penerjemah dengan sumber
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}}
==
* {{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:Istilah teknologi informasi dalam bahasa Inggris]]
[[Kategori:Interoperabilitas]]▼
[[de:Portierung]]
[[es:Portabilidad]]
▲[[Kategori:Interoperabilitas]]
|