1. Trang chủ
  2. » Giáo án - Bài giảng

huong dan lam bai tap mon hoc CTD

8 927 2
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Hướng Dẫn Làm Đồ Án Môn Học Lý Thuyết Chương Trình Dịch
Người hướng dẫn Giảng viên: Hà Chí Trung
Trường học Học Viện Kỹ Thuật Quân Sự
Chuyên ngành Công Nghệ Thông Tin
Thể loại Tài Liệu
Năm xuất bản 2013
Thành phố Hà Nội
Định dạng
Số trang 8
Dung lượng 498,34 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài tập

Trang 1

HỌC VIỆN KỸ THUẬT QUÂN SỰ KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN KHOA HỌC MÁY TÍNH

TÀI LIỆU HƯỚNG DẪN LÀM ĐỒ ÁN MÔN HỌC

LÝ THUYẾT CHƯƠNG TRÌNH DỊCH

Giảng viên: Hà Chí Trung

Hà nội, 2013

Trang 2

I Thực hiện đồ án

Thực hiện đồ án bao gồm 2 phần: phần viết chương trình đồ án (với các bài tập lập trình) và phần viết báo cáo đồ án

I.1 Xây dựng chương trình đồ án (với các bài tập lập trình)

Yêu cầu xây dựng chương trình:

 Sử dụng một trong các ngôn ngữ lập trình như C, C++, C#.net, Delphi, Visual Basic.net hoặc một ngôn ngữ khác Khuyến khích sử dung giao diện winforms

 Chương trình cho phép nhập trực tiếp dữ liệu ( ví dụ, dưới dạng bảng…) từ bàn phím hoặc từ file, đảm bảo dễ sử dụng;

 Code chương trình cần chú giải rõ ràng các lớp, các hàm, các biến chính được

sử dụng

I.2 Viết tiểu luận báo cáo (áp dụng với các bài tập lý thuyết và lập trình)

Viết tiểu luận của đồ án môn (dưới dạng tiểu luận ở định dạng word hoặc slides trình chiếu) phải thể hiện được các phần sau:

1 Trang bìa, thể hiện tên trường, tên đề tài, người hướng dẫn, tên người thực hiện, lớp, ngày hoàn thành (trên 1 slide)

2 Mục lục, thể hiện tên các đề mục, nội dung chính đã làm được (trên 1 slide)

3 Đặt vấn đề: mục đích của việc giải quyết bài tập được giao Nêu và phân tích các vấn đề cần giải quyết của đề tài được giao (ngắn gọn, 1-2 slide)

