Khi chúng ta đưa chương trình của mình vào Perl thông thường, trước tiên nó được biên dịch thành một biểu diễn nội bộ, hoặc mã bytecode; mã bytecode này sau đó được đưa vào hệ thống con gần như riêng biệt bên trong Perl để được thông dịch. Vì vậy, có hai giai đoạn khác nhau trong hoạt động của Perl:
- Biên dịch thành bytecode và
- Diễn giải mã bytecode.
Đây không phải là duy nhất đối với Perl. Các ngôn ngữ khác theo thiết kế này bao gồm Python, Ruby, Tcl và thậm chí cả Java.
Chúng ta cũng biết rằng có một Máy ảo Java (JVM) là một môi trường thực thi độc lập với nền tảng chuyển đổi mã bytecode của Java thành ngôn ngữ máy và thực thi nó. Nếu bạn hiểu khái niệm này thì bạn sẽ hiểu Parrot.
Parrot là một máy ảo được thiết kế để biên dịch và thực thi mã bytecode cho các ngôn ngữ thông dịch một cách hiệu quả. Parrot là mục tiêu cho trình biên dịch Perl 6 cuối cùng và được sử dụng làm chương trình phụ trợ cho Pugs, cũng như nhiều ngôn ngữ khác như Tcl, Ruby, Python, v.v.
Parrot đã được viết bằng ngôn ngữ phổ biến nhất "C".
1 đoạn code Perl để so sánh với Parrot:
$i1 = 12; $i2 = 5; $i3 = $i1 % $i2; if ($i3) { print "5 divides 12 with remainder "; print $i3; } else { print "5 is an integer divisor of 12"; } print "\n"; exit;
1 đoạn code Parrot:
set I1, 12 set I2, 5 mod I3, I2, I2 if I3, REMAIND, DIVISOR REMAIND: print "5 divides 12 with remainder " print I3 branch DONE DIVISOR: print "5 is an integer divisor of 12" DONE: print "\n" end

0 Nhận xét