« Home « Kết quả tìm kiếm

trình biên dịch c


Tìm thấy 20+ kết quả cho từ khóa "trình biên dịch c"

Tài liệu trình biên dịch C (ĐH Cần Thơ) part 6

tailieu.vn

Trước tiên, người thiết kế trình biên dịch phải mô tả các mẫu được xác định bằng các biểu thức chính quy, sau đó sử dụng trình biên dịch của Lex để tự động tạo ra một bộ định dạng automata hữu hạn hiệu quả (bộ phân tích từ vựng). Sau khi học xong chương này, sinh viên phải nắm được các kỹ thuật tạo ra bộ phân tích từ vựng. Xây dựng các lược đồ cho các biểu thức chính quy mô tả ngôn ngữ cần được viết trình biên dịch. Sau đó chuyển đổi chúng sang một chương trình phân tích từ vựng..

Tài liệu trình biên dịch C (ĐH Cần Thơ) part 3

tailieu.vn

Chương này giới thiệu một trình biên dịch cho các biểu thức số học đơn giản (trình biên dịch đơn giản) gồm hai kỳ: Kỳ đầu (Front end) và kỳ sau (Back end). Nội dung chính của chương tập trung vào kỳ đầu gồm các giai đoạn: Phân tích từ vựng, phân tích cú pháp và sinh mã trung gian với mục đích chuyển một biểu thức số học đơn giản từ dạng trung tố sang hậu tố.

Tài liệu trình biên dịch C (ĐH Cần Thơ) part 2

tailieu.vn

Phân tích cú pháp là quá trình xác định xem liệu một chuỗi ký hiệu kết thúc (token) có thể được sinh ra từ một văn phạm hay không ? Khi nói về vấn đề này, chúng ta xem như đang xây dựng một cây phân tích cú pháp, mặc dù một trình biên dịch có thể không xây dựng một cây như thế. Tuy nhiên, quá trình phân tích cú pháp (parse) phải có khả năng xây dựng nó, nếu không thì việc phiên dịch sẽ không bảo đảm được tính đúng đắn..

Tài liệu trình biên dịch C (ĐH Cần Thơ) part 1

tailieu.vn

