Lompat ke isi

Proyeksi (ilmu komputer): Perbedaan antara revisi

Ensiklopedia Pengetahuan Universitas Islam Sultan Agung
Maintenance script (bicara | kontrib)
Impor teks terkontrol dari Wikipedia bahasa Indonesia; revisi 27849416; atribusi sumber disertakan.
 
Maintenance script (bicara | kontrib)
Presentation V4: sitasi, referensi, Math, Wikimedia Commons, dan atribusi
 
Baris 1: Baris 1:
Dalam ilmu komputer, '''quaject''' adalah struktur data yang mirip dengan objek yang menyimpan data dan kode (atau penunjuk ke kode). Quaject diekspos sebagai antarmuka melalui [[callentries]] dan dapat menerima daftar callentries dari quaject lain untuk melakukan panggilan balik (callback) dan panggilan keluar. Quaject dikembangkan oleh [[Alexia Massalin]] pada tahun 1989 untuk kernel [[Synthesis Innovation Framework (SIF)|Synthesis]], dan dinamai berdasarkan Qua! [[Machine]], sebuah platform perangkat keras unik yang diciptakan oleh [[Massalin]]. Asal-usul istilah "qua" tidak sepenuhnya jelas; Massalin dengan jenaka mengklaim bahwa itu adalah suara yang dibuat oleh koala.
Dalam ilmu komputer, '''quaject''' adalah struktur data yang mirip dengan objek yang menyimpan data dan kode (atau penunjuk ke kode). Quaject diekspos sebagai antarmuka melalui [[callentries]] dan dapat menerima daftar callentries dari quaject lain untuk melakukan panggilan balik (callback) dan panggilan keluar. Quaject dikembangkan oleh [[Alexia Massalin]] pada tahun 1989 untuk kernel [[Synthesis Innovation Framework (SIF)|Synthesis]], dan dinamai berdasarkan Qua! [[Machine]], sebuah platform perangkat keras unik yang diciptakan oleh [[Massalin]].<ref>[https://www.scs.stanford.edu/nyu/04fa/sched/readings/synthesis.pdf Synthesis: An Efficient Implementation of Fundamental Operating System Services].</ref> Asal-usul istilah "qua" tidak sepenuhnya jelas; Massalin dengan jenaka mengklaim bahwa itu adalah suara yang dibuat oleh koala.<ref>[https://lwn.net/Articles/270081/ KHB: Synthesis: An Efficient Implementation of Fundamental Operating Systems Services [LWN.net]]. ''lwn.net''.</ref><ref>Gary Andrew Poole. [https://www.wired.com/1996/12/ffmassalin/ Qua]. ''Wired''.</ref>


Tujuan utama dari quaject adalah untuk menyediakan abstraksi dalam mengelola kode yang memodifikasi dirinya sendiri, dengan memungkinkan pengoptimalan kode runtime berdasarkan setiap objek. Meskipun kernel Synthesis awalnya mengharuskan quaject ditulis dalam bahasa assembly yang dikembangkan sendiri untuk menghindari pembuatan kompiler yang rumit, Massalin mencatat bahwa kompilasi just-in-time (JIT) untuk bahasa pemrograman tingkat tinggi yang mendukung pembuatan kode runtime, seperti dalam Lisp atau Smalltalk, juga bisa menerapkan pendekatan ini. Namun, ia juga menekankan bahwa kompleksitas kompiler tersebut kemungkinan akan menjadi penghalang.
Tujuan utama dari quaject adalah untuk menyediakan abstraksi dalam mengelola kode yang memodifikasi dirinya sendiri, dengan memungkinkan pengoptimalan kode runtime berdasarkan setiap objek. Meskipun kernel Synthesis awalnya mengharuskan quaject ditulis dalam bahasa assembly yang dikembangkan sendiri untuk menghindari pembuatan kompiler yang rumit, Massalin mencatat bahwa kompilasi just-in-time (JIT) untuk bahasa pemrograman tingkat tinggi yang mendukung pembuatan kode runtime, seperti dalam Lisp atau Smalltalk, juga bisa menerapkan pendekatan ini. Namun, ia juga menekankan bahwa kompleksitas kompiler tersebut kemungkinan akan menjadi penghalang.
Baris 9: Baris 9:


== Referensi ==
== Referensi ==
<references />


== Sumber dan atribusi ==
== Sumber dan atribusi ==


Artikel ini diadaptasi dalam mode teks dari
Konten artikel ini diadaptasi dari [https://id.wikipedia.org/w/index.php?title=Proyeksi+%28ilmu+komputer%29&oldid=27849416 Wikipedia bahasa Indonesia], revisi 27849416 (2025-09-18T11:16:53Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.
[https://id.wikipedia.org/w/index.php?title=Proyeksi_%28ilmu_komputer%29&oldid=27849416 Wikipedia bahasa Indonesia],
 
revisi 27849416 (2025-09-18T11:16:53Z).
<!-- WIKI_UNISSULA_PRESENTATION_V4 -->
Gambar, media, infobox, templat navigasi, dan kategori sumber
tidak diimpor ke Wiki Unissula.
Atribusi dan lisensi mengikuti ketentuan Creative Commons
Atribusi-BerbagiSerupa (CC BY-SA) pada sumber Wikipedia.

Revisi terkini sejak 23 Agustus 2026 03.03

Dalam ilmu komputer, quaject adalah struktur data yang mirip dengan objek yang menyimpan data dan kode (atau penunjuk ke kode). Quaject diekspos sebagai antarmuka melalui callentries dan dapat menerima daftar callentries dari quaject lain untuk melakukan panggilan balik (callback) dan panggilan keluar. Quaject dikembangkan oleh Alexia Massalin pada tahun 1989 untuk kernel Synthesis, dan dinamai berdasarkan Qua! Machine, sebuah platform perangkat keras unik yang diciptakan oleh Massalin.[1] Asal-usul istilah "qua" tidak sepenuhnya jelas; Massalin dengan jenaka mengklaim bahwa itu adalah suara yang dibuat oleh koala.[2][3]

Tujuan utama dari quaject adalah untuk menyediakan abstraksi dalam mengelola kode yang memodifikasi dirinya sendiri, dengan memungkinkan pengoptimalan kode runtime berdasarkan setiap objek. Meskipun kernel Synthesis awalnya mengharuskan quaject ditulis dalam bahasa assembly yang dikembangkan sendiri untuk menghindari pembuatan kompiler yang rumit, Massalin mencatat bahwa kompilasi just-in-time (JIT) untuk bahasa pemrograman tingkat tinggi yang mendukung pembuatan kode runtime, seperti dalam Lisp atau Smalltalk, juga bisa menerapkan pendekatan ini. Namun, ia juga menekankan bahwa kompleksitas kompiler tersebut kemungkinan akan menjadi penghalang.

Quaject berbeda dari objek konvensional dalam dua cara utama:

  1. Injeksi dependensi: Quaject selalu menggunakan pola injeksi dependensi untuk mengelola antarmuka dengan quaject lain, dan kelanjutannya. Daftar referensi callentry ini adalah bagian dari pembuatan quaject dan dapat diperbarui selama masa aktif quaject.
  2. Metode unik: Setiap quaject dapat memiliki serangkaian metode yang unik, yang disesuaikan untuk perilaku spesifik quaject tersebut. Metode untuk jenis atau kelas quaject disimpan sebagai satu atau beberapa templat, bukan sebagai kode tetap. Metode bersama dapat diakses melalui tabel pointer umum, tetapi quaject individu juga dapat memiliki metode yang dibuat secara khusus untuk menyesuaikan kinerja dengan perilaku quaject tersebut.

Referensi

Sumber dan atribusi

Konten artikel ini diadaptasi dari Wikipedia bahasa Indonesia, revisi 27849416 (2025-09-18T11:16:53Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.