Chương VII Các thao tác với tập tin

Một phần của tài liệu thực hành ngôn ngữ lập trình (Trang 66 - 68)

Trong các phần trước, chúng ta đã biết định nghĩa hàm để thực hiện công việc của mình, chúng ta bắt đầu muốn biết làm thế nào để lưu lại các hàm và xử lý mình đã tạo ra. Chương này sẽ giải thích làm thế nào để lưu lại các định nghĩa dưới dạng tập tin để ta có thể sử dụng lại sau này.

VII.1 Lưu li tp tin chương trình và d liu

Để tạo mới một tập tin hay sửa đổi một tập tin có sẵn, chúng ta dùng ED (viết tắt của editor). (ed name)

ED sẽ mở trình soạn thảo để soạn chương trình (các lệnh, định nghĩa hàm, …) trên đó. Sau đó, đểđánh giá một tập tin, trở về LISP và dùng LOAD.

(load name

tên hay đường dẫn đến file chứa định nghĩa hàm

¾ (read)đọc một biểu thức và trả về kết quả * (+ (read) 3) * 4 = 7 * (read) * (+ 3 4) = (+ 3 4)

VII.2 Biên dch tp tin

Một khi đã lưu lại một tập tin chứa đầy đủ các định nghĩa LISP, bạn có thể dùng ngay các định nghĩa đó hoặc dịch chúng sang tập lệnh máy tính. Khi chúng ta dùng cách thứ nhất, nghĩa là không cần dịch, trình thông dịch LISP (LISP interpreter) sẽ thường xuyên tham chiếu đến các định nghĩa trong chương trình và, theo các định nghĩa đó, từng dạng một, tính toán kết quả một cách tường minh đối với mỗi dạng.

Khi dùng cách thứ hai, trình thông dịch LISP (LISP compiler), các định nghĩa trong chương trình của bạn sẽđược chuyển thành một tập lệnh hoàn toàn khác – tập lệnh máy tính. Để dùng những định nghĩa này, LISP sẽ gọi tập lệnh máy tính đã được chuyển bằng lệnh COMPILE.

Ví dụ:

(compile name)

VII.3 Debugging

¾ Đây là ngôn ngữ tương tác (interactive), do đó chúng ta có thể kiểm tra mỗi hàm ở toplevel mà không bắt buộc phải định nghĩa các chương trình tests

* (defun fac(n)

(if (= n 0) 1 (* n (fac (1- n))) ) ) FAC

* (trace fac)

;Autoload: TRACE from “TRACE” in “C:\\GCLISP\\LISPLIB” T

* (fac 2)

ENTERING: FAC, ARGUMENT LIST: (2) ENTERING: FAC, ARGUMENT LIST: (1) ENTERING: FAC, ARGUMENT LIST: (1) ENTERING: FAC, ARGUMENT LIST: (0) EXITING: FAC, VALUE: 1

EXITING: FAC, VALUE: 1 EXITING: FAC, VALUE: 2 EXITING: FAC, VALUE: 2 2

¾ untrace cho phép trở về sự thực hiện bình thường của hàm

* (untrace fac) (FAC)

* (fac 2) 2

¾ trace cập nhật định nghĩa hàm theo vết bằng cách in ra kết quả từng giai đoạn

Một phần của tài liệu thực hành ngôn ngữ lập trình (Trang 66 - 68)