Sau khi học xong chương này, sinh viên phải nắm được một cách tổng quan về nhiệm vụ của các thành phần của một trình biên dịch, mối liên hệ giữa các thành phần đó và môi trường nơi trình biên dịch thực hiện công việc của nó.. [1] Trình Biên Dịch - Phan Thị Tươi (Trường Ðại học kỹ thuật Tp.HCM. TRÌNH BIÊN DỊCH.

Tài liệu trình biên dịch C (ĐH Cần Thơ) part 7

tailieu.vn

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. Chương trình này bao gồm các đặc tả về sơ đồ dịch được xây dựng từ các biểu thức chính quy của lex.l, kết hợp với các thủ tục chuẩn nhận dạng trị từ vựng. Các hành vi kết hợp với biểu thức chính quy trong lex.l là các đoạn chương trình C được chuyển sang lex.yy.c.

Tài liệu trình biên dịch C (ĐH Cần Thơ) part 25

tailieu.vn

Nhưng bù lại, ta có sự mềm dẻo về việc biên dịch các chương trình con riêng rẽ và có thể gọi một chương trình con đã được biên dịch trước đó từ một module đối tượng. Nếu mã đích không tự động tái định vị địa chỉ, trình biên dịch phải cung cấp thông tin về tái định cho bộ tải (loader) để liên kết các chương trình đã được biên dịch lại với nhau.. Lựa chọn chỉ thị. Tập các chỉ thị của máy đích sẽ xác định tính phức tạp của việc lựa chọn chỉ thị.

Tài liệu trình biên dịch C (ĐH Cần Thơ) part 4

tailieu.vn

Ðoạn chương trình có thể được viết lại như sau : expr. thêm vào ký tự xuống hàng. PHÂN TÍCH TỪ VỰNG (Lexical Analysis). Bây giờ chúng ta thêm vào phần trước trình biên dịch một bộ phân tích từ vựng để đọc và biến đổi dòng nhập thành một chuỗi các từ tố (token) mà bộ phân tích cú pháp có thể sử dụng được. Nhắc lại rằng một chuỗi các ký tự hợp thành một token gọi là trị từ vựng (lexeme) của token đó.. Trước hết ta trình bày một số chức năng cần thiết của bộ phân tích từ vựng..

Tài liệu trình biên dịch C (ĐH Cần Thơ) part 8

tailieu.vn

Phần lớn nội dung của chương trình bày các phương pháp phân tích cú pháp thường được sử dụng trong các trình biên dịch: Phân tích cú pháp từ trên xuống (Top down) và Phân tích cú pháp từ dưới lên (Bottom up). Các chương trình nguồn có thể chứa các lỗi cú pháp. Trong quá trình phân tích cú pháp chương trình nguồn, sẽ rất bất tiện nếu chương trình dừng và thông báo lỗi khi gặp lỗi đầu tiên.

Tài liệu trình biên dịch C (ĐH Cần Thơ) part 14

tailieu.vn

DỊCH TRỰC TIẾP CÚ PHÁP. Khi viết một chương trình bằng một ngôn ngữ lập trình nào đó, ngoài việc quan tâm đến cấu trúc của chương trình (cú pháp – văn phạm), ta còn phải chú ý đến ý nghĩa của chương trình. Như vậy, khi thiết kế một trình biên dịch, ta không những chú ý đến văn phạm mà còn chú ý đến cả ngữ nghĩa. Chương 5 trình bày các cách biểu diễn ngữ nghĩa của một chương trình. Mỗi ký hiệu văn phạm kết hợp với một tập các thuộc tính – các thông tin.

Tài liệu trình biên dịch C (ĐH Cần Thơ) part 5

tailieu.vn

Các thông tin này được tập hợp từ các giai đoạn phân tích của trình biên dịch và được sử dụng bởi giai đoạn tổng hợp để sinh mã đích. Ví dụ trong quá trình phân tích từ vựng, các chuỗi ký tự tạo ra một token (trị từ vựng của token) sẽ được lưu vào một mục ghi trong bảng danh biểu. Các giai đoạn sau đó có thể bổ sung thêm các thông tin về kiểu của danh biểu, cách sử dụng nó và vị trí lưu trữ. Giao diện của bảng ký hiệu.

Tài liệu trình biên dịch C (ĐH Cần Thơ) part 18

tailieu.vn

Hai cách kiểm tra kiểu là kiểm tra tĩnh được thực hiện trong thời gian biên dịch chương trình nguồn và kiểm tra động được thực hiện trong thời gian thực thi chương trình đích. Trong chương này ta tập trung vào phần xử lý ngữ nghĩa bằng cách kiểm tra tĩnh mà cụ thể là kiểm tra kiểu. Phần đầu của chương trình bày các khái niệm về hệ thống kiểu, các biểu thức kiểu. Phần còn lại mô tả cách tạo ra một bộ kiểm tra kiểu đơn giản..

Tài liệu trình biên dịch C (ĐH Cần Thơ) part 20

tailieu.vn

Trong thời gian biên dịch, chúng ta có thể điền vào đoạn của các địa chỉ mà mã lệnh có thể tìm đến để truy xuất dữ liệu. Tương tự địa chỉ các vùng lưu trữ thông tin khi chương trình con được gọi đều được xác định tại thời gian dịch. Tuy nhiên cấp phát tĩnh cũng có một số hạn chế sau:. Kích thước và vị trí của đối tượng dữ liệu trong bộ nhớ phải được xác định tại thời gian dịch..

Tài liệu trình biên dịch C (ĐH Cần Thơ) part 13

tailieu.vn

Bằng cách dịch y.tab.C cùng với thư viện ly chứa chương trình phân tích cú pháp LR nhờ lệnh cc y.tab.C - ly chúng ta thu được một chương trình đối tượng a.out thực hiện quá trình dịch được đặc tả bởi chương trình Yacc ban đầu. Nếu cần thêm các thủ tục khác, chúng có thể được biên dịch hoặc được tải vào y.tab.C giống như mọi chương trình C khác.. Một chương trình nguồn Yacc bao gồm 3 phần:. Phần khai báo.

Tài liệu trình biên dịch C (ĐH Cần Thơ) part 9

tailieu.vn

Việc loại bỏ đệ quy trái và tạo yếu tố trái tuy dễ thực hiện nhưng chúng biến đổi văn phạm trở thành khó đọc và khó dùng cho các mục đích biên dịch.. Phục hồi lỗi trong phân tích dự đoán. Một lỗi sẽ được tìm thấy trong quá trình phân tích dự đoán khi:. Ký hiệu kết thúc trên đỉnh Stack không phù hợp với token kế tiếp trong dòng nhập. Trên đỉnh Stack là ký hiệu chưa kết thúc A, token trong dòng nhập là a nhưng M[A,a] rỗng..

Tài liệu trình biên dịch C (ĐH Cần Thơ) part 26

tailieu.vn

Lệnh trả về được dịch sang mã máy là GOTO *callee_static_area thực hiện việc chuyển quyền điều khiển về địa chỉ được lưu giữ ở ô nhớ đầu tiên của mẩu tin hoạt động. mã cho c. Địa chỉ trả về Địa chỉ trả về. Ví dụ 9.1: Mã đích trong chương trình sau được tạo ra từ các chương trình con c và p ở hình 9.2. Giả sử rằng: các mã đó được lưu tại địa chỉ bắt đầu là 100 và 200, mỗi chỉ thị action chiếm 20 byte, và các mẩu tin hoạt động cho c và p được cấp phát tĩnh bắt đầu tại các địa chỉ 300 và 364 .

Tài liệu trình biên dịch C (ĐH Cần Thơ) part 24

tailieu.vn

Dịch biểu thức : a. c) Mã lệnh máy 3 - địa chỉ.. Trình bày cấu trúc lưu trữ biểu thức. Sinh mã trung gian ( dạng mã máy 3 - địa chỉ) cho các biểu thức C đơn giản sau:. Sinh mã trung gian ( dạng mã máy 3 - địa chỉ) cho các biểu thức C sau:. Dịch lệnh gán sau thành mã máy 3 - địa chỉ:

