• Bài giảng Nguyên lý ngôn ngữ lập trình - Chương 6: Kiểm tra kiểuBài giảng Nguyên lý ngôn ngữ lập trình - Chương 6: Kiểm tra kiểu

    6.1. Viết các biểu thức kiểu cho các kiểu dữ liệu sau đây: a) Một mảng của các con trỏ có kích thước từ 1 đến 100, trỏ đến đối tượng các số thực. b) Mảng 2 chiều của các số nguyên, hàng có kích thước từ 0 đến 9, cột có chỉ số từ -10 đến 10. c) Các hàm mà miền định nghĩa là các hàm với các đối số nguyên, trị là con trỏ trỏ đến các số nguyên và...

    pdf7 trang | Chia sẻ: huongthu9 | Ngày: 18/08/2021 | Lượt xem: 482 | Lượt tải: 0

  • Bài giảng Nguyên lý ngôn ngữ lập trình - Chương 5: Dịch trực tiếp cú phápBài giảng Nguyên lý ngôn ngữ lập trình - Chương 5: Dịch trực tiếp cú pháp

    5.4. Văn phạm sau đây sinh ra các biểu thức có được khi áp dụng một toán tử số học + cho các hằng số nguyên và số thực. Khi 2 số nguyên được công lại, kiểu kết quả là kiểu nguyên, ngược lại nó là kiểu số thực. E → E + T | T T → num • num | num a) Ðưa ra một định nghĩa trực tiếp cú pháp xác định kiểu của mỗi biểu thức con. b) Mở rộng định nghĩ...

    pdf20 trang | Chia sẻ: huongthu9 | Ngày: 18/08/2021 | Lượt xem: 469 | Lượt tải: 0

  • Bài giảng Nguyên lý ngôn ngữ lập trình - Chương 4: Phân tích cú phápBài giảng Nguyên lý ngôn ngữ lập trình - Chương 4: Phân tích cú pháp

    4.6. Thiết kế văn phạm cho các ngôn ngữ sau. Ngôn ngữ nào là chính quy? a) Tập tất cả các chuỗi 0 và 1 sao cho mỗi số 0 có ít nhất một số 1 ở ngay sau nó. b) Các chuỗi 0 và 1 với số số 0 bằng số số 1. c) Các chuỗi 0 và 1 với số số 0 không bằng số số 1. d) Các chuỗi 0 và 1 không chứa chuỗi 001 như chuỗi con. 4.7. Cho văn phạm G chứa các luật si...

    pdf51 trang | Chia sẻ: huongthu9 | Ngày: 18/08/2021 | Lượt xem: 474 | Lượt tải: 0

  • Bài giảng Nguyên lý ngôn ngữ lập trình - Chương 3: Phân tích từ vựngBài giảng Nguyên lý ngôn ngữ lập trình - Chương 3: Phân tích từ vựng

    Có nhiều công cụ để xây dựng bộ phân tích từ vựng dựa vào các biểu thức chính quy. Lex là một công cụ được sử dụng rộng rãi để tạo bộ phân tích từ vựng. Trước hết đặc tả cho một bộ phân tích từ vựng được chuẩn bị bằng cách tạo ra một chương trình lex.l trong ngôn ngữ lex. Trình biên dịch Lex sẽ dịch lex.l thành một chương trình C là lex.yy.c. C...

    pdf18 trang | Chia sẻ: huongthu9 | Ngày: 18/08/2021 | Lượt xem: 452 | Lượt tải: 0

  • Bài giảng Nguyên lý ngôn ngữ lập trình - Chương 2: Một trình biên dịch đơn giảnBài giảng Nguyên lý ngôn ngữ lập trình - Chương 2: Một trình biên dịch đơn giản

    2.6. Yêu cầu như bài 5 cho biểu thức số học ở dạng hậu tố sang dạng trung tố. 2.7. Xây dựng một lược đồ dịch trực tiếp cú pháp để xác định rằng các dấu ngoặc trong một chuỗi nhập là cân bằng. 2.8. Xây dựng lược đồ dịch trực tiếp cú pháp để dịch phát biểu FOR của ngôn ngữ C có dạng như sau: FOR ( exp1; exp2; exp3 ) Stmt sang dạng mà máy ảo kiểu ...

    pdf37 trang | Chia sẻ: huongthu9 | Ngày: 18/08/2021 | Lượt xem: 404 | Lượt tải: 0

  • Bài giảng Nguyên lý ngôn ngữ lập trình - Chương 1: Giới thiệu về sự biên dịchBài giảng Nguyên lý ngôn ngữ lập trình - Chương 1: Giới thiệu về sự biên dịch

    1. Kỳ đầu (Front End) Kỳ đầu bao gồm các giai đoạn hoặc các phần giai đoạn phụ thuộc nhiều vào ngôn ngữ nguồn và hầu như độc lập với máy đích. Thông thường, nó chứa các giai đoạn sau: Phân tích từ vựng, Phân tích cú pháp, Phân tích ngữ nghĩa và Sinh mã trung gian. Một phần của công việc tối ưu hóa mã cũng được thực hiện ở kỳ đầu. Front end cũn...

    pdf10 trang | Chia sẻ: huongthu9 | Ngày: 18/08/2021 | Lượt xem: 401 | Lượt tải: 0

  • Bài giảng Ngôn ngữ lập trình nâng cao - Bài 6: Ủy quyền, sự kiện - Nguyễn Xuân HùngBài giảng Ngôn ngữ lập trình nâng cao - Bài 6: Ủy quyền, sự kiện - Nguyễn Xuân Hùng

    Trong một công ty điều hòa không khí, thời gian làm việc từ 9h sáng tới 6h chiều. Quản lý công ty khá mềm dảo và cho phép nhân viên đến làm muộn hơn 1h. Thời gian vào làm việc được hệ thống ghi vào tập tin khi nhân viên đến làm việc. Ứng dụng sử dụng cho việc ghi nhận nhân viên đến làm việc với thông tin thích hợp. Bạn hãy giúp công ty thiết ...

    pdf29 trang | Chia sẻ: huongthu9 | Ngày: 18/08/2021 | Lượt xem: 469 | Lượt tải: 0

  • Bài giảng Ngôn ngữ lập trình nâng cao - Bài 5: Đa luồng - Nguyễn Xuân HùngBài giảng Ngôn ngữ lập trình nâng cao - Bài 5: Đa luồng - Nguyễn Xuân Hùng

    he information stored in the text format would be displayed on a screen as text. This means 'A' will be written as 'A' in the files. Similarly, the number –12345.678 will be written as the string "-12345.678". This means that you can directly display the contents of the file on the screen. Thread ưu tiên là thuộc tính chỉ ra độ ưu tiên của m...

    pdf33 trang | Chia sẻ: huongthu9 | Ngày: 18/08/2021 | Lượt xem: 405 | Lượt tải: 0

  • Bài giảng Ngôn ngữ lập trình nâng cao - Bài 4.2: Ngoại lệ - Nguyễn Xuân HùngBài giảng Ngôn ngữ lập trình nâng cao - Bài 4.2: Ngoại lệ - Nguyễn Xuân Hùng

    Chúng ta chỉ có thể ném một đối tượng nếu các kiểu đối tượng hoặc dẫn xuất trực tiếp hoặc gián tiếp từ System.Exception. Chúng ta có thể sử dụng câu lệnh throw để phát sinh một ngoại lệ riêng. Một thread được định nghĩa như một phần xử lý của chương trình. Tuần tự câu lệnh được xử lý để định nghĩa một luồng điều khiển duy nhất. Một chương t...

    pdf23 trang | Chia sẻ: huongthu9 | Ngày: 18/08/2021 | Lượt xem: 412 | Lượt tải: 0

  • Bài giảng Ngôn ngữ lập trình nâng cao - Bài 4.1: Đọc, ghi tập tin - Nguyễn Xuân HùngBài giảng Ngôn ngữ lập trình nâng cao - Bài 4.1: Đọc, ghi tập tin - Nguyễn Xuân Hùng

    Một lỗi logic xảy ra khi một ứng dụng dịch và chạy chính xác nhưng không đưa ra kết quả mong muốn. Các điều kiện ngoại lệ xuất hiện khi một hoạt động không thể hòa thành bình thường trong quá trình xử lý câu lệnh C# và các biểu thức

    pdf25 trang | Chia sẻ: huongthu9 | Ngày: 18/08/2021 | Lượt xem: 409 | Lượt tải: 0