Tại sao Forth sử dụng câu lệnh IF THEN ... thay vì ENDIF?Tại sao Forth sử dụng câu lệnh IF THEN ... thay vì ENDIF?
Tôi đang triển khai một trình biên dịch Forth (không phù hợp). Về cơ bản, cú pháp của Forth xuất hiện rất trực quan đối với tôi về các câu lệnh IF.
IF ."Statement is true"
ELSE ."Statement is not true"
THEN ."Printed no matter what;
Tại sao câu lệnh kết thúc là THEN
? Điều này làm cho ngôn ngữ đọc cực kỳ kỳ lạ đối với tôi. Đối với trình biên dịch của tôi, tôi đang xem xét thay đổi nó thành một cái gì đó như ENDIF
mà đọc tự nhiên hơn. Nhưng, lý do đằng sau những câu lệnh IF-THEN ngược lại ở nơi đầu tiên là gì?
Có ai nghĩ điều này phù hợp hơn với người lập trình không? – Earlz
Bạn sẽ phải hỏi Chuck Moore. Không ai khác sẽ biết câu trả lời. [Ở đây anh ta nói khi anh ta giới thiệu "postfix đôi khi bị chỉ trích có điều kiện"] (http://www.colorforth.com/HOPL.html). –
Nếu tôi không nhầm lẫn nhiều, có (hoặc, có lẽ, là) triển khai (không thể nhớ được tại thời điểm này, xin lỗi) trong đó ENDIF được định nghĩa là một loại từ đồng nghĩa của THEN, có nghĩa là bạn không phải là người đầu tiên để tìm chuỗi 'IF-ELSE-THEN' hơi khác thường. Tôi, tôi chưa bao giờ gặp vấn đề với nó. (Tôi nghĩ rằng tôi đã nhìn thấy một lời giải thích cho nó trong một số cuốn sách từ lâu, và nó đã được theo dòng @AshleyF đã nói trong câu trả lời của mình.) –