これがベトナム大学院の実態だ!

Trường Đại Học Bách Khoa Thành Phố Hồ Chí Minhの大学院修士課程に社会人入学

Nguyên lý ngôn ngữ lập trình 3回目

2019年9月16日、Nguyên lý ngôn ngữ lập trìnhの2回目授業が実施された。
前回の授業でいきなり小テストが行われたので、今回は授業開始2時間前に乗り込んだ。
この時間帯だと渋滞もない。できれば毎回この時間に行きたいぐらいだ。
さて、授業開始30分前にはサイトには何の変化もなかったが、開始10分前になって突然「Lexer Quiz 2 (1609)」の表示が。てっきり今回の内容の小テストと思っていたが、まさか前回と同じ範囲とは。
しかし、小テストにはパスワードがかかっており、教員が来るまではログインできない仕組みだ。
そして18:00ちょうどになって教員登場。すぐさま黒板にパスワードが書かれた。
小テストの制限時間は12分、終了時刻は6:17 PMとなっており、5分ぐらいの遅刻なら12分まるまる使えるということになる。
今回は遅刻がなかったので、18:01にはログインできたと思われ、ロスはなかった。
気になる問題はこれだ。
Câu hỏi 1
Chính xác
Điểm 1,00 của 1,00
Không được bật cờCờ câu hỏi
Nội dung câu hỏi
Given the regular expression for a decimal integer literal in C language:

0|[1-9][0-9]*

Select the strings that can be expressed by the above regular expression?



Chọn một hoặc nhiều hơn:
a. 0 Chính xác
b. 00
c. 102 Chính xác
d. -12
Thông tin phản hồi
Câu trả lời của bạn là chính xác.
Câu trả lời đúng là: 102, 0
Câu hỏi 2
Chính xác
Điểm 1,00 của 1,00
Không được bật cờCờ câu hỏi
Nội dung câu hỏi
Select the regular expression such that it can match the strings in MATCH set but NOT in SKIP set:

MATCH SET: 3.14159

-255.34

128e5

1.9e10

123,340.00

SKIP SET: 720

4.e5

Chọn một hoặc nhiều hơn:
a. -?([0-9,])+(\.[0-9]*)?(e[0-9]+)?
b. [+-]?[0-9]+(\.[0-9]+)?(e[0-9]+)?
c. [+-]?[0-9]([0-9][0-9]?)?(,[0-9][0-9][0-9])*( \.[0-9]*([eE][+-]?[0-9]+)? | [eE][+-]?[0-9]+)
d. -?[0-9,]+(\.[0-9]+(e[0-9]+)? | e[0-9]+) Chính xác
e. [+-]?[0-9]([0-9][0-9]?)?(,[0-9][0-9][0-9])*(\.[0-9]+([eE][+-]?[0-9]+)?)?
Thông tin phản hồi
Câu trả lời của bạn là chính xác.
Câu trả lời đúng là: -?[0-9,]+(\.[0-9]+(e[0-9]+)? | e[0-9]+)
Câu hỏi 3
Chính xác
Điểm 1,00 của 1,00
Không được bật cờCờ câu hỏi
Nội dung câu hỏi
Select the regular expressions that describe the following comparison operators in C language: >=, >, <, <= ?

Chọn một hoặc nhiều hơn:
a. ((< | >)*=)*
b. > | >= | < | <= Chính xác
c. (< | >)=? Chính xác
d. (<)(=)* | (>)(=)*
Thông tin phản hồi
Câu trả lời của bạn là chính xác.
Câu trả lời đúng là: (< | >)=?, > | >= | < | <=
Câu hỏi 4
Chính xác
Điểm 1,00 của 1,00
Không được bật cờCờ câu hỏi
Nội dung câu hỏi
Which string belongs to the language described by RE: [^a-z][a-zA-Z0-9]*

?

Chọn một:
a.
kAM2

b.
ma09

c. A Chính xác
d.
Aa9#

Thông tin phản hồi
Câu trả lời của bạn là chính xác.
Câu trả lời đúng là: A
Câu hỏi 5
Đúng một phần
Điểm 0,67 của 1,00
Không được bật cờCờ câu hỏi
Nội dung câu hỏi
Which regular expression(s) describes an integer literal in Pascal language? Remind that an integer literal in Pascal language is a non-empty sequence of digits.

