- Ký hiệu Ba Lan ngược, hay ký hiệu hậu tố, đặt các toán tử sau các toán hạng, loại bỏ sự cần thiết phải sử dụng dấu ngoặc đơn.
- Nó được bắt nguồn từ ký hiệu tiền tố tiếng Ba Lan do Jan Łukasiewicz tạo ra để đơn giản hóa logic mệnh đề.
- Công nghệ này đã được hãng Hewlett-Packard phổ biến rộng rãi thông qua các máy tính cầm tay nổi tiếng như HP-9100A và HP-35.
- Trong lĩnh vực máy tính, nó được triển khai thông qua việc sử dụng các ngăn xếp, đóng vai trò nền tảng trong các hệ thống như Unix và các ngôn ngữ lập trình hướng ngăn xếp.
Chắc hẳn bạn từng tự hỏi những chiếc máy tính khoa học cũ hoạt động như thế nào bên trong, hoặc tại sao một số ngôn ngữ lập trình lại viết toán ngược. Mặc dù từ nhỏ chúng ta đã được dạy rằng các ký hiệu cộng và trừ luôn nằm ở giữa các số, nhưng vẫn tồn tại một thế giới thú vị gọi là Ký hiệu Ba Lan ngược (Reverse Polish Notation) hoàn toàn trái ngược với những gì chúng ta biết.
Hệ thống này không phải là một phát minh hiện đại; nó bắt nguồn từ logic thuần túy và mong muốn làm cho các biểu thức đại số hiệu quả hơn. Không giống như cách chúng ta thường làm, ở đây thứ tự của các thừa số làm thay đổi cách chúng được viết, cho phép chúng ta hoàn toàn bỏ qua dấu ngoặc và đơn giản hóa việc nhập dữ liệu vào hệ thống máy tính.
Nguồn gốc: Từ Jan Łukasiewicz đến máy tính

Mọi chuyện bắt đầu từ năm 1924 nhờ một nhà toán học, logic học và triết học người Ba Lan xuất sắc tên là Jan Łukasiewicz . Ông đã đặt mục tiêu đơn giản hóa logic mệnh đề và tạo ra cái gọi là ký hiệu tiền tố (hay ký hiệu Ba Lan), trong đó toán tử được đặt trước các toán hạng. Ví dụ, nếu ta muốn cộng 3 và 4, thay vì viết 3 + 4, ta sẽ viết 3 + 4.
Mặc dù ban đầu nó có vẻ chỉ là một điều thú vị đối với các nhà logic học và triết học, và thậm chí còn được Alonzo Church đề cập trong các tác phẩm về logic toán học, ý tưởng này cuối cùng đã được ứng dụng vào thế giới khoa học máy tính. Trên thực tế, ngôn ngữ lập trình LISP xây dựng cú pháp của nó chính xác trên mô hình tiền tố này, chứng minh rằng những gì bắt nguồn từ logic cuối cùng đã trở thành một công cụ mạnh mẽ cho việc lập trình.
Ký hiệu Ba Lan ngược là gì?

Trong khi ký hiệu tiền tố đặt toán tử trước toán hạng, ký hiệu Ba Lan ngược (còn được gọi là RPN hoặc ký hiệu hậu tố) lại làm ngược lại: nó đặt toán tử sau toán hạng. Do đó, phép cộng thông thường của 2 và 5 trở thành 2 5 +.
Điểm mạnh nhất của hệ thống này là, miễn là các toán tử có số lượng toán hạng cố định, dấu ngoặc đơn có thể được loại bỏ . Lấy phép toán 5 * (12 + 4) làm ví dụ. Trong hệ thống truyền thống, chúng ta cần dấu ngoặc đơn để buộc phải thực hiện phép cộng trước; tuy nhiên, trong RPN, điều này được viết đơn giản là 5 12 4 + * . Điều này gọn gàng và trực quan hơn nhiều đối với máy tính.
Thời kỳ hoàng kim của Hewlett-Packard và máy tính bỏ túi

Vào giữa những năm 60, nhà khoa học người Úc Charles Leonard Hamblin đã hoàn thiện các thuật toán để triển khai hệ thống này trong các thiết bị điện tử. Chính lúc đó, Hewlett-Packard quyết định đầu tư vào nó, cho ra mắt HP-9100A vào năm 1968, một máy tính để bàn đã thay đổi cuộc chơi. Không lâu sau, chiếc HP-35 huyền thoại ra đời , máy tính khoa học bỏ túi đầu tiên, đưa RPN đến tay hàng nghìn kỹ sư và sinh viên từ năm 1972 đến năm 1975.
Việc sử dụng những máy này đòi hỏi phải suy nghĩ thêm một chút để hiểu kết quả, nhưng lại hiệu quả hơn nhiều về số lần gõ phím . Thay vì phải gõ một phương trình dài và nhấn dấu bằng, bạn chỉ cần nhập các con số và phép toán, sau đó chúng được xử lý ngay lập tức, giúp quy trình làm việc hiệu quả hơn rất nhiều.
Triển khai kỹ thuật: Ngăn xếp và đường ống

Từ góc độ lập trình, RPN rất tuyệt vời vì nó cực kỳ dễ triển khai bằng cách sử dụng cấu trúc dữ liệu gọi là ngăn xếp . Hệ thống lưu trữ các số trên ngăn xếp và ngay khi một toán tử xuất hiện, nó sẽ trích xuất các giá trị được nhập cuối cùng, thực hiện phép tính và đẩy kết quả trở lại ngăn xếp.
Hiệu quả này là lý do tại sao, mặc dù chúng ta không còn thấy nhiều máy tính vật lý sử dụng hệ thống này nữa, RPN vẫn tồn tại trong hoạt động bên trong của công nghệ hiện đại. Nó được sử dụng rộng rãi trong các ngôn ngữ lập trình hướng ngăn xếp và trong các hệ điều hành dựa trên đường ống hoặc luồng dữ liệu, một ví dụ điển hình là sự hiện diện của nó trong môi trường Unix.
Những điều thú vị về Łukasiewicz và logic
Jan Łukasiewicz không chỉ để lại cho chúng ta cách viết toán học này. Ông là người tiên phong trong logic đa giá trị và logic modal. Ông thậm chí còn giải quyết những thách thức trí tuệ như nghịch lý kẻ nói dối (cụm từ "điều này là sai"). Giải pháp của ông rất xuất sắc: ông lập luận rằng các nguyên tắc logic chỉ áp dụng cho các đối tượng có thể là giá trị của biến, và vì cụm từ mâu thuẫn đó không thể là giá trị của một biến, nên nó đơn giản là nằm ngoài logic và không thể được phân tích bằng các phương pháp logic truyền thống.
Hành trình thú vị này, từ tư duy của một nhà logic học người Ba Lan đến các mạch điện của máy tính HP và nhân hệ điều hành Unix, cho chúng ta thấy cách thức tổ chức thông tin thay thế có thể tối ưu hóa việc xử lý dữ liệu. Bằng cách loại bỏ sự cần thiết của dấu ngoặc đơn và dựa vào việc sử dụng ngăn xếp, Ký hiệu Ba Lan ngược vẫn là một trụ cột vô hình nhưng cơ bản trong kiến trúc của nhiều hệ thống máy tính hiện đại.