... C+ + o Command: Tcc.exe o Argument: click chọn “File Name” o Initial directory: click chọn “File Directory” Thử biêndịch Editplus • Tạo file C+ +: chẳng hạn Vidu.cpp • Chọn Tools / Biendich C+ + ... C u hình Tool Editplus để biêndịch chương trình C+ + • Mở chương trình Editplus lên • Chọn m c Tools/Configure user tools • Click chọn Add Tool / Program • Đặt c u hình: o Menu text: Biendich ... Thử biêndịch Editplus • Tạo file C+ +: chẳng hạn Vidu.cpp • Chọn Tools / Biendich C+ + • Th c thi file C+ + ...
... viết nhiều chương trình sử dụng lớp Picture c sẵn c ch tiện lợi @ 2004 Trần Minh Châu FOTECH VNU Biêndịch riêng rẽ n biêndịch chương trình sau: 1> g++ -c picture.cpp 2> g++ -c program.cpp 3> g++ ... vậy, trìnhbiêndịch nhanh Đối với chương trình lớn, điều tạo kh c biệt lớn Chú ý: Theo thông lệ, file chương trình C+ + thường c kiểu mở rộng ".cpp", ".cc", " .C" , ".cxx" @ 2004 Trần Minh Châu ... Trần Minh Châu FOTECH VNU File object Cc định hướng tiền xử lý n n n n n Cc định hướng tiền xử lý lệnh c tính đ c biệt Đư c th ctrình tiền xử lý trư c mã nguồn biêndịchTrong C+ +, định hướng...
... 60 Môi trường trìnhbiêndịch Ngoài trìnhbiên dịch, c n dùng nhiều chương trình kh c để tạo chương trìnhđích th c thi (executable) Cc chương trình gồm: Bộ tiền xử lý, Trìnhdịch hợp ngữ, Bộ ... macro thành c u lệnh ngôn ngữ nguồn Ngoài ra, chương trìnhđích tạo trìnhbiêndịchc n phải xử lý thêm trư c chúng chạy Thông thường, trìnhbiêndịch tạo mã lệnh hợp ngữ (assembly code) để trình ... Chương trình nguồn Phán Phân tích Phán têch têch Tổng hợp Đ c tả trung gian Chương trìnhđích Hình 1.2 - Mô hình phân tích - tổng hợp Trongtrình phân tích chương trình nguồn phân rã thành c u...
... với thành phần c pháp Chúng ta sử dụng thuật ngữ c tính thủ t c lư c đồ dịch (translation scheme) để đ c tả trìnhdịchTrong chương này, ta sử dụng lư c đồ dịch để dịch biểu th c trung tố thành ... ngữ nghĩa lư c đồ dịch ghi kết trình phiên dịch vào tập tin, lần chuỗi ký tự Chẳng hạn, dịch - + thành - + c ch ghi ký tự - + lần mà ghi lại trìnhdịch biểu th c Khi tạo output theo c ch này, thứ ... xây dựng cho hành vi ngữ nghĩa Lư c đồ dịch tạo output cho c u nhập x sinh từ văn phạm cho c ch th c hành vi theo thứ tự mà chúng xuất trình duyệt theo chiều sâu phân tích c pháp x Chẳng hạn,...
... Z Một c ch hình th c, cho văn phạm phi ngữ c nh phân tích c pháp c tính chất sau đây: Nút g c có nhãn ký hiệu bắt đầu Mỗi c nhãn ký hiệu kết th c ε Mỗi nút c nhãn ký hiệu chưa kết th c Nếu ... phân c ch dấu + - Term list factor phân c ch * / Chú ý biểu th c ngo c factor, với dấu ngo c xây dựng biểu th c lồng sâu nhiều c p tuỳ ý C pháp c u lệnh: Từ khóa (keyword) cho phép nhận c u lệnh ... đến cao 14 Chúng ta tạo hai ký hiệu chưa kết th c expr term cho hai m c ưu tiên ký hiệu chưa kết th c factor làm đơn vị phát sinh sở biểu th c Ta c đơn vị biểu th c số biểu th c dấu ngo c factor...
... th c cách lùi trỏ trở Cc ký tự dòng nhập c n lưu lại cho c ng vi c ghi nhận lỗi c n phải vị trí lỗi đoạn chương trình Ðể tránh vi c phải quay lui, số trìnhbiêndịch sử dụng chế đ c trư c ký ... (‘-’) ; } else break; } Chương trìnhCdịch biểu th c trung tố sang hậu tố Chương trình nguồn C hoàn chỉnh cho chương trìnhdịchc mã sau : # include< ctype.h> /* nạp tập tin chứa isdigit vào*/ int ... đầu cho trị từ vựng token sau Với chế ký tự đ c lần Một phân tích từ vựng Bây xây dựng phân tích từ vựng cho chương trìnhdịch biểu th c số h c Hình sau gợi ý c ch c i đặt giao diện phân tích...
... Stack c ch sinh mã chương trình cho Máy ảo bao gồm thành phần: Vùng nhớ thị (instructions): nơi chứa thị Cc thị hạn chế chia thành nhóm chính: nhóm thị số h c số nguyên, nhóm thị thao t c Stack ... kiểu Stack Ví dụ 2.15: Biểu th c (5 + b) * c với b = 11, c = th c Stack dạng biểu th c hậu tố b + c * Cc thị số h c Máy ảo phải c i đặt toán tử ngôn ngữ trung gian Khi gặp thị số h c đơn giản, ... th c lệnh halt : Ngưng th c chương trìnhDịchc u lệnh Sơ đồ ph c thảo đoạn mã máy ảo cho số lệnh c u tr c hình sau: IF expr THEN stmt WHILE expr DO stmt Code for expr Label test Gofalse out Code...
... phải cung c p thêm số thông tin kh c cho bư cbiêndịch sau Do token, phân tích từ vựng đưa thông tin token vào thu c tính kèm chúng Cc token c ảnh hưởng đến định phân tích c pháp; thu c tính ... khoảng trắng hay lời thích chúng phân tích từ vựng loại bỏ Hiệu trìnhbiêndịchc i thiện, nhờ vào số chương trình xử lý chuyên dụng làm giảm đáng kể thời gian đ c liệu từ chương trình nguồn nhóm token ... VAI TRÒ C A BỘ PHÂN TÍCH TỪ VỰNG Phân tích từ vựng giai đoạn trìnhbiêndịch Nhiệm vụ chủ yếu đ c ký hiệu nhập tạo chuỗi token sử dụng phân tích c pháp Sự tương t c thể hình sau, phân tích từ...
... Trư c hết đ c tả cho phân tích từ vựng chuẩn bị c ch tạo chương trình lex.l ngôn ngữ lex Trìnhbiêndịch Lex dịch lex.l thành chương trìnhC lex.yy .c Chương trình bao gồm đ c tả sơ đồ dịch xây dựng ... Sơ đồ dịch cho số không dấu Pascal C nhiều c ch để tránh đối sánh dư thừa sơ đồ dịch Một c ch viết lại sơ đồ dịchc ch tổ hợp chúng thành - c ng vi c nói chung không đơn giản Một c ch kh c thay ... th c quy lex.l, kết hợp với thủ t c chuẩn nhận dạng trị từ vựng Cc hành vi kết hợp với biểu th c quy lex.l đoạn chương trìnhC chuyển sang lex.yy .c Cuối trìnhbiêndịchCdịch lex.yy .c thành chương...
... phải đạt m cđích sau: Ghi nhận thông báo lỗi c ch rõ ràng x c Ph c hồi lỗi c ch nhanh chóng để x c định lỗi Không làm chậm tiến trình chương trìnhCc chiến lư c ph c hồi lỗi Ph c hồi lỗi kỹ ... lỗi thích hợp để c u tr c lỗi nhận biết dòng nhập d Chiến lư c hiệu chỉnh toàn cc (global correction): Một c ch lý tưởng trìnhbiêndịch tạo số thay đổi xử lý lỗi C giải thuật để lựa chọn số ... tiếp t ctrìnhdịch Nhiều chiến lư c ph c hồi lỗi dùng phân tích c pháp M c dù chiến lư c chấp nhận hoàn toàn, số chúng áp dụng rộng rãi Ở đây, giới thiệu số chiến lư c : a Phương th c "hoảng...
... thái kết th c cạnh c nhãn X1X2 Xn Một c ch c thể, sơ đồ dịch vẽ theo nguyên t c sau: Mỗi ký hiệu chưa kết th c tương ứng với sơ đồ dịch nhãn cho c nh token ký hiệu chưa kết th c Mỗi token ... hiệu chưa kết th cCc sơ đồ dịch tương ứng : T E T F E’ E’ 10 T E’ ε T’ T‘ + * F 11 12 T’ 13 ε F ( 14 15 E 16 ) 17 id Hình 4.5 - Cc sơ đồ dịch cho ký hiệu văn phạm Cc sơ đồ dịch đơn giản hóa c ch ... phân tích c pháp đệ quy lùi phân tích đư c, không c n quay lui, gọi phân tích c pháp dự đoán Xây dựng sơ đồ dịch cho phân tích dự đoán: Ðể xây dựng sơ đồ dịch cho phương pháp phân tích xuống,...
... + E $E Chấp nhận V PHÂN TÍCH C PHÁP THỨ B C TOÁN TỬ Lớp văn phạm c tính chất luật sinh c vế phải ε c hai ký hiệu chưa kết th c nằm kế dễ dàng xây dựng phân tích c pháp Shift- Reduce hiệu ... nên không c n phải phân biệt chúng Giải thuật 4.5: Phân tích c pháp thứ b c toán tử Input: Chuỗi nhập w bảng quan hệ thứ b c Output: Nếu w chuỗi chuẩn dạng cho phân tích c pháp Ngư c lại, thông ... vấn đề c n phải giải dùng kỹ thuật phân tích c pháp Thứ định vị chuỗi c n thu gọn dạng c u dẫn phải, thứ hai x c định luật sinh dùng c nhiều luật sinh chứa chuỗi vế phải C u tạo: Dùng Stack để...
... vào họ tập hợp m cC xây dựng ví dụ 4.22, ta thấy: Trư c tiên xét tập m c I0 : M c F → • (E) cho action[0, (] = "shift 4", m c F → • id cho action[0, id] = "shift 5" Cc m c kh c I0 không sinh ... M c E'→ E • cho action[1, $] = "accept", m c E → E • + T cho action[1, +] = "shift 6" Kế đến xét I2 : E → T • 95 T→T•*F Vì FOLLOW(E) = {+, ), $}, m c làm cho action[2, $] = action[2,+] = "reduce ... (core) tập hợp {A → α •β} Trong họ tập hợp m c LR(1) C = { I0, I1, , In } c tập hợp m c có chung hạt nhân Ví dụ 4.27: Trong ví dụ 4.25, ta thấy họ tập hợp m c có số m c có chung hạt nhân : I4 I11...
... đầu trìnhbiệndịch Một sinh phân tích c pháp YACC (Yet Another Compiler - Compiler) Phiên Yacc S .C. Johnson tạo Yacc c i đặt lệnh hệ UNIX dùng để c i đặt cho hàng trăm trìnhbiêndịch 107 ... Reduce by S a 0i2S4 $ Reduce by S iS eS 0s1 $ Reduce by S iS VIII BỘ SINH BỘ PHÂN TÍCH C PHÁP Phần trình bày c ch dùng sinh phân tích c pháp (parser generator) hỗ trợ cho vi c xây dựng kỳ đầu trình ... r1 hay s5? L c phân tích qua phần chuỗi id * id Nếu ta chọn r1 t c thu gọn luật sinh E E + E, c nghĩa th c phép c ng trư c Do ta muốn tóan tử * c độ ưu tiên cao + phải chọn s5 Nếu chuỗi nhập...
... 2 Ð c tả YACC Một chương trình nguồn Yacc bao gồm phần: Phần khai báo %% Cc luật dịch %% Cc thủ t c Ví dụ 4.30: Ðể minh họa vi c chuẩn bị chương trình nguồn Yacc, xây dựng chương trình máy ... Viết chương trình Yacc nhận chuỗi input biểu th c số h c, sinh output chuỗi biểu th c hậu tố tương ứng 4.18 Viết chương trình Yacc nhận biểu th c quy làm chuỗi input sinh output phân tích c pháp ... yylval (một biến định nghĩa yacc) Chú ý: Chúng ta kết hợp Lex Yacc c ch dùng "lex.yy .c" thay cho thủ t c yylex( ) phần thứ #include 110 BÀI TẬP CHƯƠNG IV 4.1 Cho văn phạm G chứa luật sinh sau: S →...