LISP - Cấu trúc chương trình
Biểu thức LISP được gọi là biểu thức tượng trưng hoặc biểu thức s. Biểu thức s bao gồm ba đối tượng hợp lệ, nguyên tử, danh sách và chuỗi.
Bất kỳ biểu thức s nào đều là một chương trình hợp lệ.
Các chương trình LISP chạy trên một interpreter hoặc như compiled code.
Trình thông dịch kiểm tra mã nguồn trong một vòng lặp lặp lại, còn được gọi là vòng lặp đọc-đánh giá-in (REPL). Nó đọc mã chương trình, đánh giá nó và in các giá trị mà chương trình trả về.
Một chương trình đơn giản
Chúng ta hãy viết một biểu thức s để tìm tổng của ba số 7, 9 và 11. Để làm điều này, chúng ta có thể nhập vào dấu nhắc thông dịch.
(+ 7 9 11)
LISP trả về kết quả -
27
Nếu bạn muốn chạy cùng một chương trình với mã đã biên dịch, thì hãy tạo tệp mã nguồn LISP có tên myprog.lisp và nhập mã sau vào đó.
(write (+ 7 9 11))
Khi bạn nhấp vào nút Execute hoặc gõ Ctrl + E, LISP sẽ thực thi nó ngay lập tức và kết quả trả về là:
27
LISP sử dụng ký hiệu tiền tố
Bạn có thể lưu ý rằng LISP sử dụng prefix notation.
Trong chương trình trên, biểu tượng + hoạt động như tên hàm cho quá trình tính tổng các số.
Trong ký hiệu tiền tố, các toán tử được viết trước các toán hạng của chúng. Ví dụ, biểu thức,
a * ( b + c ) / d
sẽ được viết là -
(/ (* a (+ b c) ) d)
Hãy lấy một ví dụ khác, chúng ta hãy viết mã để chuyển đổi nhiệt độ Fahrenheit là 60 o F sang thang độ C.
Biểu thức toán học cho chuyển đổi này sẽ là:
(60 * 9 / 5) + 32
Tạo một tệp mã nguồn có tên main.lisp và nhập mã sau vào đó.
(write(+ (* (/ 9 5) 60) 32))
Khi bạn nhấp vào nút Execute hoặc gõ Ctrl + E, LISP sẽ thực thi nó ngay lập tức và kết quả trả về là−
140
Đánh giá các Chương trình LISP
Đánh giá các chương trình LISP có hai phần:
Dịch văn bản chương trình thành các đối tượng Lisp bởi một chương trình đọc
Triển khai ngữ nghĩa của ngôn ngữ về các đối tượng này bằng một chương trình đánh giá
Quá trình đánh giá thực hiện theo các bước sau:
Trình đọc dịch các chuỗi ký tự thành các đối tượng LISP hoặc s-expressions.
Trình đánh giá xác định cú pháp của Lisp formsđược xây dựng từ biểu thức s. Mức độ đánh giá thứ hai này xác định cú pháp xác địnhs-expressions là các hình thức LISP.
Bộ đánh giá hoạt động như một hàm lấy một biểu mẫu LISP hợp lệ làm đối số và trả về một giá trị. Đây là lý do tại sao chúng tôi đặt biểu thức LISP trong ngoặc đơn, bởi vì chúng tôi đang gửi toàn bộ biểu thức / biểu mẫu đến người đánh giá dưới dạng đối số.
Chương trình 'Hello World'
Học một ngôn ngữ lập trình mới không thực sự thành công cho đến khi bạn học cách chào đón toàn thế giới bằng ngôn ngữ đó, đúng không!
Vì vậy, hãy tạo tệp mã nguồn mới có tên main.lisp và nhập mã sau vào đó.
(write-line "Hello World")
(write-line "I am at 'Tutorials Point'! Learning LISP")
Khi bạn nhấp vào nút Execute hoặc gõ Ctrl + E, LISP sẽ thực thi nó ngay lập tức và kết quả trả về là:
Hello World
I am at 'Tutorials Point'! Learning LISP