Tôi có xu hướng đặt câu hỏi tiền đề cơ bản ở đây. Trong khi C và C ++ hoạt động hoàn hảo để viết trình biên dịch, khá nhiều ngôn ngữ khác dường như cũng hoạt động hoàn hảo cho nhiệm vụ này.
Một chút phụ thuộc vào ngôn ngữ bạn đang biên dịch mặc dù. Đối với các ngôn ngữ nhỏ, đơn giản, C và Pascal hoạt động khá độc đáo. Nếu bạn định biên dịch thứ gì đó lớn và phức tạp, trình biên dịch của bạn cũng lớn và phức tạp - trong trường hợp đó, các tính năng bổ sung của C ++ để tổ chức và làm việc với các chương trình lớn hơn rõ ràng có ích. Tuy nhiên, điều đó không thực sự cụ thể đối với việc biên dịch, chỉ là các tính năng hữu ích cho các chương trình lớn hơn nói chung.
Tôi nghĩ rằng nó cũng đáng đề cập đến một điểm khác. Những người mới bắt đầu (dường như) nghĩ về trình biên dịch hầu như thực hiện thao tác văn bản, vì vậy họ nghĩ rằng một cái gì đó như Perl sẽ giúp ích rất nhiều trong việc viết trình biên dịch. Trong thực tế, hầu hết các phần thú vị của quá trình biên dịch không thực sự bắt đầu cho đến khi bạn xây dựng AST. Mặc dù tôi chắc chắn Perl có thể thực hiện công việc một cách hoàn hảo, nhưng khả năng xử lý văn bản của nó cũng không thực sự mang lại lợi thế lớn cho nó (thao tác văn bản chủ yếu nằm ở lexer và các trình tạo lexer cho những thứ như C đều hỗ trợ REs).