Trang 2
Chương I: Giới thiệu Chương trình dịch Nguyên lý cơ bản của Ngôn ngữ lập trình và Thiết kế cấu tạo của chương trình dịch 2 goupee.com fb.com/groups/goupee
Chương I: Giới thiệu Chương trình dịch Nguyên lý cơ bản của Ngôn ngữ lập trình và Thiết kế cấu tạo của chương trình dịch 2 goupee.com fb.com/groups/goupee
Chương trình dịch Vấn đề Người dùng:sử dụng basic, pascal ,c,java…… Ngôn ngữ cấp cao Diễn Biên dịch dịch Chỉ hiểu được mã nhị phân biểu thị chỉ lệnh và dữ liệu 3 3 goupee.com fb.com/groups/goupee
• Chú trọng đến nguyên lý và kỹ thuật liên quan. • Môn học về Chương trình dịch cung cấp phương pháp luận giải quyết những vấn để của lĩnh vực Khoa học máy tính ở cấp độ vĩ mô. Đặt vấn đề, giải quyết vấn đề •Môn học này có sự kết hợp của Lý luận và thực hành. 4 4 goupee.com fb.com/groups/goupee
Nội dung môn học Chương I: Giới thiệu Chương II: Văn phạm phi ngữ cảnh Chương III Phân tích từ vựng Chương IV Phân tích ngữ pháp Chương V Phân tích ngữ nghĩa và sinh mã trung gian Chương VI Sinh mã mục tiêu. 5 goupee.com fb.com/groups/goupee
§1.1 Lịch sử phát triển của Kỹ thuật dịch 1820—1850Charles Babbage người Mỹ phát mính ra chiếc máy vi tính đầu tiên. Những năm 30 của thế kỷ này nhà toán học người Anh Turing đã đề xuất ra khái niệm máy Turing. Máy Turing trở thành mô hình toán học của máy tính hiện đại. 1994 A.Aiken của trường Đại học Haward đã thiết kế thành công máy MARKI với khả năng tự động điều kiển đọc mã, trở thành chiếc máy tự động đầu tiên trên thế giới. Năm 1946 Chiếc máy tính điện tử đầu tiên (ENIAC) ra đời tại Mỹ. 6 goupee.com fb.com/groups/goupee
Sự hình thành ngôn ngữ. Ngôn ngữ máy và Hợp ngữ Ngôn ngữ máy -Ngôn ngữ ký hiệu hợp ngữ - Ngôn ngữ Macro FORTRAN、ALGOLvà COBOL FORTRAN(FORmulaTRANslation) Ngôn ngữ diễn dịch công thức, là ngôn ngữ cấp cao đầu tiên ra đời vào những năm 50 1954-1959 FORTRAN0Sự ra đời của FORTRAN 0 và Hệ thống biên dịch đánh dấu sự hình thành của kỹ thuật dịch. 7 goupee.com fb.com/groups/goupee
Sự hình thành ngôn ngữ. ALGOL(ALGOkithmic Language) Ngôn ngữ Đại số toán học ALGOL58 ALGOL60 SỬ dụng ký pháp BNF: hình thức hóa ngôn ngữ, tạo tiền đề cho lĩnh vực nghiên cứu về phân tích ngữ pháp của ngôn ngữ. COBOL Đề xuất phương pháp mô tả dữ liệu độc lập với máy tính cụ thể, tạo tiền đề phát triển của hệ quản trị cơ sở dữ liệu. 8 goupee.com fb.com/groups/goupee
Sự hình thành ngôn ngữ. PASCAL Do một tiểu nhóm của ALGOL60 phát minh chủ yếu dùng vào việc giảng dạy, và viết một số phần mềm hệ thống, PASCAL kế thừa ưu việt của ALGO60. PASCAL có một vai trò rất lớn trong lịch sử phát triển của ngôn ngữ lập trình hướng cấu trúc. Ada PROLOG IDE(Interactive Development Environment) 9 goupee.com fb.com/groups/goupee
Sự hình thành ngôn ngữ. SIMULA 67 Từ ALGOL60 phát triển lên,phát triển class đánh dấu sự phát triển của dữ liệu trừu tượng Smalltalk 72-80 Kiến tạo giao diện người dùng: View Đơn vị của chương trình là: Class. Đánh dấu sự thành thục của lập trình hướng đối tượng. C++ Cấu trúc và hướng đối tượng kết hợp tòan mỹ.Hệ thông biên dịch của C tính năng cao nhưng tính oan toàn còn hạn chế. Java Thế hệ ngôn ngữ phát triên cho Web, tính an toàn được nâng cao (so sánh với C) 10 goupee.com fb.com/groups/goupee
§1.2 Ngôn ngữ lập trình • Ngôn ngữ cấp thấp: Phụ thuộc hệ máy Ngôn ngữ máy hợp ngữ • Ngôn ngữ cấp cao Không phụ thuộc hệ máy cụ thể • FORTRAN——Ngôn ngữ thuật toán • BASIC——Ngôn ngữ tương tác • PASCAL——Ngôn ngữ cấu trúc • SQL —— Ngôn ngữ tìm kiếm CSDL • • Ngôn ngữ cấp trung C Có chức năng của ngôn ngữ cấp thấp và cấp cao. 11 11 goupee.com fb.com/groups/goupee
1.Ưu điểm của Ngôn ngữ cấp cao Hiệu suất cao (Lập trình), tính tương thích tốt Không cần quan tâm hệ máy cụ thể, như cấp phát bộ nhớ. Có cấu trúc dữ liệu phong phú Gần gũi ngôn ngữ tự nhiên, dễ học dễ nắm bắt. 12 12 goupee.com fb.com/groups/goupee
2. Định nghĩa của Ngôn ngữ lập trình cấp cao. Ngôn ngữ lập trình cấp cao, nói một cách đơn giản là một ngôn ngữ lập trình giúp người dùng dễ hiểu, nắm bắt. Hoặc theo cách khác có đầy đủ đặc điểm sau về: phương pháp biểu đạt, quy ước, quy tắc. 13 13 goupee.com fb.com/groups/goupee
2.Định nghĩa ngôn ngữ lập trình (tiếp) (1) Không yêu cầu người lập trình phải nắm được những tri thức liên quan hệ máy cụ thể (Thanh ghi, dữ liệu biểu thị, I/O).Đặc trưng này không xét đến hiệu năng. (2) Độc lập với bất kỳ hệ máy cụ thể nào, dễ sử dụng để viết ra chương trình có thể chạy trên nhiều hệ máy khác nhau. (3) Mã nguồn được viết bằng ngôn ngữ lập trình cấp cao có thể được dịch thành ngôn ngữ máy chạy được trên các hệ máy khác nhau tương ứng. (4) Ngôn ngữ cấp cao có thể mô tả vấn đề một cách tự nhiên, là một ngôn ngữ hướng giải pháp. 14 14 goupee.com fb.com/groups/goupee
§1.3 Chương trình biên dịch, Chương trình Hợp Ngữ, Chương trình Diễn dịch 1.CT Phiên dịch Là một chương trình có thể phiên dịch mã CT viết bằng ngôn ngữ A sang mã CT tương đương viết bằng ngôn ngữ B. Ngôn ngữ A: Ngôn ngữ nguồn của. Ngôn ngữ B: Ngôn ngữ mục tiêu. Mã CT viết bằng ngôn ngữ nguồn: Mã nguồn. Mã CT viết bằng ngôn ngữ mục tiêu: Mã mục tiêu. 15 goupee.com fb.com/groups/goupee
NN CT NN Máy Cấp cao phiên dịch Hợp ngữ NN nguồn NN mục tiêu CT CT nguồn Phiên dịch CT mục tiêu Tương đương Logic 16 goupee.com fb.com/groups/goupee
2. Chương trình Biên dịch Nếu ngôn ngữ nguồn là ngôn ngữ cấp cao, ngôn ngữ mục tiêu là ngôn ngữ cấp thấp (ngôn ngữ máy, hợp ngữ), thì CT phiên dịch gọi là CT Biên dịch 3. Chương trình Hợp ngữ Nếu ngôn ngữ nguồn là Hợp ngữ, ngôn ngữ mục tiêu là ngôn ngữ Máy, thì CT phiên dịch gọi là CT Hợp dịch 17 goupee.com fb.com/groups/goupee
Thuyết minh: CT Biên dịch, Ngôn ngữ nguồn và Máy vi tính là những khái niệm liên quan mật thiết với nhau: — Ngôn ngữ nguồn khác nhau có CT Biên dịch khác nhau. — Một ngôn ngữ nguồn có thể có nhiều CT Biên dịch khác nhau. Giai đoạn biên dịch sinh ra CT mục tiêu không phải CT mã máy, mà là CT Hợp ngữ, quá trình thực thi CT nguồn phân thành 3 giai đoạn: Biên dịch, Hợp dịch, Thực thi (chạy) 18 goupee.com fb.com/groups/goupee
Computer CT mục tiêu Dữ liệu Kết quả nhập CT Chạy được Giai đoạn thực thi 20 goupee.com fb.com/groups/goupee
Hiển thị 20 trang đầu. Tải tài liệu để xem đầy đủ.
Chưa có bình luận nào. Hãy là người đầu tiên!
Bình luận (0)
Chưa có bình luận nào. Hãy là người đầu tiên!