6 điểm bởi xguru 2020-04-06 | 2 bình luận | Chia sẻ qua WhatsApp
  • Giải thích dễ hiểu các giai đoạn biên dịch của Svelte

#1 Đọc tệp .svelte và chuyển thành AST

→ HTML được tự phân tích cú pháp, Script dùng Acorn, CSS dùng css-tree

#2 Duyệt AST để theo dõi tham chiếu và phụ thuộc

→ Tạo instance Component và tìm, đánh dấu các biến

#3 Tạo các khối mã và các mảnh

→ DOM/SSR Renderer

#4 Sinh mã

2 bình luận

 
heycalmdown 2020-04-07

Mấy ngày trước có Toast UI Editor (https://vi.news.hada.io/topic?id=1823) được giới thiệu cũng vậy, rồi cả Language Server Protocol(https://en.wikipedia.org/wiki/Language_Server_Protocol) nữa, các dự án tận dụng AST ngày càng nhiều hơn nhỉ. Hình như trước đây tôi cũng từng thấy ý tưởng gửi file JS xuống dưới dạng AST thay vì văn bản để engine trình duyệt phân tích nhanh hơn; tuy không phải bài này(https://blog.cloudflare.com/binary-ast) nhưng có vẻ là một ý tưởng tương tự.

Nếu không phải AST được tạo ra một cách ngầm định mà là tự tay xây dựng AST theo hướng có ý nghĩa hơn, thì khi đó lại thành ngôn ngữ hàm thuộc họ S-Expression; nếu hai bên gặp nhau ở điểm giữa thì sẽ thú vị đấy.

 
xguru 2020-04-06

Đọc xong một lần thì có lẽ sẽ giúp các contributor bên ngoài dễ đóng góp vào mã nguồn Svelte hơn