... EditPlus để biêndịch chương trình C+ +
1. Ci t Turbo C+ +3.0
ã Th mc ci t: gi s l D:\TC30
ã Cc th mc quan trọng c n lưu ý:
o Bin: chứa cc chương trìnhbiên dịch, link, tạo project.
o Lib: chứa ... thư viện hàm (đã dịch)
o Include: chứa cc khai báo thư viện hàm
2. C u hình TurboC++ 3.0 để c thể biêndịch 1 chương trình viết bằng ngôn ngữ C+ +
trong c ch dũng lnh (command line)
ã ... đến thư m c Bin (c chứa file TCC.exe và TLINK.exe):
o Trong System Properties, chọn tab Advanced, click chọn “Environment Variables”.
o Trong System Variables, chọn m c Path, click chọn Edit....
... ra mó
mỏy.
ã
Trỡnh biờn dch c th c chia thành hai
loại : BiênDịch và Thông Dịch.
17/05/2006 6
1.2. C Chế Thông Dịch
Mã văn bản chương trình nguồn đư c
dịch sang một dạng mã trung gian ...
Automation) Tr c tiếp
từ biểu th c chính quy
17/05/2006 7
2. Khái Quát Chương Trình
Trìnhbiêndịch đư c xây dựng là một trình
thông dịch. khi chương trình th c thi, toàn bộ
văn bản chương trình ... đư c nạp vào bộ
nhớ. Trìnhbiêndịch phân biệt chữ hoa, chữ
thường. Trong quá trìnhbiêndịch chương trình
sẽ dừng lại ngay khi gặp lỗi.
Chương trình gồm 3 thành phần chính:
- Bộ phân tích...
... tính chỉ c thể hiểu ngôn ngữ máy cho nên một chương trình viết
trong ngôn ngữ c p cao cuối c ng rồi c
ng đư cdịch sang ngôn ngữ máy. C ng c
th c hiện vi cdịch đó đư c gọi là chương trìnhdịch ... dịch (translator).
Chương trìnhdịch đư c chia làm hai loại: trìnhbiêndịch (compiler) và trình
thông dịch (interpreter).
− Trìnhbiên dịch: chuyển một chương trình viết trong ngôn ngữ c p ... ra chuỗi nhập vào trìnhbiên dịch. Bộ tiền xử lý th c
hiện cc ch c năng sau:
1. Xử lý macro (macro processing). Bộ tiền xử lý c thể cho phép người sử dụng
định nghĩa cc macro. Macro được...
... thường chọn sao cho led c hàng ở trên và đư c tích cc m c
dương ,c n c t ở dưới tích cc m c âm ,
chọn port 1 để quét cho c t ,c n dữ liệu tính theo mã hàng thì đư c đưa vào port 2. 4 bit
c a ... để chúng ta viết code lập trình vào ,c thể viết
code c a ngôn ngữ c ho c asem .asem c ưu điểm là dung lượng nhẹ , hiểu đư c rõ bản
chất c a c u tr c 8051 và dữ liệu hoạt động trong từng c u ... lap trình tôi viết bằng asem ,chỉ c n h c qua về asem bly một chút là c thể hiểu đư c
nguyên lý quyet trong code :
Vì không c thời gian để giải thích hết cc lệnh và phân tich đến bản chất ?(cuối...
... trường c a trìnhbiêndịch
Ngoài trìnhbiên dịch, chúng ta c thể c n dùng nhiều chương trình kh c nữa để
tạo ra một chương trìnhđíchc thể th c thi đư c (executable). Cc chương trình đó ... lại cho người viết chương trình.
Trình biên
dịch
Chương trình
đích
Chương trình
nguồn
Hình 1.1 - Một trìnhbiêndịch
1. Mô hình phân tích - tổng hợp c a một trìnhbiêndịch
Chương ...
vụ c a cc thành phần c a một trìnhbiên dịch, mối liên hệ giữa cc thành phần đó và
môi trường nơi trìnhbiêndịch th c hiện c ng vi c của nó.
Tài liệu tham khảo:
[1] TrìnhBiênDịch -...
...
Ngoài trìnhbiên dịch, chúng ta c thể c n dùng nhiều chương trình kh c nữa để
tạo ra một chương trìnhđíchc thể th c thi đư c (executable). Cc chương trình đó
gồm: Bộ tiền xử lý, Trìnhdịch ... lại cho người viết chương trình.
Trình biên
dịch
Chương trình
đích
Chương trình
nguồn
Hình 1.1 - Một trìnhbiêndịch
1. Mô hình phân tích - tổng hợp c a một trìnhbiêndịch
Chương ... phải c một trìnhbiêndịch th c hiện vi c chuyển đổi chương trình đó sang
chương trình ở dạng ngôn ngữ đích. Chương này trình bày một c ch tổng quan về c u
tr c của một trìnhbiêndịch và mối...
... c y c pháp
đư c x c định từ cc giá trị c a cc thu c tính tại cc nút con c a nút đó.
Ví dụ 2.7: Ðịnh nghĩa tr c tiếp c pháp cho vi cdịchcc biểu th ccc số c ch
nhau bởi dấu + ho c ... theo
c ch này, thứ tự in ra cc ký tự sẽ rất quan trọng.
Chú ý rằng cc định nghĩa tr c tiếp c pháp đều c đ c điểm sau: chuỗi biểu diễn
cho bản dịchc a ký hiệu chưa kết th c ở vế trái c a ... Cc hành động dịch biểu th c 9-5+2 thành 9 5- 2 +
18
II. DỊCH TR C TIẾP C PHÁP (Syntax - Directed Translation)
Ðể dịch một kết c u ngôn ngữ lập trình, trong quá trình dịch, bộ biên dịch...
... c ch nhau bởi * ho c /.
Chú ý rằng bất kỳ một biểu th c nào trong ngo c đều là factor, vì thế với cc dấu
ngo c chúng ta c thể xây dựng cc biểu th c lồng sâu nhiều c p tuỳ ý.
C pháp cc ... toán h c, cc toán tử * và / c độ ưu tiên cao hơn + và
C pháp cho biểu th c :
Văn phạm cho cc biểu th c số h c có thể xây dựng từ bảng kết hợp và ưu tiên c a
c c toán tử. Chúng ta c thể bắt ... một chuỗi cc lệnh, phân c ch bởi dấu ; c a khối begin - end trong
Pascal. Một danh sách rỗng cc lệnh c thể c giữa begin và end.
Chúng ta xây dựng văn phạm bởi cc luật sinh sau:
block...
... phân tích từ vựng cho chương trìnhdịchcc
biểu th c số h c. Hình sau đây gợi ý một c ch c i đặt giao diện c a bộ phân tích từ
vựng đư c viết bằng C dưới dạng hàm lexan. Lexan đ c và đẩy cc ký ... c ng c thể c n đư c lưu lại cho c ng vi c ghi nhận
lỗi bởi vì c n phải chỉ ra vị trí lỗi trong đoạn chương trình.
Ðể tránh vi c phải quay lui, một số trìnhbiêndịch sử dụng c chế đ c trư c ... match(‘-’) ; term( ) ; putchar (‘-’) ;
}
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ã như sau :
# include<...
... kh c đi bằng cc câu lệnh nhảy c điều kiện ho c không điều kiện. C
một số cc tùy chọn dùng để mô tả ccđích nhảy :
1. Toán hạng làm chỉ thị cho biết vị trí đích.
2. Toán hạng làm chỉ ... đỉnh Stack,
kết quả c ng đư c lưu vào đỉnh STACK. Một phép toán ph c tạp hơn c thể c n phải
đư c cài đặt như một loạt chỉ thị c a máy.
Mã chương trình máy ảo cho một biểu th c số h c sẽ mô ... này, chúng ta sẽ trình bày khái quát về một máy ảo kiểu Stack và chỉ
ra c ch sinh mã chương trình cho nó. Máy ảo này bao gồm 3 thành phần:
1. Vùng nhớ chỉ thị (instructions): là nơi chứa cc chỉ...
... hợp cc chữ c i và số.
2. LD là tập hợp cc chuỗi bao gồm một chữ c i và một chữ số.
3. L
4
là tập hợp tất ccc chuỗi 4 chữ c i.
4. L
*
là tâp hợp tất ccc chuỗi c a cc chữ c i bao ... nắm đư ccc kỹ thuật tạo ra bộ phân
tích từ vng. C th,
ã Xõy dng cc lc cho cc biểu th c chính quy mô tả ngôn ngữ c n đư c
viết trìnhbiên dịch. Sau đó chuyển đổi chúng sang mt chng trỡnh ... một biểu th c chính quy đ c tả cho một chuỗi rỗng {ε }.
2. Nếu a ∈ ∑ thì a là biểu th c chính quy r đ c tả tập hợp cc chuỗi {a}
3. Giả sử r và s là cc biểu th c chính quy đ c tả cc ngôn ngữ...
... đồ dịch cho cc số không dấu trong Pascal
C nhiều c ch để tránh cc đối sánh dư thừa trong cc sơ đồ dịch trên. Một c ch là
viết lại cc sơ đồ dịch bằng c ch tổ hợp chúng thành một - một c ng ... th c chính quy trong lex.l là cc đoạn
chương trìnhC đư c chuyển sang lex.yy .c. Cuối c ng trìnhbiêndịchC sẽ dịch
lex.yy .c thành chương trình đối tượng a.out, đó là bộ phân tích từ vựng c ...
chương trìnhC là lex.yy .c. Chương trình này bao gồm cc đ c tả về sơ đồ dịch đư c
xây dựng từ cc biểu th c chính quy c a lex.l, kết hợp với cc thủ t c chuẩn nhận dạng
trị từ vựng. Cc hành vi...
... lỗi một c ch rõ ràng và chính x c.
Ph c hồi lỗi một c ch nhanh chóng để c thể x c định cc lỗi tiếp theo.
Không làm chậm tiến trìnhc a một chương trình đúng.
3. Cc chiến lư c ph c hồi ... tả chi tiết về Yacc đư c tìm thấy ở phần phụ l c B.
M c tiêu c n đạt:
Sau khi h c xong chương này, sinh viên phải nm c:
ã Cc phng phỏp phõn tớch c phỏp v cc chin lc phc hi li.
ã C ch ... x c nhận
rằng chuỗi này c thể đư c sinh ra từ văn phạm c a ngôn ngữ nguồn bằng c ch tạo ra
c y phân tích c pháp cho chuỗi. Bộ phân tích c pháp c ng cc chế ghi nhận cc lỗi
c pháp theo...
... kết th c bằng cc cạnh c nhãn X
1
X
2
X
n
Một c ch c thể, sơ đồ dịch đư c vẽ theo cc nguyên t c sau:
1. Mỗi ký hiệu chưa kết th c tương ứng với một sơ đồ dịch trong đó nhãn
cho cc cạnh ... id
Một chương trình phân tích c pháp dự đoán đư c thiết kế dựa trên sơ đồ dịch
cho cc ký hiệu chưa kết th c trong văn phạm. Nó sẽ c gắng so sánh cc ký hiệu kết
th c với chuỗi nguyên liệu ...
+
ε
E
’
Hình 4.5 - Cc sơ đồ dịch cho cc ký hiệu văn phạm
C c sơ đồ dịchc thể đư c đơn giản hóa bằng c ch thay sơ đồ này vào sơ đồ
kh c, những thay thế này tương tự như những...