Font size
WorksheetsCTD
Total questions: 100
Worksheet time: 50mins
Các lệnh dưới đây, lệnh nào viết bằng mã ba địa chỉ được giới thiệu trong môn học
t[i+1]:=x
t[i]=y
t[i]:=1+i
a:=t[i]+b
Từ khóa nào dưới đây có thể thay thế OP trong lệnh
máy : OP p q nếu mô tả của lệnh là t:=t+1;
s[t]:=s[base(p)+q]; ( t là đỉnh stack)
LA
LC
LI
LV
Hệ thống nào dưới đây để mô tả một số thuộc tính liên
quan đến ngữ nghĩa của ngôn ngữ lập trình?
Otomat hữu hạn
Định nghĩa tựa cú pháp
Stack
Văn phạm hình thức
Thông tin nào dưới đây không được lưu trữ trong bảng
ký hiệu của một phạm vi ứng với chương trình con?
Thông tin về kiểu
Tên của biến
Địa chỉ bộ nhớ được phân phối
Những hàm và thủ tục có thể sử dụng mà không cần
khai báo
Bộ phân tích từ vựng được xây dựng dựa trên mô hình
Ôtômat đẩy xuống
Ôtômat hữu hạn
Ôtômat tuyến tính giới nội
Ôtômat đẩy xuống mở rộng
Dạng lệnh nào trong mô tả dưới đây không thể đứng
đầu một khối ?
Lệnh đầu của chu trình.
Lệnh đầu của chương trình con.
Lệnh là đích đến của lệnh goto có điều kiện.
Lệnh ngay sau lệnh goto không điều kiện.
Việc kiểm tra sự tương ứng về kiểu giữa biến ở vế trái
và biểu thức ở vế phải của lệnh gán được thực hiện
trong giai đoạn nào?
Phân tích từ vựng
Phân tích cú pháp
Phân tích ngữ nghĩa
Sinh mã đích
Xử lý nào dưới đây để khử đệ quy trái:
Thêm kí hiệu không kết thúc mới
Thêm ký hiệu kết thúc mới
Không được thêm ký hiệu không kết thúc mới
Loại bỏ một số sản xuất không đệ quy trái
Để mô tả hoạt động của giải thuật phân tích trên
xuống tiền định người ta dùng
Trạng thái
Stack
Hình trạng
Phân tích trái
Ngôn ngữ để viết chương trình dịch được gọi là
Ngôn ngữ đích
Ngôn ngữ điều khiển
Ngôn ngữ nguồn
Ngôn ngữ thực hiện
Mã lệnh ba địa chỉ bao gồm
Đúng 3 địa chỉ
ít nhất 3 địa chỉ
Nhiều nhất 3 địa chỉ
Tối đa 3 địa chỉ nhưng với có thể nhiều hơn khi truy cập phần tử của mạng
Đầu vào của bộ sinh phân tích từ vựng là
Chương trình nguồn
Chương trình viết trên mã trung gian
Tập các định nghĩa chính quy
Văn phạm chính quy
Quá trình sinh mã trung gian trong mô hình một ngôn
ngữ lập trình có thể biểu diễn qua
Thuộc tính cho các ký hiệu của văn phạm
Danh mục được lưu trữ trong bảng ký hiệu
Cây cú pháp có chú giải
Văn phạm
Khẳng định nào nào dưới đây không đúng về trình
thông dịch interpreter?
Trình thông dịch phân tích và thực hiện từng lệnh
Trình thông dịch sinh ra chương trình đích trên
Assembly
Trình thông dịch là một loại trình dịch
Trình biên dịch có tốc độ cao hơn trình thông dịch
Cho lệnh KPL a:=1;Nếu thay dấu chấm phảy bằng
dấu chấm thì lỗi nào sẽ xảy ra?
Lỗi từ vựng
Lỗi cú pháp
Lỗi ngữ nghĩa
Lỗi trong quá trình sinh mã
Cho văn phạm S-> aSb, S -> c và xâu aacbb. Hình
trạng nào là hình trạng ngay sau (q, 2, S1aS1,aSbb#)?
(q, 3, S1aS1aS2, cbb#)
(b, 2, S1aS1,aSbb#)
(q, 3, S1aS1a, Sbb#)
Không lựa chọn nào đúng
Đồ thị cho thấy mối liên hệ giữa các khối cơ sở gọi là
gì?
Directed acyclic graph
View graph
Control flow graph
Hamiltonion graph
Đâu là tên của một bộ sinh phân tích từ vựng?
Lex
Yacc
Bison
Không lựa chọn nào là đúng
Để lưu trữ lịch sử chọn sản xuất của giải thuật phân
tích top down quay lui người ta dùng
Trạng thái
Stack
Hình trạng
Phân tích trái
Dãy dưới đây chứa bao nhiêu từ tố của KPL? (*c := b
+ a(*1*)
0
5
6
8
Dòng nào dưới đây đúng cú pháp KPL?
a := integer;
a =1; b =-a;
const a =1;b =-a;
const a :=1; b :=a;
Khẳng định nào dưới đây là đúng với EBNF
Cặp [] chỉ một đối tượng có thể xuất hiện hoặc không
Bắt buộc phân cách các ký hiệu kết thúc bằng cặp
nháy đơn hoặc cặp nháy kép
Muốn thể hiện chu trình thì luật phải đệ quy
Cần một ký pháp đặc biệt để mô tả ký hiệu đầu
Việc xác định các biểu thức con chung và thay thế
trong thời gian dịch thay vì tính toán vào thời gian
thực hiện được làm trong giai đoạn
Tối ưu cục bộ
Tính giá trị hằng
Tối ưu trong khối cơ bản
Phân tích dòng điều khiển
Trong một compiler, nơi chứa thông tin về các biến và
các thuộc tính của chúng là
Stack ngữ nghĩa
Bảng phân tích cú pháp
Bảng ký hiệu
Cây cú pháp có chú giải
Khi nào compiler xem xét đến các ký tự được phép sử
dụng trong một ngôn ngữ lập trình?
khi phân tích từ vựng
khi phân tích cú pháp
khi sinh mã đích
khi phân tích dòng dữ liệu
Tại sao lại tối ưu mã trên mã trung gian?
Vì không thể tối ưu mã nguồn
Vì chương trình tối ưu chạy trên mã trung gian nhanh
hơn mã đích
Vì không thể sử dụng thông tin tối ưu khi phân tích
dòng dữ liệu
Vì mã trung gian không phụ thuộc máy
Kết quả của bộ phân tích cú pháp top down quay lui là
Nghịch đảo của phân tích phải
Nghịch đảo của phân tích trái
Phân tích phải
Phân tích trái
Giai đoạn nào trong compiler không phụ thuộc máy?
Phân tích cú pháp
Sinh mã trung gian
Phân tích từ vựng
Tất cả các giai đoạn nói trên
Cho văn phạm
E -> E * F | F + E | F
F -> F - F | id
Khẳng định nào dưới đây là đúng?
* có thứ tự ưu tiên cao hơn +
- có tứ tự ưu tiên cao hơn *
+ và - có cùng thứ tự ưu tiên
+ có thứ tự ưu tiên cao hơn *
Việc loại bỏ mã chết trong tối ưu mã trung gian nhằm
mục đích
Loại bỏ tất cả các nhãn
Loại bỏ các đoạn mã không bao giờ được thực hiện
hoặc liên quan đến các biến chỉ sử dụng một lần
Loại bỏ các hàm không liên quan đến chương trình
Loại bỏ các module chương trình sau khi thựu hiện nó.
Khẳng định nào sau đây là đúng về cây cú pháp là có
chú giải
Nó chứa tất cả các thuộc tính của tất cả các nút
Trên cây không có nút nào có thuộc tính kế thừa
Mọi nút lá đều chỉ chứa các thuộc tính tổng hợp
Mọi nút trong đề có ít nhất một thuộc tính kế thừa
Cho văn phạm: với các sản xuất S → FR, R → *S | ε,
F → id
Trong bảng phân tích M, của văn phạm, các ô M[S,
id] và M[R, $] tương ứng là
{S → FR} và {R → ε}
{S → FR} và { }(lỗi)
{S → FR} và {R → *S}
{F → id} và {R → ε}
linker là
một dạng interpreter
công cụ kết nối các module của chương trình
là công cụ đọc mã nguồn chương trình
là công cụ để soạn thảo chương trình
Khẳng định nào sau đây là đúng?
FIRST(ε) = {ε}
FOLLOW(S) với S là ký hiệu đầu chứa $
Nếu A → w là một sản xuất thì FIRST(A) chứa
FIRST(w)
Tất cả các khẳng định trên đều đúng
Mỗi sơ đồ cú pháp được xây dựng cho một
Ký hiệu kết thúc
Ký hiệu của văn phạm
Ký hiệu không kết thúc
Sản xuất
Trong những chủ đề được nói đến dưới đây, chủ đề
nào không liên quan đến phân tích ngữ nghĩa?
Đảm bảo trong mỗi phạm vi không tồn tại hai tên
trùng nhau
Kiểm tra sự tương ứng giữa việc sử dụng hàm, biến
với khai báo của chúng
Phân chia chương trình thành các khối cơ bản
Đảm bảo biến điều khiển chu trình for phải có kiểu
nguyên
Khẳng định nào dưới đây là về một nguyên tắc mà mọi
compiler phải tuân thủ?
Compiler không bao giờ được phép quay lui
Compiler phải đưa ra các lỗi về kiểu dựa trên cây cú
pháp có chủ giải
Compiler phải giữ nguyên ý nghĩa của chương trình
sau khi dịch
Compiler phải sinh đượcmã đích hiệu quả hơn mã
đích sinh bằng tay
Phân tích phải là
Dãy số nguyên là số thứ tự của các sản xuất được
dùng trong suy dẫn nào đó
Nghịch đảo của dãy số nguyên là số thứ tự của các
sản xuất phải được dung trong suy dẫn
Dãy số nguyên là số thứ tự của các sản xuất được
dung trong suy dẫn phải
Không là đối tượng nào nói trên
Xét hàm checkKeyword dưới đây
TokenType checkKeyword(char *string) {
int i;
for (i = 0; i < KEYWORDS_COUNT; i++)
if (keywordEq(keywords[i].string, string))
return ###;
return TK_NONE;
}
Cho biết cần điền đoạn mã nào dưới đây vào ###
TK_IDENT
keywords[i].tokenType
TK_KEYWORD
TK_CHAR
void compileProgram(void) {
assert("Parsing a Program ....");
eat(KW_PROGRAM);
eat(TK_IDENT);
eat(SB_SEMICOLON);
###
eat(SB_PERIOD);
assert("Program parsed!");
}
compileBlock2();
compileBlock();
eat(SB_SEMICOLON);
missingToken(tokenType, lookAhead->lineNo,
lookAhead->colNo);
Cho văn phạm với tập ký hiệu kết thúc {a, ;, <, >}và
các sản xuất
S → <L | a
L → aR | <LR
R → > | ;L
Câu << a >; a > có bao nhiêu cây phân tích cú pháp
khác nhau?
0
1
2
3
Chiến lược tối ưu nào có thể áp dụng cho đoạn mã
dưới đây:
temp6 = 4 * i
x = a[temp6]
temp8 = 4 * j
temp9 = a[temp8]
a[temp6] = temp9
temp10= 4 * j
a[temp10] = x
goto 100
Loại bỏ biểu thức con chung
Loại mã chết
Tính giá trị hằng
Copy Propagation
Cho hàm phân tích danh sách các chỉ số. Cần điền nội
dung nào cho dãy #####
void compileIndexes(void) {
#####
{ eat(SB_LSEL); compileExpression();
eat(SB_RSEL); }
}
if (lookAhead->tokenType == SB_LSEL)
while (lookAhead->tokenType == SB_LSEL)
while (lookAhead->tokenType == SB_LPAR)
if (lookAhead->tokenType == TK_IDENT)
Cho đoạn chương trình KPL
Procedure A;var x, y : integer ;
Procedure B; var x, z : char ;
begin S1 end (*B*);
Procedure C; var I : integer ;
begin S2 end (*C*);
BEGIN S3 END (*A*);
Các biến có thể truy cập được trong S1 và S2 là:
trong S1: x của A, y, x của B và z ; trong S2: x của B,
y và I
trong S1: x của B, y và z ; trong S2:x của B, I và z
trong S1: x của B, z và y; trong S2 x của A, I và y
không lựa chọn nào đúng
Cần điền giá trị nào vào vị trí ###
void eat(TokenType tokenType) {
if (lookAhead->tokenType == tokenType) {
printToken(lookAhead);
###
} else missingToken(tokenType, lookAhead->lineNo,
lookAhead->colNo);
}
compileBlock ()
scan();
compileProgram();
Không lựa chọn nào đúng
Đối tượng nào dưới đây không có mặt trong định nghĩa hình thức của ôtômat hữu hạn đơn định
Bảng chữ vào
Hàm chuyển trạng thái
Tập trạng thái kết thúc
Xâu rỗng
Biểu thức nào dưới đây không là biểu thức chính quy?
((a+b)*(aa+bb))*
(01+11+10)*
(1+2+0)*(1+2)*
((0+1)-(0b+a1)*(a+b))*
Hãy ghi ra hình trạng mà ôtomat hữu hạn không đơn định có thể chuyển từ hình trạng q1abab, nếu
delta (q1,a) = {q2, q3}
q2aab
q2bab
q1bab
q3abab
Compiler có thể phát hiện loại lỗi nào?
Lỗi logic
Lỗi cú pháp
Cả hai loại
Không loại nào nói trên
Kết quả của bộ phân tích cú pháp top down quay lui là
Nghịch đảo của phân tích phải
Nghịch đảo của phân tích trái
Phân tích phải
Phân tích trái
Cho văn phạm G với tập ký hiệu không kết thúc {S',S,B,E,J,L}, tập ký hiệu kết thúc {;,:=,(,),,} (dấu phảy
là dấu phân cách đồng thời là ký hiệu kết thúc, tập sản xuất
S' -> S
S -> LB
B ->;S;L | :=L
E -> a | L
J ->,EJ | )
L -> (EJ
Khẳng định nào dưới đây là đúng
Văn phạm là nhập nhằng
Văn phạm là LL(1)
Văn phạm không là LL(1) nhưng là LL(k) với k>1
Văn phạm không là LL(k) với mọi k>0
Chiến lược tối ưu nào có thể áp dụng cho đoạn mã sau:
(1) i = 4
(2) t1 = i+1
(3) t2 = b[t1]
(4) a[t1] = t2
Loại mã chết
Loại biểu thức con chung
Tính giá trị hằng
Loại những đoạn mã dư thừa bộ phận
(1) prod := 0
(2) I := 1
(3) t1 := 4 * I
(4) t2 := a[t1]
(5) t3 := 4 * I
(6) t4 := b[t3]
(7) t5 := t2 * t4
(8) t6 := prod + t5
(9) prod := t6
(10) t7 := I + 1
(11) I := t7
(12) if I <= 20 goto (3)
(13) t8:=t7+1
2
3
4
5
Khẳng định nào dưới đây là đúng với ngữ nghĩa của KPL?
Trong cùng một phạm vi có thể sử dụng tên hằng và tên biến giống nhau
Không cho phép bất cứ hai tên nào, ở bất cứ phạm vi nào là giống nhau
Không cho phép bất cứ hai tên nào, ở bất cứ phạm vi nào là giống nhau
Trong một chương trình con thủ tục, tên thủ tục và tên biến địa phương trong thủ tục có thể trùng nhau
Điều kiện nào dưới đây là bắt buộc đối với một văn phạm có thể phân tích cú pháp theo phương pháp từ
trên xuống?
Văn phạm không đơn nghĩa
Văn phạm LL(1)
Văn phạm không đệ quy trái
Văn phạm LL(k)
Khẳng định nào dưới đây là đúng về tính nhập nhằng?
Một ngôn ngữ là nhập nhằng nếu mỗi câu có 2 hoặc nhiều cây phân tích cú pháp
Một ngôn ngữ là nhập nhằng nếu mỗi câu có 2 hoặc nhiều cây phân tích cú pháp
Một văn phạm phi ngữ cảnh là nhập nhằng nếu vế phải của một trong các sản xuất bắt đầu bởi ký hiệu không
kết thúc xuất hiện ở vế trái.
Cả 3 khẳng định đều sai
Cho văn phạm
A -> B x | y C | @
B -> C z A
C -> x B
trong đó @ chỉ xâu rỗng.Tập nào dưới đây là FIRST(A)
{y, @}
{x, y, @}
{y, z,@}
{x, y, z, @}
Mã nào dưới đây là mã trung gian?
Ký pháp Ba Lan (hậu tố)
Cây nhị phân
Mã assembly
Cả 3 lựa chọn được nêu đều đúng.
Quá trình sinh mã trung gian trong mô hình một ngôn ngữ lập trình có thể biểu diễn qua
Thuộc tính cho các ký hiệu của văn phạm
Danh mục được lưu trữ trong bảng ký hiệu
Cây cú pháp có chú giải
Văn phạm
Trong những ký hiệu được mô tả dưới đây, ký hiệu nào có thể xuất hiện trong stack D1 của bộ phân tích
cú pháp trên xuồng quay lui ?
Ký hiệu xâu rỗng
Ký hiệu đầu
Ký hiệu phân cách vế trái và vế phải sản xuất
Ký hiệu kết thúc xâu vào
Cấu trúc dữ liệu nào là thích hợp nhất để lưu trữ bảng ký hiệu?
Mảng
Tệp
Danh sách liên kết
Stack
Cho văn phạm S -> AB, A -> aA | b, B -> bB | c. Ô M(S,a) của bảng phân tích tiền định có giá trị là
A->aA
B->bB
S->AB
Tất cả các lựa chọn đều sai
Cách thông thường để mô tả cú pháp của một ngôn ngữ lập trình là
Dùng cây cú pháp có chú giải
Dùng một tệp văn bản
Dùng dạng chuẩn BNF
Dùng mảng
Khẳng định nào dưới đây là không đúng cho lớp ngôn ngữ LL(1)
Không ngôn ngữ LL(1)nào là ngôn ngữ chính quy
Mọi ngôn ngữ LL(1) là ngôn ngữ phi ngữ cảnh
Mọi ngôn ngữ LL(1) là đơn nghĩa
Lớp LL(1) được chứa trong lớp LR(1)
Khẳng định nào không đúng luật phạm vi gần nhất?
Toán tử edit chỉ được tham chiếu phạm vi gần nhất
Toán tử delete chỉ được xóa các lối vào xuất hiện trong khai báo gần nhất
Toán tử insert vào bảng ký hiệu không được ghi đè những khai báo trước
Toán tử lookup vào bảng ký hiệu luôn luôn tham chiếu phạm vi hiện hành
Dãy ac := b + a(*1.) chứa bao nhiêu từ tố của KPL?
0
5
6
8
Ký tự nào không được bộ phân tích từ vựng bỏ qua?
Các ký tự xuất hiện trong chú thích.
Khoảng trắng.
Ký tự kết thúc câu lệnh.
Ký tự xuống dòng.
Lý do để phương pháp phân tích cú pháp trên xuống có quay lui không được sử dụng để phân tích cú
pháp cho ngôn ngữ KPL là:
Chi phí thời gian quá lớn
Không đủ không gian nhớ để lưu trữ các hình trạng khi phân tích KPL
KPL không thoả mãn một số điều kiện mà giải thuật đòi ỏi
Văn phạm KPL quá phức tạp
Trong các văn phạm dưới đây , văn phạm nào không nhập nhằng?
S -> AaA, A -> Aa, A -> a
S -> AaA, A -> Aa, A -> a
S -> F, S -> ( S + F ),F -> a
S -> 00S, S -> S1, S-> 1
Khẳng định nào là đúng với cấu trúc mảng của KPL
Chỉ cho phép dùng mảng 1 và 2 chiều
Chỉ cho phép dùng mảng 1 chiều
Cho dùng mảng có số chiều tuỳ ý
Không cho phép dùng mảng
Dòng nào dưới đây đúng cú pháp KPL?
const a=integer;
var a: integer;
const a=1;b=a*2;
const a:=1; b=a;
Trong các văn phạm sau, văn phạm nào là LL(1)? Biết rằng@ chỉ xâu rỗng(epsilon)
S -> Aa,A -> BD, B -> b, B -> @, D->d, D -> @
S -> 1S0, S -> 10
S -> AaA, A -> AaA, A -> a
S -> 00S, S -> S1, S -> 1
Phân tích trái là
Dãy số nguyên là số thứ tự của các sản xuất không đệ quy được dùng trong suy dẫn trái
Nghịch đảo của dãy số nguyên là số thứ tự của các sản xuất được dùng trong suy dẫn trái
Dãy số nguyên là số thứ tự của các sản xuất được dung trong suy dẫn trái
Không là đối tượng nào nói trên
Hệ thống nào dưới đây để mô tả một số thuộc tính liên quan đến ngữ nghĩa của ngôn ngữ lập trình?
Ôtômat hữu hạn
Định nghĩa tựa cú pháp
Stack
Văn phạm hình thức
Thuộc tính kế thừa được tính trên cây cú pháp có chú giải theo hướng
Từ trên xuống
Từ dưới lên
Thứ tự bất kỳ
Từ trên xuống hoặc từ các nút cùng cấp
Hãy cho biết trong các thao tác sau, thao tác nào thuộc phân tích ngữ nghĩa
Kiểm tra xem một chú thích có điểm kết thúc không
Kiểm tra số chiều của mảng đang sử dụng có đung như khai báo không
Kiểm tra xem trong lệnh while có chứa từ khóa do hay không
Tìm địa chỉ phần tử của mảng trong stack
Trong stack của bộ phân tích cú pháp tiền định chứa
Tập ký hiệu kết thúc
Tập ký hiệu không kết thúc
Tập sản xuất
Mọi ký hiệu của văn phạm
Đâu là tên của một bộ sinh phân tích cú pháp?
YACHT
Flex
Bison
Compiler - compiler
Điều kiện nào dưới đây là bắt buộc đối với một văn
phạm có thể phân tích cú pháp theo phương pháp
trên xuống tiền định
Văn phạm không đơn nghĩa
Văn phạm tuyến tính trái
Văn phạm LL(k)
Văn phạm LR(k)
Công cụ nào dưới đây thích hợp nhất để mô tả các từ
tố của một ngôn ngữ lập trình?
Văn phạm chính quy
Bộ phân tích từ vựng
Biểu thức chính quy
Ôtômat hữu hạn
Thông tin nào dưới đây không được lưu trữ trong
bảng ký hiệu của một phạm vi ứng với chương trình
con?
Thông tin về kiểu
Tên của biến
Địa chỉ bộ nhớ được phân phối
Những hàm và thủ tục có thể sử dụng mà không
cần khai báo
Thuộc tính tổng hợp được tính trên cây cú pháp có
chú giải theo hướng
Từ trên xuống
Từ dưới lên
Thứ tự bất kỳ
Từ trên xuống hoặc từ các nút cùng cấp
Một văn phạm là vô nghĩa nếu
tập ký hiệu kết thúc và tập ký hiệu không kết thúc
có chứa ký hiệu chung
tồn tại vế trái của sản xuất chứa nhiều hơn 1 ký
hiệu
tồn tại vế trái của một sản xuất lầ ký hiệu kết thúc
tồn tại vế phải của một sản xuất không chứa ký
hiệu kết thúc
Trong các văn phạm sau, văn phạm nào là LL(k)?
S → Aa,A → BD, B → b, B → ε, D → d, D → ε
S → 1S0, S → ε
S → AaA, A → AaA, A → a
S → 00S, S → S1, S → 1
Đâu là kỹ thuật để lệnh if trong KPL có thể phân tích
cú pháp bằng phương pháp đệ quy trên xuống
Nhân tử
Nhân tử ngược
Nhân tử phải
Nhân tử trái
Khẳng định nào sau đây là đúng về cây cú pháp là có
chú giải
Nó chứa tất cả các thuộc tính của tất cả các nút
Trên cây không có nút nào có thuộc tính kế thừa
Mọi nút lá đều chỉ chứa các thuộc tính tổng hợp
Mọi nút trong đều có ít nhất một thuộc tính kế
thừa
Cho văn phạm S → AB, A → aA | b, B → bB | c. Ô
M[B,a] của bảng phân tích tiền định có giá trị là
Lỗi
B → bB
S → AB
Tất cả các lựa chọn đều sai
Khẳng định nào dưới đây là đúng cho lớp ngôn ngữ
LL(1)
Không ngôn ngữ LL(1)nào là ngôn ngữ chính quy
Tồn tại ngôn ngữ LL(1) nằm ngoài lớp ngôn ngữ
phi ngữ cảnh
Tồn văn phạm đệ quy trái tương đương với văn
phạm LL(1)
Tồn tại văn phạm LL(1) nhập nhằng
Lệnh nào dưới đây có mô tả : s[t+2]:=b; s[t+3]:=pc;
s[t+4]:=base(p); b:=t+1; pc:=q; với t là đỉnh stack
EQ
CALL
EP
EF
Xử lý nào dưới đây để khử đệ quy trái:
Chuyển đệ quy trái thành đệ quy phải
Thêm ký hiệu kết thúc mới
Không được thêm ký hiệu không kết thúc mới
Loại bỏ một số sản xuất không đệ quy trái
Phần mềm dịch từ một ngôn ngữ nào đó sang mã
máy và thực thi được gọi là
Bộ xử lý ngôn ngữ
Trình thông dịch
Trình biên dịch
Assembler
Khẳng định nào sau đây là đúng?
Bộ phân tích từ vựng là đệ quy vì phải xử lý
những cặp ngoặc lồng nhau
Bộ phân tích từ vựng không cần quan tâm đến văn
phạm của ngôn ngữ.
Ô tô mat hữu hạn của bộ phân tích từ vựng chỉ
được phép có 1 trạng thái kết thúc duy nhất
Tập chính quy dùng để biểu diễn dạng của các từ
tố
Dãy nào dưới đây chỉ một thứ tự đúng?
Assembler → Compiler → Preprocessor → Linker
Compiler → Assenbler → Preprocessor → Linker
Preprocessor → Compiler → Assembler → Linker
Assembler → Compiler → Linker → Preprocessor
Các lệnh dưới đây, lệnh nào viết bằng mã ba địa chỉ
được giới thiệu ?
t[i+1]:=x
t[i]:=y+1
t[i]:=1 +i
a:=t+b
Trong các văn phạm dưới đây , văn phạm nào nhập
nhằng?
S → Aa, A → Aa, A → a
S → aSb, S → bSa, S → c
S → F, S → (S + F ),F → a
S → 00S, S →S1, S → 1
Cho văn phạm
E -> E - F | E + F | F
F -> F * F | id
Khẳng định nào dưới đây là đúng?
- có thứ tự ưu tiên cao hơn +
- có tứ tự ưu tiên cao hơn *
+ và - có cùng thứ tự ưu tiên
+, * và - có cùng thứ tự ưu tiên
Cho văn phạm với các sản xuất :
S → aB ∣ bA ∣ ε
A → aS ∣ bAA
B → b
Văn phạm này không là LL(1) vì:
văn phạm đệ quy phải
văn phạm vi phạm điều kiện LL(1)
văn phạm nhập nhằng
không phải những lý do nói trên
Hãy cho biết trong các thao tác sau, thao tác nào
thuộc phân tích từ vựng
Kiểm tra xem một chú thích có điểm kết thúc
không
Kiểm tra số chiều của mảng đang sử dụng có đúng
như khai báo không
Kiểm tra xem trong lệnh while có chứa từ khóa do
hay không
Tìm địa chỉ phần tử của mảng trong stack
Xử lý nào có trong bộ phân tích cú pháp theo phương
pháp đệ quy trên xuống cho một tập các sơ đồ cú
pháp của một ngôn ngữ lập trình?
Mỗi nhánh của sơ đồ chuyển thành một lời gọi thủ
tục
Mổi ký hiệu kết thúc trên sơ đồ được chuyển
thành một đoạn đối chiếu với các sản xuất của văn
phạm
Mỗi chu trình được chuyển thành câu lệnh lặp
hoặc một đoạn đối chiếu từ tố phụ thuộc nút tròn
hay nút chữ nhật đứng ở đầu chu trình
Mỗi ký hiệu không kết thúc trên sơ đồ được
chuyển thành một lời gọi thủ tục.
Lựa chọn nào dưới đây là đúng về sự tương ứng của
các công cụ ở Nhóm 1 với các giai đoạn của compiler
ở Nhóm 2?
Nhóm 1 Nhóm 2
A. Biểu thức chính quy 1. Phân tích cú pháp
B. Ôtômat đẩy xuống 2. Sinh mã
C. Đồ thị dòng điều khiển 3. Phân tích từ vựng
D. Phân phối thanh ghi 4. Tối ưu mã
A-4. B-1, C-2, D-3
A-3, B-1, C-4, D-2
A-3, B-4, C-1, D-2
A-2, B-1, C-4, D-3
