Bài giảng Nguyên lý ngôn ngữ lập trình - Chương 1: Giới thiệu - Nguyễn Văn Hòa
NGUYÊN LÝ NGÔN NGꢀ
LꢁP TRÌNH
Giꢀng viên: Nguyꢁn Văn Hòa
Khoa KT-CN-MT – ðH An Giang
1
Thông tin cꢂn thiꢃt
ꢀ Chꢃ liên lꢄc qua ñiꢅn thoꢄi nꢆu thꢇt cꢈn thiꢆt
ꢀ Tài liꢅu cꢉa môn hꢊc:
ꢀ Qui ñꢂnh trong lꢋp:
2
Mꢄc tiêu cꢅa môn hꢆc
ꢀ Nꢌm ñưꢍc các nguyên lý (NL) cꢉa ngôn ngꢎ lꢇp
trình (NNLT)
ꢀ Tìm hiꢏu sꢐ phát triꢏn cꢉa NNLT
ꢀ Nꢌm ñưꢍc các kiꢏu dꢎ liꢅu và các cꢑu trúc ñiꢒu
khiꢏn
ꢀ Hiꢏu ñưꢍc các phương thꢓc (paradigm) lꢇp trình
(LT) như hưꢋng ñꢔi tưꢍng, hàm, logic và song
song
3
Yêu cꢂu môn hꢆc
ꢀ Lꢇp trình bꢕng Pascal, C và C++, Java, C#
ꢀ Sinh viên phꢀi dꢐ lꢋp ñꢈy ñꢉ
ꢀ Tham gia nhꢎng lꢈn kiꢏm tra tꢄi lꢋp
4
ðánh giá môn hꢆc
ꢀ Dꢐ lꢋp: 10%
ꢀ Kiꢏm tra: 40%
ꢀ Thi hꢆt môn : 50%
ꢀ Question & discussion!!!
5
Nꢇi dung môn hꢆc
ꢀ Giꢋi thiꢅu ngôn ngꢎ lꢇp trình
ꢀ Các kiꢏu dꢎ liꢅu
ꢀ Các cꢑu trúc ñiꢒu khiꢏn
ꢀ Chương trình con
ꢀ Ngôn ngꢎ lꢇp trình hưꢋng ñꢔi tưꢍng
ꢀ Ngôn ngꢎ lꢇp trình hàm
ꢀ Ngôn ngꢎ lꢇp trình logic
ꢀ Ngôn ngꢎ lꢇp trình song song
6
Tài liꢈu tham khꢉo
ꢀ Giáo trình Ngôn ngꢀ lꢁp trình, Nguyꢁn Văn Linh,
2003, ðHCT
ꢀ Ngôn ngꢀ lꢁp trình: các nguyên lý và mô hình,
Cao Hoàng Trꢖ, ðH QG HCM, 2004
ꢀ Concept of Programming Languages, Robert W.
Sebesta, Sixth Edition, 2004
7
Chương 1: Giꢊi thiꢈu
8
Nꢇi dung
ꢀ Giꢋi thiꢅu
ꢀ Lꢂch sꢗ phát triꢏn cꢉa máy tính
ꢀ Lꢂch sꢗ phát triꢏn cꢉa NNLT
ꢀ Vai trò cꢉa NNLT
ꢀ Lꢍi ích cꢉa viꢅc hꢊc NNLT
ꢀ Các tiêu chuꢘn ñánh giá NNLT
9
Giꢊi thiꢈu
ꢀ Lꢇp trình máy tính
ꢁ Lꢇp trình máy tính là mꢙt cách nghĩ vꢒ các vꢑn ñꢒ
ꢁ Biên dꢂch thành nhꢎng chꢃ thꢂ ñꢏ máy tính thꢐc thi
ꢁ Sꢀn phꢘm là các chương trình
ꢀ Chương trình
ꢁ Mꢙt tꢇp hꢍp riêng biꢅt các hoꢄt ñꢙng có thꢓ tꢐ cho mꢙt
máy tính thꢐc hiꢅn
ꢁ Chương trình bao gꢚm mꢙt chuꢛi các chꢃ thꢂ lꢈn lưꢍt
mà máy tính phꢀi tuân theo
10
Giꢊi thiꢈu (tt)
ꢀ Lꢇp trình
ꢁ Thao tác nhꢕm kiꢆn tꢄo nên các chương trình máy tính
thông qua các ngôn ngꢎ lꢇp trình
ꢁ Còn gꢊi là quá trình mã hoá thông tin tꢐ nhiên thành
ngôn ngꢎ máy
ꢁ Quá trình này còn ñưꢍc gꢊi là là "viꢆt mã“
ꢀ Mã nguꢚn chương trình
ꢁ Nhꢎng chꢃ thꢂ góp phꢈn tꢄo nên chương trình ñưꢍc gꢊi
là mã nguꢚn cꢉa chương trình
ꢁ Mꢛi NNLT cũng chính là mꢙt chương trình, ñưꢍc dùng
ñꢏ tꢄo nên các chương trình khác
11
Ngôn ngꢋ lꢌp trình
ꢀ NNLT là ngôn ngꢎ dùng ñꢏ viꢆt các chương trình
cho máy tính
ꢀ NNLT có tꢜ vꢐng, cú pháp và ngꢎ nghĩa (trình
biên dꢂch)
ꢀ Ba loꢄi NNLT:
ꢁ Ngôn ngꢎ máy (nhꢂ phân)
ꢁ Hꢍp ngꢎ (NN cꢑp thꢑp)
ꢁ Ngôn ngꢎ cꢑp cao (Pascal, C, C++, Java,…)
12
ðꢍc tính cꢅa ngôn ngꢋ máy
ꢀ Mã lꢅnh nhꢂ phân ñꢏ thꢐc thi tác vꢖ
ꢀ Dòng ñiꢒu khiꢏn (control flow) dꢐa trên labels và
rꢝ nhánh có ñiꢒu kiꢅn (conditional branches)
ꢀ Tưꢞng minh vꢒ ñꢂa chꢃ (location), e.g. registers,
cho các biꢆn và kꢆt quꢀ trung gian
ꢀ Tưꢞng minh vꢒ quꢀn lý bꢙ nhꢋ (e.g stack)
13
ðꢍc tính cꢅa NNLT
ꢀ Diꢁn ñꢄt ꢟ mꢓc phꢓc tꢄp (toán hꢊc, logic)
ꢀ Có cꢑu trúc ñiꢒu khiꢏn (Loops, Selection, Cases)
ꢀ Sꢐ kꢆt hꢍp kiꢏu cơ bꢀn (array, record, etc)
ꢀ Khai báo và kiꢏm tra kiꢏu
ꢀ Hꢛ trꢍ nhiꢒu cách lưu trꢎ (global/local/heap)
ꢀ Procedure/function
ꢀ Kiꢏu dꢎ liꢅu trù tưꢍng, module, object, etc
14
Lꢎch sꢏ phát triꢐn cꢅa máy tính
Máy tính c
•N 1837
ðꢍ
ꢅa Babbage
ăm
•
c ñiꢐm
Store (memory)
Mill (CPU)
Looping
Conditional
=> Không thành công
15
Lꢎch sꢏ phát triꢐn cꢅa máy tính (tt)
ꢀ
ENIAC: plug and play circa 1945
16
Lꢎch sꢏ phát triꢐn cꢅa NNLT
ꢀ
Sꢐ phát triꢏn cꢉa NNLT gꢌng liꢒn vꢋi khoa hꢊc máy tính
ꢁ
ꢁ
ꢁ
ꢁ
ꢁ
ꢁ
ꢁ
ꢁ
ꢁ
ꢁ
1920’s: computer ~ «person»
1936: Church’s Lambda Calculus (= PL!)
1937: Shannon’s digital circuit design
1940’s: first digital computers
1950’s: FORTRAN (= PL!)
1958: LISP (LISt Processing language)
1960’s: Unix
1972: C Programming Language
1981: TCP/IP
1985: Microsoft Windows
17
Bꢑn biꢃt ñưꢒc nhꢋng NNLT nào?
ꢀ FORTRAN, COBOL, RPG, (Visual) BASIC,
ALGOL-60, ALGOL-68, PL/I,
ꢀ C, C++, Java, C#, Pascal, Modula, Oberon, Lisp,
Scheme, ML, Haskell,
ꢀ Ada, Prolog, Goedel, Curry, Snobol, ICON,
ꢀ . . .
18
19
Tꢑi sao có rꢓt nhiꢔu NNLT
ꢀ Sꢐ ña dꢄng vꢒ ñꢠc ñiꢏm
ꢁ e.g. goto vs if-then, swich-case, while-do
ꢁ Quꢀn lý bꢙ nhꢋ: programmer (C,C++) vs. language
(Java through garbage collection)
ꢀ Sꢐ ưa thích cꢉa lꢇp trình viên
ꢁ procedure vs. function
ꢀ Sꢐ phát triꢏn cꢉa phꢈn cꢓng
ꢀ Mꢖc tiêu ñꢠc biꢅt cꢉa tꢜng NNLT
20
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Nguyên lý ngôn ngữ lập trình - Chương 1: Giới thiệu - Nguyễn Văn Hòa", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_nguyen_ly_ngon_ngu_lap_trinh_chuong_1_gioi_thieu_n.pdf