Chọn một hoặc nhiều hơn:
a. (+|-)?[0-9]+
b. 0 | [1-9][0-9]* Không chính xác
c. [0-9]*
d. [0-9]+ Chính xác
Thông tin phản hồi
Câu trả lời của bạn là đúng một phần.
Bạn đã chọn quá nhiều tùy chọn.
Câu trả lời đúng là: [0-9]+
Câu hỏi 6
Chính xác
Điểm 1,00 của 1,00
Không được bật cờCờ câu hỏi
Nội dung câu hỏi
Which RE describes all non-empty strings on {a,b} including only one appearance of aa ?


Chọn một:
a.
[aab]+

b.
[ab]*aa[ab]* Chính xác

c.
(aa | b)+

d.
[ab]+

Thông tin phản hồi
Câu trả lời của bạn là chính xác.
Câu trả lời đúng là:
[ab]*aa[ab]*

Câu hỏi 7
Chính xác
Điểm 1,00 của 1,00
Không được bật cờCờ câu hỏi
Nội dung câu hỏi
Select the strings that can be expressed by the following DFA:

que5-1

Chọn một hoặc nhiều hơn:
a. aaabaabba
b. aababbaa
c. ba Chính xác
d. baaababa Chính xác
Thông tin phản hồi
Câu trả lời của bạn là chính xác.
Câu trả lời đúng là: baaababa, ba
Câu hỏi 8
Chính xác
Điểm 1,00 của 1,00
Không được bật cờCờ câu hỏi
Nội dung câu hỏi
Select the regular expression that is equivalent to the following DFA:

que5-1

Chọn một:
a. a+ba*(ba+ba*)*
b. a*ba*(ba*ba*)*
c. a*ba+(ba*ba+)+
d. a*ba(aa|ba*b)* Chính xác
Thông tin phản hồi
Câu trả lời của bạn là chính xác.
Câu trả lời đúng là: a*ba(aa|ba*b)*
Câu hỏi 9
Không chính xác
Điểm 0,00 của 1,00
Không được bật cờCờ câu hỏi
Nội dung câu hỏi
How many tokens are there returned by the lexical analysis for the following input written in C language:

p = q[12] + -24 * (10.3e5 - 32);

Trả lời:
21
Không chính xác
Thông tin phản hồi
Câu trả lời đúng là: 17
Câu hỏi 10
Chính xác
Điểm 1,00 của 1,00
Không được bật cờCờ câu hỏi
Nội dung câu hỏi
Which regular expression is equivalent to the RE: a (a | b)* ?


Chọn một:
a.
aa|b*

b.
a(a*b*)* Chính xác

c.
a (a | b)(a | b)*

d.
(a | b)*

Thông tin phản hồi
Câu trả lời của bạn là chính xác.
Câu trả lời đúng là:
a(a*b*)*

これでなんと87%の正解率を得た。
前回の範囲とはいえ、かなりいい出来だ。
その後受験者24名のの点数分布図を見させられたところ、上位3名にランクインしていた。
実はこの試験後トイレ兼給水休憩を取ったのだが、実は小テストは2個ぶっ続けで行われていた。
幸い食事ではないので数分で戻れたため何の実害もなかったが、前回同様だまし討ち、卑怯なやり方だ。
2個目の小テストは今回の範囲、と言っても結論からいうと結局この日は前回の範囲の問題を継続しているうちに授業時間は終わってしまったが。
あいにくと2個目の小テストは点数が出るだけで、どの問題を間違ったかを含め、問題を見ることができない。これまた卑怯なやり方だ。
その後、例によって「番号!」「1!」「2!」と点呼が行われて席替え。
どうやら13で割った余りの座席につくようだ。この方式だと誰とコンビを組むかわからず、普段仲の良い学生と一緒に作業するということができない。まあ誰と組んでもそんなに変わらないが。
前回のチュートリアルファイルのQ3とQ4の解説がメインで行われ、この日は終了となった。
本来この日行われるはずであった内容のチュートリアルファイル(2年前と同じもの)を前もって予習というか事前に問題をやっておき速攻で提出するという手筈であったが、今年になって授業の進度がゆっくりになったようだ。
この分だと全20回でコード生成まではいかないかもしれない。内容が少なくなり、その分じっくり取り組むのであればいいことだ。
100の内容をやろうとして結局20しか理解できないぐらいであれば、はじめから60の内容だけを扱い、その代わり55ぐらいは理解できるとかの方がよっぽど有意義だ。