Tài liệu trình biên dịch C (ĐH Cần Thơ) part 17

tailieu.vn

Cho văn phạm sinh ra các dòng text như sau:. a) Xây dựng một định nghĩa trực tiếp cú pháp cho văn phạm.. b) Chuyển định nghĩa trực tiếp cú pháp trên thành lược đồ dịch.. c) Loại bỏ đệ quy trái trong lược đồ dịch vừa xây dựng.

Tài liệu trình biên dịch C (ĐH Cần Thơ) part 23

tailieu.vn

Thay vì một chương trình nguồn được dịch trực tiếp sang mã đích, nó nên được dịch sang dạng mã trung gian bởi kỳ trước trước khi được tiếp tục dịch sang mã đích bởi kỳ sau vì một số tiện ích: Thuận tiện khi muốn thay đổi cách biểu diễn chương trình đích. Giảm thời gian thực thi chương trình đích vì mã trung gian có thể được tối ưu. Chương này giới thiệu các dạng biểu diễn trung gian đặc biệt là dạng mã ba địa chỉ.

Tài liệu trình biên dịch C (ĐH Cần Thơ) part 16

tailieu.vn

Bảng sau trình bày quá trình thực hiện của bộ phân tích cú pháp. Input State Val Luật sinh được dùng 3 * 5 + 4 n. Hình 5.15- Các phép chuyển được tạo ra bởi bộ thông dịch trên chuỗi nhập 3* 5+4n. ÐỊNH NGHĨA L_THUỘC TÍNH 1. Ðịnh nghĩa L_thuộc tính.. Mỗi định nghĩa trực tiếp cú pháp là một định nghĩa L thuộc tính nếu mỗi một thuộc tính kế thừa của Xi (1 <= i <= n) trong vế phải của luật sinh A → X1X2...Xn phụ thuộc chỉ vào:. Các thuộc tính của X1, X2. Các thuộc tính kế thừa của A..

Tài liệu trình biên dịch C (ĐH Cần Thơ) part 22

tailieu.vn

Là phương pháp đơn giản nhất của truyền tham số được sử dụng trong C và Pascal.. Truyền bằng giá trị được xử lý như sau:. Tham số hình thức được xem như là tên cục bộ do đó ô nhớ của các tham số hình thức nằm trong mẩu tin kích hoạt của chương trình được gọi.. Chương trình gọi đánh giá các tham số thực tế và đặt các giá trị của chúng vào trong ô nhớ của tham số hình thức.. Chương trình gọi truyền cho chương trình được gọi con trỏ tới địa chỉ của mỗi một tham số thực tế..