ĐỒ án môn học tìm hiểu quá trình phát triển của hai ngôn ngữ lập trình pascal và c

39 25 0
ĐỒ án môn học tìm hiểu quá trình phát triển của hai ngôn ngữ lập trình pascal và c

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

ĐỒ ÁN MƠN HỌC: Tìm hiểu q trình phát triển hai ngơn ngữ lập trình Pascal C Mơn học: Ngun lý phương pháp lập trình - CS111.K21.KHCL Giảng viên hướng dẫn: Trịnh Quốc Sơn Thành viên thực hiện: - Nguyễn Hữu Nghĩa – 18521144 - Nguyễn Huỳnh Nhi – 18521204 Tóm tắt nội dung I Tìm hiểu trình phát triển Pascal A B C D E F G Ngôn ngữ PASCAL tiền đề cho đời PASCAL Những đặc điểm PASCAL phiên PASCAL Hệ thống PASCAL – P OBJECT PASCAL – Hỗ trợ lập trình hướng đối tượng TURBO PASCAL – trình biên dịch IDE PASCAL tiếng PASCAL chuẩn hóa PASCAL thời điểm Tóm tắt nội dung II Tìm hiểu trình phát triển C A B C D E F G H J Quá trình phát triển ban đầu ngơn ngữ lập trình C K&R C đời Chuẩn ANSI C ISO C C99 C11 C18 C2x Quan hệ với C++ Các trình biên dịch quan trọng III Tài liệu tham khảo I Tìm hiểu trình phát triển Pascal A Ngôn ngữ PASCAL tiền đề cho đời ngôn ngữ - Được Niklaus Wirth phát triển vào năm 1970 - Được đặt tên theo nhà toán học, triết gia nhà vật lý người Pháp Blaise Pascal - Được phát triển theo khuôn mẫu ngơn ngữ lập trinh ALGOL 60 - Thích hợp với kiểu lập trinh cấu trúc cấu trúc liệu - Ban đầu phát triển đề xuất cho cải tiến phiên ALGOL X, sau phát triển riêng biệt thành ngơn ngữ lập trình B Những đặc điểm PASCAL phiên PASCAL Những điểm - Ngơn ngữ lập trình mang tính hiệu cao dựa lập trình có cấu trúc - Là ngơn ngữ lập trình strong typing - Cho phép định nghĩa hàm hay chương trinh (thủ tục) độ sâu - Trở nên thành công vào năm 1970 - Được giảng dạy trường đại học vào năm 1980 - Dần bị thay C vào cuối năm 1980 đầu 1990 B Những đặc điểm PASCAL phiên PASCAL Những phiên Pascal - UCSD Pascal, 1997, cho phép chuyển sang tảng khác - Object Pascal, 1985, thiết kế hỗ trợ lập trinh hướng đối tượng, sau phát triển thành Delphi - Các biến thể Pascal thường sử dụng lĩnh vực từ dự án nghiên cứu trò chơi máy tinh cá nhân hệ thống nhúng C Hệ thống PASCAL – P - Một công cụ chuyển mã viết Zurich bao gồm trình biên dịch sang “mã máy ảo” giả lập cho loại máy gọi P – system (Hệ thống Pascal – P) - Nhóm gồm: Pascal – P1, Pascal – P2, Pascal – P3, Pascal – P4 - Pascal – P3 phát triển với khả tương thích ngược với Pascal – P2 Pascal – P4 - Pascal – P5 tạo sử dụng đầy đủ ngơn ngữ Pascal có khả tương thích ISO 7185 C Hệ thống PASCAL – P - Kenneth Bowles sử dụng Pascal – P2 để tạo UCSD p-system Đây ba hệ điều hành có sẵn phiên IBM PC mắt - Vào đầu năm 1980, Watcom Pascal phát triển, cho hệ thống IBM 370 - Vào năm 1990, Pascal sử dụng thiết bị Đại học George Mason để dạy lập trinh máy tinh 10 D C99 Các tính quan trọng phiên C99 + Một số tính giống phần mở rộng cho C90 trình biên dịch GNU cung cấp, chẳng hạn macro có số lượng đối số thay đổi + C99 cho phép sử dụng số tinh vi khởi tạo định + Con trỏ hạn chế thêm vào C99 + Có số từ khóa định danh + Kỹ thuật bình luận + Hàm nội tuyến + Chiều dài mảng thay đổi + Phần tử mảng linh hoạt + Thêm vào cấu trúc Compound Literals 25 D C99 Các từ khóa mới: C99 thêm từ khóa mới, tính quan trọng C99 + complex: Được sử dụng để khai báo biến kiểu số phức để lưu trữ số phức toán học Dùng thư viện + Imaginary: Được sử dụng để khai báo biển kiểu ảo lưu trữ số ảo toán học Dùng thư viện + Inline: Được sử dụng để đề nghị với chương trình biên dịch hàm cụ thể đối tượng việc khai triển nội tuyến (inline expansion) + restrict: Chỉ sử dụng cho trỏ Một trỏ đủ điều kiện với từ khóa “restricted” gọi “restricted pointer” 26 D C99 Ngồi ra, cịn có số thay đổi sau: + Khai báo biến: Việc khai báo biến điểm chương trình dấu ngoặc nhọn hàm main() hợp lệ + Độ dài mảng biến: C99 cho phép khai báo kích thước mảng biến số nguyên biểu thức số nguyên hợp lệ Đây gọi mảng chiều dài biến + Kỹ thuật bình luận: C99 cho phép đưa bình luận cách sử dụng dấu gạch chéo kép(//) thực C++ trình biên dịch C khơng hiển thị lỗi khơng thể xảy ANSI C Ví dụ: //Đây bình luận 27 E C11 - Là tên khơng thức cho tiêu chuẩn ISO/IEC 9899: 2011 Nó thay C99 thay C18 - Bản dự thảo cuối cùng, N1570, xuất vào tháng năm 2011 Tiêu chuẩn thông qua đánh giá dự thảo cuối vào ngày 10 tháng 10 năm 2011 ISO thức phê chuẩn xuất dạng ISO / IEC 9899: 2011 vào ngày tháng 12 năm 2011 - C11 chủ yếu chuẩn hóa tính hỗ trợ trình biên dịch đại phổ biến bao gồm mơ hình nhớ chi tiết để hỗ trợ tốt cho nhiều luồng thực thi Do khả tuân thủ C99 bị chậm trễ, C11 làm cho số tính định tùy chọn, để giúp tuân thủ tiêu chuẩn ngôn ngữ cốt lõi dễ dàng 28 F.C18 - Khái niệm: C18 (trước gọi C17 ) tên khơng thức cho ISO / IEC 9899: 2018 , [1] tiêu chuẩn gần cho ngơn ngữ lập trình C , xuất vào tháng năm 2018 Nó thay C11 (tiêu chuẩn ISO / IEC 9899: 2011) Thay đổi so với C11: C18 giải khiếm khuyết C11 mà khơng giới thiệu tính _STDC_VERSION_ vĩ mô tăng lên giá trị 201710L Trình biên dịch hỗ trợ: + GCC 8.1.0 + LLVM Clang 7.0.0 + IAR EWARM v8.40.1 29 G C2x - Khái niệm: tên khơng thức cho lần sửa đổi tiêu chuẩn ngôn ngữ C (sau C18) Dự định áp dụng thức tiêu chuẩn sửa đổi vào cuối năm 2021 xuất vào năm 2022 Tính đề xuất: + Đối số đơn _Static_assert + Cú pháp thuộc tính kiểu C++11 + Số học dấu phẩy động mở rộng, số học dấu phẩy động thập phân + memccpy(), strdup(), strndup() tương tự hàm tìm thấy phần mở rộng POSIX SVID C + Loại char8_t, mạch với char16_t char32_t thêm vào C11 30 G C2x - Nguyên tắc mới: + Nó bổ sung nguyên tắc cho “Nguyên tắc gốc ” C: + Giao diện lập trình ứng dụng (API) nên tự ghi lại tài liệu Cụ thể, thứ tự tham số khai báo hàm nên xếp cho kích thước mảng xuất trước mảng Mục đích phép ký hiệu Mảng có độ dài thay đổi (VLA) sử dụng Điều không làm cho mục đích mã rõ ràng người đọc mà cịn giúp phân tích tĩnh dễ dàng Bất kỳ API thêm vào Tiêu chuẩn nên xem xét điều + Trình biên dịch hỗ trợ: Clang 9.0, GCC compiler has -std=c2x 31 H Quan hệ với C++ C++ nguyên kết thừa từ C Mặc dù vậy, chương trình C hợp lệ C++ Vì hai ngôn ngữ độc lập, số lượng không tương thích hai ngơn ngữ tăng lên Phiên cuối C99 tạo thêm nhiều tính xung đột (giữa C C++) Các khác tạo khó khăn để viết chương trình thư viện đẻ dịch hoạt động xác hai loại mã C hay C++, đồng thời gây nhầm lẫn cho người lập trình dùng hai ngơn ngữ Sự chênh lệch gây khó khăn cho ngơn ngữ tiếp thu tính ngơn ngữ 32 H Quan hệ với C++ Những khác bản, không kể mở rộng thêm vào C++ lớp, tiêu bản, không gian tên, tải, hai ngôn ngữ là: + inline — hàm inline có giá trị tồn cục C++ có giá trị phạm vi tập tin C + Từ khóa bool C99 có riêng tập tin tiêu dề Các chuẩn C trước không định nghĩa kiểu boolean nhiều phương pháp khơng tương thích dùng để mô kiểu boolean + Các ký tự (được đặt dấu ') có độ lớn int C có độ lớn char C++ Mặc dù vậy, C hàng không vượt giá trị char, việc chuyển đổi kiểu 33 (char)'a' hồn tồn an tồn H Quan hệ với C++ + Trong C++, trình dịch tự động tạo "thẻ" cho struct, union hay enum, vậy, struct S {}; C++ tương đương với typedef struct S {} S; C + C99 tiếp thu số tính mà xuất C++ Trong số là: * Bắt khai báo nguyên mẫu hàm * Thêm từ khóa inline * Hủy bỏ "hiểu ngầm" trả có kiểu int 34 J.Các trình biên dịch quan trọng: Những trình dịch C ngày thương cung cấp kèm chung với C++ Những sản phẩm trình dịch bán phổ biến thị trường thường cung cấp thêm nhiều công cụ trợ giúp cho người lập trình IDE, debugger, Các trình biên dịch phổ biến: GCC,Turbo C++, Borland C/C++,Microsoft C/C++ … 35 III Tài liệu tham khảo 36 A Tài liệu tham khảo Pascal + Niklaus Wirth, 1976, Algorithms + Data Structures = Programs + Marco Cantù, 2017, Essential Pascal + Charles Babbage Institute, 2004, An Interview with John Brackett and Doug Ross + Gibson, Steve (May 8, 1989) "Borland and Microsoft Enter the ObjectOriented Pascal Ring" Infoworld p 28 + Lischner, Ray (2000) Delphi in a nutshell: a desktop quick reference (1st ed.) + Intersimone, David (2000-02-01) "Antique Software: Turbo Pascal v1.0" + Intersimone, David (2002-02-21) "Antique Software: Turbo Pascal v5.5“ + N Wirth, M Broy, ed, and E Denert, ed, 2002, Pascal and its Successors in Software Pioneers: Contributions to Software Engineering Springer-Verlag37 B Tài liệu tham khảo C  Ritchie, Dennis M (March 1993) "The Development of the C Language"  Johnson, S C.; Ritchie, D M (1978) "Portability of C Programs and the UNIX System + Kernighan, Brian W.; Ritchie, Dennis M (February 1978) The C Programming Language (1st ed) + ISO/IEC 9899:1990/AMD 1:1995 Programming languages — C — Amendment 1: C Integrity + Seebach, Peter (24 March 2004) "Open source development using C99" + John Benito, Convener "C - The C1X Charter" + "ISO/IEC 9899:2018 - Information technology Programming languages C" + Michael Larabel(14 May 2019 ) "LLVM Clang 9.0 Picks Up Initial C2x Language Mode“ + B.Stroustrup (July 2002) "C and C++: Siblings The C/C++ Users Journal “ + O’Regan, Gerard(September 24, 2015) “Pillars of computing: a compendium of select, 38 pivotal technology firms.” Thank You!!! 39 ... K&R C đời Chuẩn ANSI C ISO C C99 C1 1 C1 8 C2 x Quan hệ với C+ + C? ?c trình biên dịch quan trọng III Tài liệu tham khảo I Tìm hiểu trình phát triển Pascal A Ngôn ngữ PASCAL tiền đề cho đời ngôn ngữ. .. PASCAL – trình biên dịch IDE PASCAL tiếng PASCAL chuẩn hóa PASCAL thời điểm Tóm tắt nội dung II Tìm hiểu trình phát triển C A B C D E F G H J Quá trình phát triển ban đầu ngơn ngữ lập trình C. .. nội dung I Tìm hiểu trình phát triển Pascal A B C D E F G Ngôn ngữ PASCAL tiền đề cho đời PASCAL Những đ? ?c điểm PASCAL phiên PASCAL Hệ thống PASCAL – P OBJECT PASCAL – Hỗ trợ lập trình hướng đối

Ngày đăng: 18/08/2021, 19:27

Từ khóa liên quan

Mục lục

  • Slide 1

  • Slide 2

  • Tóm tắt nội dung

  • Tóm tắt nội dung

  • Slide 5

  • A. Ngôn ngữ PASCAL và tiền đề cho sự ra đời của ngôn ngữ này

  • B. Những đặc điểm cơ bản của PASCAL và các phiên bản PASCAL

  • B. Những đặc điểm cơ bản của PASCAL và các phiên bản PASCAL

  • C. Hệ thống PASCAL – P

  • C. Hệ thống PASCAL – P

  • D. OBJECT PASCAL – Hỗ trợ lập trình hướng đối tượng.

  • D. OBJECT PASCAL – Hỗ trợ lập trình hướng đối tượng.

  • D. OBJECT PASCAL – Hỗ trợ lập trình hướng đối tượng.

  • Slide 14

  • Slide 15

  • Slide 16

  • F. PASCAL được chuẩn hóa.

  • G. PASCAL trong thời điểm hiện tại.

  • Slide 19

  • A. Quá trình phát triển ban đầu của ngôn ngữ lập trình C

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan