Giáo trình Môn chương trình dịch được chia thành 9 chương, phần 1 sách gồm 4 chương đầu: Tổng quan về ngôn ngữ lập trình và chương trình dịch, phân tích từ vựng, phân tích cú pháp và các phương pháp phân tích cơ bản. Mục đích của môn học chương trình dịch này giúp sinh viên sẽ học các thuật toán phân tích ngữ pháp và các kỹ thuật dịch, hiểu được các thuật toán xử lý ngữ nghĩa và tối ưu hóa quá trình dịch. | Khoa công nghệ thông tin - Đại học Thái Nguyên Bộ môn công nghệ phần mềm GIÁO TRÌNH MÔN CHƯƠNG TRÌNH DỊCH (Compiler Construction) Thái nguyên, 2007 LỜI NÓI ĐẦU Môn học chương trình dịch là môn học của ngành khoa học máy tính. Trong suốt thập niên 50, trình biên dịch được xem là cực kỳ khó viết. Ngày nay, việc viết một chương trình dịch trở nên đơn giản hơn cùng với sự hỗ trợ của các công cụ khác. Cùng với sự phát triển của các chuyên ngành lý thuyết ngôn ngữ hình thức và automat, lý thuyết thiết kế một trình biên dịch ngày một hoàn thiện hơn. Có rất nhiều các trình biên dịch hiện đại, có hỗ trợ nhiều tính năng tiện ích khác nữa. Ví dụ: bộ visual Basic, bộ studio của Microsoft, bộ Jbuilder, netbean, Delphi Tại sao ta không đứng trên vai những người khổng lồ đó mà lại đi nghiên cứu cách xây dựng một chương trình dịch nguyên thuỷ. Với vai trò là sinh viên công nghệ thông tin ta phải tìm hiểu nghiên cứu xem một chương trình dịch thực sự thực hiện như thế nào? Mục đích của môn học này là sinh viên sẽ học các thuật toán phân tích ngữ pháp và các kỹ thuật dịch, hiểu được các thuật toán xử lý ngữ nghĩa và tối ưu hóa quá trình dịch. Yêu cầu người học nắm được các thuật toán trong kỹ thuật dịch. Nội dung môn học : Môn học Chương trình dịch nghiên cứu 2 vấn đề: - Lý thuyết thiết kế ngôn ngữ lập trình ( cách tạo ra một ngôn ngữ giúp người lập trình có thể đối thoại với máy và có thể tự động dịch được). - Cách viết chương trình chuyển đổi từ ngôn ngữ lập trình này sang ngôn ngữ lập trình khác. Học môn chương trình dịch giúp ta: - Nắm vững nguyên lý lập trình: Hiểu từng ngôn ngữ, điểm mạnh điểm yếu của nó => chọn ngôn ngữ thích hợp cho dự án của mình. Biết chọn chương trình dịch thích hợp (VD với pascal dưới Dos: chương trình dịch là turbo pascal. Đối với ngôn ngữ C: chọn turbo C hay bolean C? Bolean C tiện lợi, dễ dùng, turbo C sinh mã gọn, không phải lo vè vấn đề tương thích với hệ điều hành nhưng khoá dùng hơn). Phân biệt được công việc nào do chương trình dịch thực .