Mình mới tìm hiểu về forth, lên trong bài viết này mình sẽ dịch bài về Variables, Constants, và Arrays trong Forth với mục đích tìm hiểu các vấn đề cơ bản trong forth.
Để bắt đầu chúng ta sẽ đến với ví dụ về việc sử dụng variabale trong việc lưu trữ ngày:
Bạn đang xem: Variables, Constants, và Arrays trong Forth_Phần 1 VARIABLE
để thực hiện show giá trị của DATE chúng ta sử dụng DATE @
Chúng ta sẽ khai báo thêm 2 biến tháng và năm để bổ sung thêm thông tin:
VARIABLE DATE VARIABLE MONTH VARIABLE YEAR
để define các thông tin YEAR và MONTH đc gọi thông qua DATE
: !DATE YEAR ! DATE ! MONTH ! ;
Việc này giống với định nghĩa một hàm có tên hàm là !DATE và trong hàm có 3 biến đc gán theo các đối số truyền vào cho hàm lần lượt là YEAR, DATE, MONTH
gán gá trị cho DATE, MONTH, YEAR
7 31 03 !DATE
Xem thêm : Biển số xe 94 là của tỉnh nào?
In giá trị của DATE, MONTH, YEAR
: .DATE MONTH ? DATE ? YEAR ? ;
Khi bạn sử dụng định nghĩa biến bằng cách:
VARIABLE DATE
Trong forth điều này tương đương với việc bạn đã compiling vào từ điển một từ mới DATE.
Trong từ điển của bạn DATE được xác định bằng từ VARIABLE và ko có định nghĩa về nhiệm vụ của DATE.
Khi bạn gọi
12 DATE !
12 sẽ được đẩy vào stack. Sau đó trình biên dịch sẽ tìm từ DATE trong từ điển được định nghĩa từ bên trên. Và chỉ nó cho bộ phận EXECUTE. EXECUTE sẽ thực hiện bằng cách copy địa chỉ của variable trống vào stack.
Khi chương trình chạy đến ký tự “!” thì sẽ lấy địa chỉ bên trên và giá trị bên dưới lưu trữ vào vị trí đó. Có một lưu ý là bất cứ số nào đc lưu trữ ở vị trí đó lúc trước sẽ đều bị thay thế.
Từ @ chỉ ứng với 1 đối số, trong trường hợp này được cung cấp bởi tên của biến như trong: DATE @
Xem thêm : Khu vực 2 NT là gì?
Sử dụng giá trị trên stack làm địa chỉ, từ khóa @ sẽ đẩy nội dung của giá trị đó lên stack và xóa bỏ địa chỉ, nhưng nội dung của địa chỉ đó thì vẫn còn nguyên vẹn.
Trong forth thì một biến là cách lý tưởng để lưu trữ số lượng một cái gì đó. Chúng tôi sử dụng trong ví dụ đếm số trứng rơi xuống băng truyền trong vòng 1 ngày.
Đầu tiên chúng ta phải define:
Để giữ cho việc đếm luôn bắt đầu đúng. Chúng ta cần phải có một hàm reset lại số trứng mỗi khi bắt đầu thực hiện:
Và mỗi khi 1 quả trứng đi qua vị trí check.
“+!” sẽ thực hiện thêm giá trị đã cho vào nội dung của địa chỉ đã cho.
Chúng ta có thể thay đổi bằng việc thêm vào một hàm:
Và khi kết thúc một ngày chúng ta gọi:
EGGS @
Trên đây là phần giới thiệu về VARIABLE trong forth. Trong bài sau mình sẽ tiếp tục dịch về phần Constants, và Arrays trong forth. Do vốn TA có hạn lên bài dịch còn nhiều chỗ không được chuẩn + mình cũng thay đổi nhiều theo ý hiểu của bản thân. Lên nếu có vấn đề gì xin các bạn góp ý!!! Thanks!!! bài viết gốc: https://www.forth.com/starting-forth/8-variables-constants-arrays/
Nguồn: https://luatduonggia.edu.vn
Danh mục: Tổng hợp
This post was last modified on 09/05/2024 18:17
Con số may mắn hôm nay 26/11/2024 theo tuổi sinh: Hãy chọn SỐ ĐÚNG để…
Tử vi thứ ba ngày 26/11/2024 của 12 con giáp: Tý xui xẻo, Mùi an…
12 con giáp rất dễ dàng gặp được QUÝ VỊ, chỉ cần áp dụng đúng…
Hãy cẩn thận khi tiếp xúc với những con giáp này, chúng là bậc thầy…
Cách 12 con giáp trưởng thành sau vấp ngã và nếm trải thất bại trong…
4 con giáp đối mặt nguy cơ mất tiền, thất bại trong đầu tư vào…