-
Cuộc phỏng vấn ngắn với Tiến sĩ Brian Kernighan, người đồng sáng lập AWK
-
Giới thiệu về Tiến sĩ Brian Kernighan
- Tiến sĩ Brian Kernighan là một nhà khoa học máy tính người Canada, đã đóng góp vào quá trình phát triển UNIX tại Bell Labs
- Ông đồng tác giả cuốn sách nền tảng về ngôn ngữ lập trình C, "The C Programming Language", cùng với Dennis Richie
- Từ năm 2000, ông đào tạo thế hệ lập trình viên tiếp theo tại Princeton University
- Ông nổi tiếng là người viết chương trình "Hello World!" đầu tiên
-
Ý tưởng mới của AWK
- Ý tưởng cốt lõi của AWK là mảng kết hợp (associative arrays)
- Vào thời điểm đó đây là một khái niệm mới, nhưng hiện nay nó được dùng trong hầu hết các ngôn ngữ dưới dạng hàm thư viện (hashmaps trong Java hoặc C++) hoặc như một phần của chính ngôn ngữ (dictionaries trong Perl và Python)
- Mảng kết hợp là một cấu trúc rất mạnh, có thể được dùng để mô phỏng nhiều kiểu cấu trúc dữ liệu khác nhau
- Mô hình pattern-action khi đó cũng chưa được sử dụng rộng rãi, nhưng là một cách hiệu quả để tổ chức những phép tính cụ thể
-
Tài liệu tham khảo khi tạo ngôn ngữ lập trình
- Tiến sĩ Kernighan: "Không có"
- Vào thập niên 1970, có rất nhiều ngôn ngữ chuyên dụng mới xuất hiện và hầu như không có nhiều tài liệu đi trước đáng để tham khảo
- Yacc là một công cụ quan trọng giúp tạo ngữ pháp và thử nghiệm một cách dễ dàng
- Lex đóng vai trò tương tự ở mức từ vựng, thay thế nhiều đoạn mã nhàm chán bằng một tập quy tắc
- Lex và Yacc là những ví dụ về ngôn ngữ pattern-action, và đã tạo nên một vòng lặp tích cực cho nhau
-
Lời khuyên cho những người trẻ quan tâm đến thiết kế ngôn ngữ lập trình
- Ông khuyên hãy thử thiết kế và hiện thực một ngôn ngữ chuyên dụng nhỏ
- Việc này rất thú vị, hữu ích và dễ hơn nhiều so với việc tạo ra một ngôn ngữ thay thế cho Rust hay C++
- Ông khuyến nghị tìm những công việc có thể tự động hóa rồi tạo một trình biên dịch đơn giản cùng runtime cho chúng
- Bài viết liên quan do Jon Bentley viết từ lâu vẫn còn nguyên giá trị đến nay
-
Nguồn ảnh
- Wikimedia Commons
-
Tóm tắt của GN⁺
- Tiến sĩ Brian Kernighan là một nhân vật quan trọng đã đóng góp cho sự phát triển của UNIX và ngôn ngữ C, đồng thời là người tạo ra ngôn ngữ AWK với mảng kết hợp và mô hình pattern-action
- Mảng kết hợp là một cấu trúc dữ liệu mạnh hiện được sử dụng trong phần lớn các ngôn ngữ lập trình
- Với các lập trình viên trẻ, việc thiết kế và hiện thực một ngôn ngữ chuyên dụng nhỏ là rất hữu ích
- Yacc và Lex là những công cụ giúp đơn giản hóa việc phân tích ngữ pháp và từ vựng, đồng thời là các ví dụ tốt về ngôn ngữ pattern-action
1 bình luận
Ý kiến trên Hacker News