4 Nêu các kiến thức l{ thuyết liên quan trực tiếp đến đề tài được giao (khái niệm, thuật toán, không quá 3 trang A4 hay 5 slides)

5 Nêu rõ cấu trúc của chương trình, các moduls, các class hay cấu trúc được xây dựng, các hàm cơ bản được sử dụng (thể hiện ngắn gọn, nêu rõ { nghĩa của các hàm, đầu vào, đầu ra – không quá 2 trang giấy A4)

6 Thể hiện bằng sơ đồ khối các bước giải quyết công việc, hoặc sơ đồ thuật toán làm việc của chương trình (trình bày ngắn gọn trên khoảng 1 trang giấy A4)

7 Thể hiện giao diện chính của chương trình, màn hình nhập dữ liệu ban đầu và màn hình kết quả trả về (không quá 2 trang giấy A4)

8 Phụ lục: toàn bộ hoặc 1 phần demo code chính của chương trình có chú giải

rõ ràng (toàn bộ không quá 2 trang giấy A4)

9 Tài liệu tham khảo (nếu có, bao gồm các các sách được tham khảo, website, các code mã nguồn mở được sử dụng (toàn bộ không quá 1 trang giấy A4)

Trang 3

Tổng cộng tiểu luận của đồ án môn được viết trên không quá 15 trang giấy A4 (không quá 20 slides) Sinh viên không nhất thiết phải đóng bìa mềm cho tiểu luận nhưng cần liên kết chúng với nhau nhằm tránh lộn xộn, mất trang

II Trả đồ án

Khi trả đồ án, sinh viên cần mang theo mã nguồn chương trình đã viết, mã đã

được biên dịch, bản mềm tiểu luận của đồ án (hoặc bản in), máy tính cá nhân (nếu

cần thiết cho báo cáo chương trình) Sinh viên có thể trả trước ngày quy định nếu tập hợp được một nhóm từ 3 đồ án trở lên, khi đó có thể thông qua lớp trưởng hoặc

tự liên hệ với giáo viên qua điện thoại, email (địa điểm tại bộ môn KHMT khoa CNTT,

tầng 2 nhà A1) để giáo viên bố trí thời gian nhận đồ án

Đồ án được chấp nhận khi và chỉ khi chương trình hoạt động đúng, có tiểu luận kèm theo

Cách tính điểm đồ án (áp dụng với phần bài tập):

 Chương trình làm việc chính xác, thuật toán đúng đắn – 3 điểm

 Giao diện dễ sử dụng, thân thiện và thể hiện tốt đồ họa – 3 điểm

 Code chương trình được viết có cấu trúc mạch lạc, rõ ràng, thể hiện chú thích miêu tả - 2 điểm

 Tiểu luận thể hiện rõ ràng, sạch sẽ, bố cục hợp l{, thể hiện được các công thức (nếu có), hình vẽ (sơ đồ làm việc), hình minh họa – 2 điểm

Cách tính điểm đồ án (áp dụng với phần l{ thuyết):

 Hiểu đúng các nội dung trong đề tài l{ thuyết được giao – 3 điểm

 Thực hiện được theo từng bước thông qua ví dụ – 3 điểm

 Trả lời đúng các câu hỏi liên quan đến đề tài - 2 điểm

 Tiểu luận thể hiện rõ ràng, sạch sẽ, bố cục hợp l{, thể hiện được các công thức (nếu có), hình vẽ (sơ đồ làm việc), hình minh họa – 2 điểm

Tổng cộng: không quá 10 điểm

Trang 4

DANH SÁCH CÁC ĐỀ BÀI TẬP

I Nhóm bài tập lý thuyết

1

Tìm hiểu các thuật toán xây dựng DFA từ một biểu thức chính quy

sử dụng thuật toán biến đổi trực tiếp, dùng biểu thức gia tố và

phương pháp đệ quy, dùng giải thuật Thompson

2

Xác định biểu thức chính quy biểu diễn cho ngôn ngữ đoán nhận

bởi một automata hữu hạn cho trước bằng phương pháp đệ quy

và phương pháp loại trừ dần các trạng thái

3

Vấn đề biến đổi một văn phạm bất kz thành văn phạm không

chứa yếu tố thừa (loại bỏ lần lượt và loại bỏ đồng thời ba loại luật

sinh vô dụng, trống và đơn vị) và đưa về dạng chuẩn Chomsky,

dạng chuẩn Greibach

4 Biến đổi một CFG về văn phạm không đệ quy trái và đưa về dạng

LL(1)

5 Tìm hiểu về automata đẩy xuống (PDA), biến đổi PDA về văn

phạm phi ngữ cảnh

6 Tìm hiểu về automata đẩy xuống (PDA), xây dựng PDA từ văn

phạm phi ngữ cảnh

7 Tìm hiểu phương pháp phân tích cú pháp CYK (Có mô phỏng các

bước tính toán và dẫn xuất)

8 Tìm hiểu phương pháp phân tích cú pháp Earley (Có mô phỏng

các bước tính toán và dẫn xuất)

9 Cho văn phạm sau: G={ S → AB; A → aA | ; B → bB | }

Lập bảng phân tích cho văn phạm trên Chỉ rõ các bước thực hiện

10 Cho văn phạm {S iEtSS’| a; S’ eS | b } Lập bảng

phân tích cho văn phạm trên Chỉ rõ các bước thực hiện

11

Cho văn phạm:

{E→TE’; E’→ +TE’ | ; T→FT’; T’→*FT’ | ; F→ (E) | a} Lập bảng

phân tích cho văn phạm trên Chỉ rõ các bước thực hiện

12

Cho văn phạm G có dạng như sau:

bexpr→bexpr or bterm | bterm

bterm→bterm and bfactor | bfactor

bfactor→ not bfactor | (bexpr) | true | false

Trong đó:

bexpr, bterm, bfactor là k{ hiệu không kết thúc

or, and, not, true, false, (, ) là k{ hiệu kết thúc

a Xây dựng bộ phân tích cú pháp từ trên xuống bằng cách

Trang 5

TT Nội dung Sinh viên đăng ký

xây dựng bảng phân tích M

b Dựa theo câu (a) hãy trình bày quá trình phân tích cú pháp

cho câu nhập not true and (false or true)

13

Cho văn phạm G =<{not, true, false, or, and, (, )}, {bexpr , bterm,

bfactor}, bterm, P> P là tập các luật sinh như sau:

bexpr→bexpr or bterm | bterm

bterm→bterm and bfactor | bterm

bfactor→not bfactor | (bexpr) | true | false

Xây dựng bảng phân tích SLR cho văn phạm trên Áp dụng phân

tích cú pháp của câu:

not false or (true or false)

14

Cho văn phạm G =<{+, -, *, /, a, b, (, )}, {R}, R, P> P là tập các luật

sinh như sau:

R→R+R | R*R | R-R| R/R | (R) | a| b

Xây dựng bảng phân tích SLR cho văn phạm trên Áp dụng phân

tích cú pháp của câu: (a+b)/a-b*c

15

Cho văn phạm G như sau:

E →E +T |T

T →TF |F

F →F * | a | b

a) Xây dựng bảng phân tích cú pháp SLR cho văn phạm này

b) Thực hiện quá trình phân tích cúpháp SLR cho chuỗi nhập : b +

ab* a

16 Tìm hiểu tính năng InlineAutoComplete trong một số trình duyệt

và chương trình, tính năng tự động hoàn thiện câu lệnh

17 Tìm hiểu thuật toán KMP tìm xâu mẫu trong văn bản cho trước

18 Tìm hiểu vấn đề gán nhãn văn bản tiếng việt và một số phương

pháp gán nhãn văn bản (ít nhất 2 phương pháp)

19 Tìm hiểu vấn đề lập chỉ mục tài liệu trong các hệ thống tìm kiếm

và ít nhất 2 phương pháp lập chỉ mục

20 Tìm hiểu ít nhất 03 phương pháp tách từ tiếng Việt

21 Tìm hiểu ít nhất 03 phương pháp sắp xếp (ranking) tài liệu trả về

trong các máy tìm kiếm

II Nhóm bài tập lập trình

22

Thiết kế, xây dựng một chương trình dịch hướng đối

tượng đơn giản (design a simple object-oriented

compiler/interpreter)

Trang 6

TT Nội dung Miêu tả

23

Tìm hiểu chương trình LEX (Lex compiler) và thiết kế

bộ phân tích từ vựng ngôn ngữ

X(http://userpages.monmouth.com/~wstreett/lex-yacc/lex-yacc.html)

Viết báo cáo tóm tắt về LEX

Tìm hiểu và demo hoạt động của chương trình thông qua ví dụ Viết chương trình cho phép kiểm tra và phân tích từ vựng của mã nguồn trên ngôn ngữ lập trình Pascal Mọi thao tác nhập/xuất đều thông qua các form của chương trình

24

Tìm hiểu chương trìn YACC () và thiết kế bộ phân tích

cú pháp cho ngôn ngữ Pascal (tham khảo thêm tại

http://stackoverflow.com/questions/5456011/how-to-compile-lex-yacc-files-on-windows)

Viết báo cáo tóm tắt về YACC Tìm hiểu và demo hoạt động của chương trình thông qua ví dụ Viết chương trình cho phép kiểm tra cú pháp các cấu trúc lệnh cơ bản trong C Giao diện winform, mọi thao tác nhập xuất dữ liệu đều thông qua cửa sổ của chương trình

25

Tìm hiểu chương trình LEX (Lex compiler) và thiết kế

bộ phân tích từ vựng ngôn ngữ C (tham khảo thêm

tại

http://stackoverflow.com/questions/5456011/how-to-compile-lex-yacc-files-on-windows)

Tìm hiểu và demo hoạt động của chương trình thông qua ví dụ Kiểm tra và phân tích từ vựng của

mã nguồn trên ngôn ngữ lập trình

C Mọi thao tác nhập/xuất đều thông qua các form của chương trình

Viết báo cáo tóm tắt về LEX

26

Tìm hiểu chương trìn YACC và thiết kế bộ phân tích

cú pháp cho ngôn ngữ X (tham khảo thêm tại

http://stackoverflow.com/questions/5456011/how-to-compile-lex-yacc-files-on-windows)

Viết báo cáo tóm tắt về YACC Tìm hiểu và demo hoạt động của chương trình thông qua ví dụ

Có thể kiểm tra cú pháp các cấu trúc lệnh cơ bản của mã nguồn trên ngôn ngữ lập trình C Mọi thao tác nhập/xuất đều thông qua các form của chương trình

27

Tìm hiểu chương trình VnTagger và viết ứng dụng

winform để gán nhãn văn bản tiếng việt SV: Trần Thị Thắm, Trần Thị Huệ

K24-buổi tối

28

Tìm hiểu chương trình vnTokenizer

(http://www.loria.fr/~lehong/tools/vnTokenizer.php)

và xây dựng một ứng dụng

Tìm hiểu chương trình phân tích từ vựng tiếng việt VNTokenizer, viết ứng dụng cho phép: thống kê từ trong văn bản, kết hợp gán nhãn từ loại, trích trọn đặc trưng của văn bản đầu vào theo định luật Zipf Mọi thao tác nhập/xuất đều thông qua các form của chương trình

29 Tìm hiểu GOLD Parsing System

(http://goldparser.org/) và xây dựng ứng dụng

Chương trình dịch tựa như LEX và YACC, giao diện cửa sổ, tìm hiểu và

Trang 7

TT Nội dung Miêu tả

viết ứng dụng đi kèm cho phép phân tích từ vựng và cú pháp của

mã nguồn trên ngôn ngữ C

30

Sử dụng biểu thức chính quy viết chương trình tìm

kiếm theo mẫu (RE) các thực thể hoặc từ vựng trong

bản cho trước

Cài đặt chương trình tìm kiếm đơn giản theo RE, cho phép nhận dạng được ít nhất 5 dạng thực thể khác nhau: ví dụ các hòm thư, số điện thoại, tên riêng, địa chỉ URL, ngày tháng xuất hiện trong văn bản Viết chương trình phân tích văn bản và thống kê tự động các đối tượng trên, chương trình có thể đánh dấu (highlight) từ khóa trong văn bản hoặc đưa ra bảng thống kê (VD: trong office word) Để đơn giản có thể làm việc với file định dạng *.rtf

31

Viết chương trình cho phép chuyển đổi một văn

phạm CFG bất kz về dạng chuẩn Chomsky và dạng

chuẩn Greibach

32

Sử dụng biểu thức chính quy, viết chương trình bóc

tách thông tin tự động về một sản phẩm (ví dụ: máy

tính, điện thoại, bất động sản, ) từ các mẩu tin

Nếu có thể viết chương trình dạng add-in cho MSWord

SV: Phạm Việt Anh K24-buổi tối

33 Viết ứng dụng cho phép tự động tạo, xóa, sửa tên

các file và thư mục theo các mẫu (RE, RD)

SV: Nguyễn Việt Cường K24-buổi tối

34 Viết chương trình biến đổi trực tiếp RE về DFA

Dựa trên mã nguồn có sẵn, viết chương trình cho phép xây dựng DFA trực tiếp từ RE

35 Viết chương trình cho phép lập bảng phân tích của

phương pháp phân tích đoán trước

36 Viết chương trình biến đổi trực tiếp DFA về RE

Dựa trên mã nguồn có sẵn, viết chương trình cho phép biến đổi trực tiếp 1 automata hữu hạn về biểu thức chính quy

SV: Nguyễn Xuân Hùng, Nguyễn Chế Linh K24-buổi tối

37

Viết chương trình phân tích cú pháp theo phương

pháp Earley (Có mô phỏng các bước tính toán và dẫn

xuất, nếu có)

38

Viết chương trình phân tích cú pháp theo phương

pháp vét cạn Có trình bày tuần tự các bước phân

tích và dẫn xuất nếu có

39

Viết chương trình nhận dạng các token từ khoá

(begin, end, var, if, then, for, to), số nguyên, số thực,

tên biến, phép gán, phép so sánh, các phép toán số

học (+, -, *, /) của một chương trình viết bằng Pascal

Trang 8

TT Nội dung Miêu tả

Chương trình phải được thực hiện theo mô hình l{

thuyết automata

40

Ứng dụng automata hữu hạn, viết chương trình

chuyển mã của các file text giữa ít nhất 3 bảng mã

thông dụng hiện nay VNI, Unicode,

41

Xây dựng chương trình soạn thảo, hoặc dạng add-in

vào trong chương trình soạn thảo, cho phép tìm kiếm

một số thông tin dạng đặc biệt (ví dụ tên tuổi, địa

danh, số đt, vvv…)

42

Viết chương trình phân tích cú pháp theo phương

pháp LL(k) Có trình bày các bước tính toán và dẫn

xuất nếu có

43

Viết chương trình phân tích cú pháp theo phương

pháp LR(k) Có trình bày các bước tính toán và dẫn

xuất nếu có

44

Viết chương trình phân tích cú pháp cho ngôn ngữ

Pascal đơn giản (bao gồm các khai báo hàm, thủ tục,

khai báo biến, begin, end, lệnh if, lệnh lặp for, repeat

… until, while … do, các phép so sánh, các phép toán

số học)

Xây dựng chương trình thực hiện các nhiệm vụ sau trên ngôn ngữ Java hoặc C, C++ (có thể dùng các chương trình hỗ trợ trên mạng và nêu rõ cách thực hiện: lex, Jlex, JFlex, yacc, CUP,…)

45

Mô phỏng máy tính bỏ túi (gồm các phép toán cộng

trừ nhân chia, lũy thừa, loga) theo cách cài đặt đệ qui

trên xuống

46

Mô phỏng máy tính bỏ túi (gồm các phép toán cộng

trừ nhân chia, lũy thừa, loga) theo cách cài đặt sử

dụng thứ bậc toán tử

47 Mô phỏng máy tính bỏ túi (gồm các phép toán cộng

trừ nhân chia và các hàm lượng giác)

48

Tính toán các hàm số logic viết theo dạng tuyển

chuẩn tắc (tuyển của các hội) theo cách cài đặt đệ

qui trên xuống

49

Tính toán các hàm số logic viết theo dạng tuyển

chuẩn tắc (tuyển của các hội) theo cách cài đặt sử

dụng thứ bậc toán tử

50 Viết chương trình tính FIRST và FOLLOW cho một văn

phạm

III Nhóm bài tập tự chọn: Ngoài những bài tập liệt kê ở trên, khuyến khích sinh viên

lựa chọn những bài tập sát với yêu cầu các bài toán thực tiễn và được sự nhất trí của giáo viên

IV Nhóm không thực hiện bài tập: Sinh viên có thể lựa chọn theo nhóm này, cách

kiểm tra đánh giá sẽ thông báo sau

Ngày đăng: 25/05/2013, 13:00

TỪ KHÓA LIÊN QUAN

w