0
0
Lập trình
NM

Xây dựng Compiler trong 5 Ngày với Claude AI

Đăng vào 8 tháng trước

• 4 phút đọc

Xây dựng một ngôn ngữ lập trình, compiler và máy ảo với Claude trong 5 ngày

Hầu hết mọi người mất nhiều năm để xây dựng một ngôn ngữ lập trình. Tuy nhiên, tôi đã hoàn thành điều đó trong 5 ngày, với Claude AI làm đồng sáng tạo của tôi.

Tại sao lại như vậy?

Maitento là nền tảng điều phối AI mà tôi đã xây dựng trong vài tháng qua. Nó được phát triển bằng C# và được thiết kế để giải quyết một số vấn đề mà chúng tôi gặp phải với các nền tảng AI khác. Tôi không muốn kết nối Langgraph, MCP proxies, và hàng tá nền tảng AI khác nhau. Tôi cần một thứ cho phép chúng tôi phát triển nhanh chóng các quy trình AI cho doanh nghiệp.

Một trong những vấn đề lớn là quy trình làm việc. Mức độ trừu tượng cho phép chúng tôi lập trình quy trình AI. Ví dụ, chúng tôi có thể gọi một mô hình AI, thực hiện một số thao tác JSON trên nó, đưa vào một quy trình tạo mã, lấy đầu ra và kích hoạt một webhook.

Hành trình bắt đầu

Ngày đầu tiên: Ngôn ngữ Assembly, Bytecode và Máy ảo

Tôi đã hiểu cơ bản về một compiler. Mặc dù chưa từng viết một cái nào, nhưng tôi hiểu cách hoạt động của các kiến trúc CPU, đã từng tìm hiểu về assembly và biết đến cây cú pháp trừu tượng. Tôi đã sử dụng .Net trong 20 năm và hiểu cách hoạt động của IL và VM trong .Net. Nhưng tôi chưa bao giờ phát triển một hệ thống như vậy.

Tôi đã khởi động một cuộc trò chuyện nhanh 30 phút với ChatGPT để xác nhận các khái niệm cơ bản về cấu trúc assembly, các hoạt động cơ bản và một phương pháp phát triển. Tôi đã đặt ra một số câu hỏi và quyết định bắt tay vào việc thực hiện.

Tôi đã khởi động Claude và sử dụng nó liên tục trong năm ngày, nhưng ít khi để nó viết một dòng mã. Nó ở đó như một đồng sáng tạo và lập trình viên hỗ trợ.

Ngày thứ hai: SysCalls và Phân tích cú pháp Compiler

Ngày thứ hai tôi dành để hoàn thành một số syscalls mới và tái cấu trúc một số vấn đề mà tôi đã gặp phải. Sau đó, tôi bắt đầu với compiler.

Buổi tối hôm đó là lúc tôi thực hiện phân tích token và định nghĩa các nút AST. Tôi đã sử dụng một số mã mà tôi đã dùng trước đó trong ngôn ngữ BASIC đơn giản của mình để bắt đầu với tokenizer và sau đó phác thảo cấu trúc nút cao cấp mà tôi sẽ sử dụng để xây dựng AST.

Ngày thứ ba: Tạo AST

Đây là lúc niềm vui bắt đầu; với việc phân tích cú pháp AST từ các token. Đây là nơi giới hạn kiến thức của tôi thực sự xuất hiện và nơi Claude bắt đầu tỏa sáng.

Chúng tôi đã thảo luận về các phương pháp phân tích. Mặc dù không đồng ý nhiều, nhưng tôi đã tìm ra vấn đề khi các token bị mất trong quá trình phân tích khối mã. Tôi khá chắc chắn vấn đề là chúng tôi cần tạo ra các trình đọc token mới khi đi xuống theo đệ quy và chỉ tiến hành khi chúng tôi cảm thấy hài lòng.

Các thực tiễn tốt nhất khi xây dựng Compiler

  • Lên kế hoạch rõ ràng: Trước khi bắt đầu, hãy viết ra cấu trúc và các thành phần bạn cần xây dựng.
  • Kiểm tra thường xuyên: Thực hiện kiểm tra từng bước để phát hiện lỗi sớm.
  • Tài liệu hóa quy trình: Ghi lại các quyết định và cách giải quyết vấn đề trong quá trình phát triển.

Các cạm bẫy phổ biến

  • Thiếu kiểm tra đơn vị: Không kiểm tra mã khi phát triển có thể dẫn đến việc phát hiện lỗi muộn.
  • Quá phụ thuộc vào AI: Mặc dù AI có thể hỗ trợ, nhưng bạn vẫn cần có kiến thức vững vàng để đưa ra quyết định đúng đắn.

Mẹo hiệu suất

  • Tối ưu hóa mã: Luôn kiểm tra và tối ưu mã để đảm bảo hiệu suất tốt nhất.
  • Sử dụng công cụ phân tích mã: Các công cụ này giúp phát hiện vấn đề và cải thiện chất lượng mã.

Giải quyết sự cố

  • Ghi lại lỗi: Duy trì một danh sách các lỗi và cách khắc phục chúng sẽ giúp bạn nhanh chóng tìm ra giải pháp cho các vấn đề tương tự trong tương lai.
  • Tìm hiểu từ lỗi: Mỗi lỗi là một cơ hội để học hỏi và cải thiện kỹ năng lập trình.

Kết luận

Dự án này không chỉ về việc thử nghiệm AI và khả năng của nó, mà còn về việc giải quyết một vấn đề kinh doanh thực sự: lập trình các quy trình AI như những công dân hạng nhất bên trong nền tảng điều phối của chúng tôi. Bạn không thể tự mình tạo ra một compiler, nhưng công cụ AI đang mang đến sự thay đổi lớn nhất mà tôi đã thấy trong hơn 30 năm làm lập trình viên.

Hãy tham gia trải nghiệm thử nghiệm ScrumBuddy và khám phá những gì mà công cụ AI nên thực sự mang lại.

Gợi ý câu hỏi phỏng vấn
Không có dữ liệu

Không có dữ liệu

Bài viết được đề xuất
Bài viết cùng tác giả

Bình luận

Chưa có bình luận nào

Chưa có bình luận nào