
Khoa Khoa học & Kỹthuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Lập trình hướng ₫ối tượng
Chương 1 : Ôn các kiến thức vềcú pháp ngôn ngữVC#
Slide 1
1.0 Dẫn nhập
1.1 Tổng quát vềmáy tính và ngôn ngữVC#
1.2 Tập ký tự cơ bản của ngôn ngữVC#
1.3 Extended Backus-Naur Form (EBNF) notation
1.4 Cú pháp ₫ịnh nghĩa tên nhận dạng (Name)
1.5 Cú pháp ₫ịnh nghĩa dấu ngăn (Seperator)
1.6 Cú pháp ₫ịnh nghĩa biểu thức
1.7 Qui trình tính biểu thức
1.8 Các lệnh ₫ịnh nghĩa các thành phần phần mềm
1.9 Các lệnh thực thi
1.10 Kết chương
Chương 1
Ôn các kiến thức vềcú pháp ngôn ngữVC#
Khoa Khoa học & Kỹthuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Lập trình hướng ₫ối tượng
Chương 1 : Ôn các kiến thức vềcú pháp ngôn ngữVC#
Slide 2
1.0 Dẫn nhập
Chương này sẽtóm tắt lại 1 sốkiến thức cơ bản vềcú pháp của
ngôn ngữVC# hầu giúp các SV có góc nhìn tổng thểvà hệthống
vềngôn ngữVC#, nhờ ₫ócónhiều thuận lợi hơn trong việc học
các kiến thức của môn học này.

Khoa Khoa học & Kỹthuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Lập trình hướng ₫ối tượng
Chương 1 : Ôn các kiến thức vềcú pháp ngôn ngữVC#
Slide 3
1.1 Tổng quát vềmáy tính và ngôn ngữVC#
Máy tính sốlà thiết bị ₫ặc biệt, nó là thiết bịtổng quát hóa, nghĩa
là có thểthực hiện nhiều công việc khác nhau. Ta có thểnói máy
tính sốlà thiết bịvạn năng.
Vậy tại 1 thời ₫iểm xác ₫ịnh, máy tính thực hiện công việc gì ? Nó
không làm gì cảnếu con người không yêu cầu cụthểnó.
Làm sao ₫ể con người có thểyêu cầu máy tính thực hiện 1 công
việc nào ₫ó? Ta phải viết chương trình giải quyết công việc tương
ứng rồi ₫ưa vào máy và nhờmáy chạy dùm.
Viết chương trình là qui trình lớn và dài hạn gồm nhiều bước, trong
₫ócác bước chính yếu là : xác ₫ịnh chính xác các chức năng của
chương trình, phân tích cách giải quyết từng chức năng, tìm thuật
giải chi tiết ₫ể giải quyết từng chức năng, ₫ổi thuật giải chi tiết từ
ngôn ngữ ₫ời thường thành ngôn ngữlập trình cho máy hiểu.
Khoa Khoa học & Kỹthuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Lập trình hướng ₫ối tượng
Chương 1 : Ôn các kiến thức vềcú pháp ngôn ngữVC#
Slide 4
1.1 Tổng quát vềmáy tính và ngôn ngữVC#
Ngôn ngữlập trình là ngôn ngữgiao tiếp giữa người và máy. Học
ngôn ngữlập trình cũng giống như học ngôn ngữtựnhiên, nghĩa
là học tuần tựcác thành phần của ngôn ngữtừthấp ₫ến cao như :
Tập ký tự cơ bản
Cú pháp xây dựng từ(word). Từ ₫ược dùng ₫ể ₫ặt tên nhận
dạng cho từng phần tửcấu thành chương trình như hằng gợi
nhớ, biến, hàm chức năng, class ₫ối tượng,…
Cú pháp xây dựng biểu thức. Biểu thức (công thức toán học)
miêu tả1 quá trình tính toán tuần tựnhiều phép toán trên
nhiều dữliệu ₫ể tạo ra kết quảtính toán.
Cú pháp xây dựng từng câu lệnh : có 2 loại câu lệnh : lệnh ₫ịnh
nghĩa và lệnh thực thi :

Khoa Khoa học & Kỹthuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Lập trình hướng ₫ối tượng
Chương 1 : Ôn các kiến thức vềcú pháp ngôn ngữVC#
Slide 5
1.1 Tổng quát vềmáy tính và ngôn ngữVC#
àLệnh ₫ịnh nghĩa ₫ược dùng ₫ể ₫ịnh nghĩa và tạo mới phần
tửcấu thành phần mềm.
àLệnh thực thi miêu tả1 hành ₫ộng cụthểcần phải thực
hiện.
Cú pháp tổchức 1 hàm chức năng
Cú pháp tổchức 1 class chức năng
Cú pháp tổchức 1 chương trình.
Khoa Khoa học & Kỹthuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Lập trình hướng ₫ối tượng
Chương 1 : Ôn các kiến thức vềcú pháp ngôn ngữVC#
Slide 6
1.2 Tập ký tự cơ bản của ngôn ngữVC#
Ngôn ngữVC# hiểu và dùng tập ký tựUnicode. Cụthểtrên
Windows, mỗi ký tựUnicode dài 2 byte (16 bit) => có 65536 ký tự
Unicode khác nhau trên Windows.
Mặc dù vậy, VC# dùng chủyếu các ký tự:
àchữ(a-z tiếng Anh), '_',
àký tựsố(0-9),
àkhoảng trắng và các dấu ngăn như Tab (gióng cột), CR (quay
về ₫ầu dòng), LF (xuống dòng).
àcác ký tự ₫ặc biệt ₫ể miêu tảphép toán như +, -, *, /, =, !, (, )
Các ký tựkhác, nhất là các ký tựcó mã > 256 chỉ ₫ược dùng trong
lệnh chú thích. Các ký tựcó dấu tiếng Việt có mã từ7840-7929.

