大师用车|镀晶效果究竟怎样 真能让爱车闪亮迷
Th?c thi ch??ng trình |
---|
Khái ni?m chung |
Các lo?i m? |
Chi?n l??c biên d?ch |
Runtime ?áng chú y |
|
Trình biên d?ch & toolchain ?áng chú y |
|
Bytecode, còn ???c g?i là portable code ho?c p-code, là cách th?c l?u tr? d?ng m? các ch? th? trong l?p trình máy tính, ???c thi?t k? ?? ph?n m?m th?ng d?ch th?c hi?n hi?u qu? trên n?n t?ng máy ?o.
Kh?ng gi?ng nh? các m? ngu?n d?ng v?n b?n hi?n ra mà ng??i có th? ??c ???c, bytecode l?u ? d?ng m? nh? phan các l?nh, s?, h?ng, và tham chi?u (th??ng là ??a ch? b?ng s?), là m? hoá k?t qu? c?a phan tích và d?ch nh?ng th? nh? ki?u, ph?m vi và c?p ?? l?ng (nesting depth) c?a các ??i t??ng ch??ng trình. Do ?ó, nó cho phép th?c thi v?i hi?u n?ng t?t h?n nhi?u so v?i vi?c th?ng d?ch tr?c ti?p m? ngu?n v?n b?n [1].
Tên g?i bytecode b?t ngu?n t? t?p ch? l?nh có opcode dài m?t byte và theo sau là các tham s? tùy ch?n. Bytecode là d?ng trung gian gi?a trình m? máy ?? biên d?ch và v?n b?n (text). Nó ???c t?o ra nh? ng?n ng? l?p trình khi l?u l?i, và ph?c v? cho th?ng d?ch d? dàng, ho?c ?? làm gi?m s? ph? thu?c vào ph?n c?ng và h? ?i?u hành, b?ng cách cho phép cùng lo?i m? có th? ch?y trên các n?n t?ng khác nhau. Bytecode th??ng có th? ???c th?c thi tr?c ti?p ho?c trên m?t máy ?o (m?t "máy tính p-code" t?c trình th?ng d?ch), ho?c nó có th? ???c ti?p t?c biên d?ch thành m? máy ?? cho hi?u n?ng ch?y t?t h?n.
Do các l?nh bytecode ???c x? ly b?i ph?n m?m nên chúng có th? ph?c t?p m?t cách tùy ti?n, tuy nhiên chúng th??ng gi?ng v?i các h??ng d?n ph?n c?ng truy?n th?ng: các c? ch? stack ?o (t?m d?ch: virtual stack machines) là lo?i ph? bi?n nh?t, nh?ng các c? ch? thanh ghi ?o (t?m d?ch: virtual register machines) c?ng ???c xay d?ng. Các ph?n khác nhau c?a m?t ch??ng trình th??ng có th? ???c l?u tr? trong các t?p riêng bi?t, t??ng t? nh? các modul m? object (t?p tin object), nh?ng ???c n?p linh ??ng trong quá trình th?c hi?n [2][3].
Th?c thi
[s?a | s?a m? ngu?n]Tham kh?o
[s?a | s?a m? ngu?n]- ^ Bill Venners. Bytecode basics. A first look at the bytecodes of the Java virtual machine L?u tr? ngày 19 tháng 5 n?m 2015 t?i Wayback Machine. JavaWorld, 01/09/1996. Truy c?p 01/04/2017.
- ^ Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes. The Implementation of Lua 5.0 Journal of Universal Computer Science, Volume 11, Issue 7. Truy c?p 01/04/2017. This involves a register-based virtual machine.
- ^ Dalvik V. M. Dalvik bytecode. android.com, 27/03/2017. Truy c?p 01/04/2017. This is register based.

Xem thêm
[s?a | s?a m? ngu?n]