HipHop for PHP

HipHop for PHP (HPHPc) là một transpiler PHP tạo ra bởi Facebook. Bằng cách sử dụng HPHPc làm trình biên dịch source-to-source, mã PHP được dịch sang C ++, biên dịch thành một binary và chạy như một file thực thi, trái ngược với con đường thực thi bình thường của PHP, mã PHP được chuyển thành opcodes và thông dịch. HPHPc bao gồm chủ yếu mã nguồn của C ++, C và PHP, và nó là một phần mềm miễn phí và mã nguồn mở được phân phối theo giấy phép PHP.

Mục đích đầu của HipHop là để tiết kiệm tài nguyên trên máy chủ của Facebook, với PHP codebase lớn của facebook.com. Vì sự phát triển của HipHop tiến triển, người ta đã nhận ra rằng HipHop có thể làm tăng đáng kể tốc độ của các ứng dụng PHP nói chung. Tăng việc tạo ra trang web bởi các yếu tố lên đến sáu đã được quan sát thấy trong Zend PHP. Một mục tiêu đã nêu của HPHPc là để cung cấp khả năng tương thích mức độ cao với Zend PHP, nơi mà hầu hết các chương trình dựa trên Zend PHP sẽ không bị sửa đổi trên HPHPc. HPHPc ban đầu được mở nguồn vào đầu năm 2010.

Để bổ sung cho HPHPc, các kỹ sư Facebook cũng tạo ra một "chế độ phát triển" của HipHop (phiên bản thông dịch của một PHP execution engine, được gọi là HPHPi) và HipHop debugger (được gọi là HPHPd). Những bổ sung này cho phép các nhà phát triển chạy mã PHP qua cùng một logic được cung cấp bởi HPHPc trong khi làm cho nó có thể gỡ lỗi tương tác mã PHP bằng cách xác định watch, s breakpoint, v.v. Chạy mã thông qua HPHPi mang lại hiệu suất thấp hơn khi so sánh với HPHPc, nhưng những lợi ích cho những nhà phát triển vào thời điểm là giúp duy trì hai execution engine tạo ra và phát triển. HPHPi và HPHPd cũng được mở nguồn trong năm 2010.

Bằng nhiều tính toán HPHPc đã hoàn thành mục tiêu của mình, đặc biệt là trong Facebook là nó cho phép facebook.com chạy nhanh hơn nhiều trong khi sử dụng ít tài nguyên hơn. Tuy nhiên, vào đầu năm 2013 Facebook đã không tán thành HPHPc trong việc tạo thành HipHop Virtual Machine (HHVM),  là một execution engine cho PHP dựa trên bộ biên dịchjust-in-time (JIT), cũng được phát triển bởi Facebook. Có rất nhiều lý do cho việc này; một trong số đó là đường đặc tuyến phẳng của HPHPc nhằm cải thiện hiệu suất hơn nữa. Ngoài ra, HPHPc không hỗ trợ đầy đủ ngôn ngữ PHP, bao gồm các cấu trúc create_function () và eval (), và nó bao gồm một tiến trình xác định thời gian và sử dụng tài nguyên vốn yêu cầu một binary lớn hơn 1 GB được biên dịch và phân phối cho nhiều các máy chủ trong thời gian ngắn. Ngoài ra, duy trì song song HPHPc và HPHPi (như chúng cần phải có, cho sự thống nhất của môi trường sản xuất và phát triển) đã trở nên cồng kềnh. Cuối cùng, HPHPc không phải là một thay thế tự động cho Zend, yêu cầu khách hàng bên ngoài thay đổi toàn bộ quá trình phát triển và triển khai của họ để sử dụng HPHPc.

Xem thêm 
 KPHP
 Máy ảo Parrot
 Phalanger
 Project Zero

Tham khảo

Liên kết ngoài 
 
 HipHop blog
 HPHP Facebook Group
  a talk given by Haiping Zhao, a Facebook engineer
  a talk given by a HipHop open source engineer, Sara Goleman, at PHP UK Conference 2013

Phần mềm năm 2010
Trình biên dịch và thông dịch miễn phí