Khoa Khoa học & Kỹthuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Lập trình hướng ₫ối tượng
Chương 1 : Ôn các kiến thức vềcú pháp ngôn ngữVC#
Slide 7
1.3 Extended Backus-Naur Form (EBNF) notation
Ta sẽdùng qui ước EBNF ₫ể miêu tảcú pháp xây dựng các phần
tửcủa ngôn ngữVC#. Cụthểta sẽdùng các qui ước EBNF sau
₫ây :
#xN, trong ₫ó N là chuỗi ký tựthập lục phân. Qui ước này miêu
tả1 ký tựcó mã thập lục phân tương ứng. Thí dụta viết #x3e
₫ể miêu tảký tự>.
[a-zA-Z], [#xN-#xN], trong ₫ó N là chuỗi ký tựthập lục phân.
Qui ước này miêu tả1 ký tựthuộc danh sách ₫ược liệt kê. Thí
dụta viết [0-9] ₫ể miêu tả1 ký tựsốthập phân từ 0 ₫ến 9.
[^a-zA-Z], [^#xN-#xN], trong ₫ó N là chuỗi ký tựthập lục phân.
Qui ước này miêu tả1 ký tựkhông thuộc danh sách ₫ược liệt
kê. Thí dụta viết [^0-9] ₫ể miêu tả1 ký tựbất kỳ nhưng không
phải là sốthập phân từ 0 ₫ến 9.
Khoa Khoa học & Kỹthuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Lập trình hướng ₫ối tượng
Chương 1 : Ôn các kiến thức vềcú pháp ngôn ngữVC#
Slide 8
1.3 Extended Backus-Naur Form (EBNF) notation
[^abc], [^#xN#xN#xN], trong ₫ó N là chuỗi ký tựthập lục phân.
Qui ước này miêu tả1 ký tựkhông thuộc danh sách ₫ược liệt
kê. Thí dụta viết [^<@] ₫ể miêu tả1 ký tựbất kỳ nhưng không
phải là < hay @.
"string". Qui ước này miêu tảchuỗi ký tựcó nội dung nằm trong
2 dấu nháy kép. Thí dụta viết "DHBK" ₫ể miêu tảchuỗi ký tự
DHBK.
'string'. Qui ước này miêu tảchuỗi ký tựcó nội dung nằm trong
2 dấu nháy ₫ơn. Thí dụta viết 'DHBK' ₫ể miêu tảchuỗi ký tự
DHBK.
(expression). Qui ước này miêu tảkết quảcủa việc tính biểu
thức. Thí dụ (DefStatement | ExeStatement) ₫ể miêu tảsựtồn
tại của phần tửDefStatement hay ExeStatement.

Khoa Khoa học & Kỹthuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Lập trình hướng ₫ối tượng
Chương 1 : Ôn các kiến thức vềcú pháp ngôn ngữVC#
Slide 9
1.3 Extended Backus-Naur Form (EBNF) notation
A? miêu tảcó từ0 tới 1 lần A. Thí dụS? miêu tảcó từ0 tới 1
phần tửS.
A+ miêu tảcó từ1 tới n lần A. Thí dụS+ miêu tảcó từ1 tới n
phần tửS.
A* miêu tảcó từ0 tới n lần A. Thí dụS* miêu tảcó từ0 tới n
phần tửS.
A B miêu tảphần tửA rồi tới phần tửB.
A | B miêu tảchọn lựa A hay B.
A - B miêu tảchuỗi thỏa A nhưng không thỏa B.
/* ... */ miêu tảchuỗi chú thích.
Khoa Khoa học & Kỹthuật Máy tính
Trường ĐH Bách Khoa Tp.HCM
© 2010
Môn : Lập trình hướng ₫ối tượng
Chương 1 : Ôn các kiến thức vềcú pháp ngôn ngữVC#
Slide 10
1.4 Cú pháp ₫ịnh nghĩa tên nhận dạng (Name)
Mỗi phần tử trong chương trình ₫ều ₫ược nhận dạng bởi 1 tên
nhận dạng riêng biệt. Tên là chuỗi có ít nhất 1 ký tự, ký tự ₫ầu là
những ký tựthỏa luật NameStartChar, các ký tựcòn lại thỏa luật
NameChar. Cú pháp ₫ịnh nghĩa tên của VC# là :
Name ::= NameStartChar (NameChar)*
NameStartChar ::= [a-zA-Z_]
NameChar ::= NameStartChar | [0-9]
Dựa vào cú pháp trên, ta nói tên nhận dạng là 1 chuỗi từ1 tới
nhiều ký tự, ký tự ₫ầu phải là ký tựchữhay dấu _, các ký tựcòn
lại có thểlà chữ, sốhay dấu _. Độ dài maximum của tên là 255.
Thí dụSystem, Console, Writeln...

