CTT003 Ch01 GioiThieuTongQuanVeLapTrinh

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 31

Nhp mn lp trnh

ThS. ng Bnh Phng (dbphuong@fit.hcmus.edu.vn)


Khi nim v chng trnh my tnh
Cc ngn ng lp trnh
Cc khi nim c bn v lp trnh
Cc vn tm hiu m rng kin thc
ngh nghip
Thut ng v bi c thm ting Anh

10/7/2013 Khoa CNTT - H Khoa hc t nhin 2


Khi nim
CPU ca my tnh c thit k c th thc
hin c cc chng trnh m my (machine
code program) c h iu hnh (HH) np
vo RAM ca my tnh.
Chng trnh m my thng phi tng thch
vi tng h my c th, bao gm tp hp cc ch
th c vit bng cc lnh CPU ca h my ,
c lu trn a di dng mt tp tin m thc
thi (executable program file) ca HH c th.

10/7/2013 Khoa CNTT - H Khoa hc t nhin 4


Qui trnh thc hin
B1. Ngi s dng (ngi dng cui end
user) ra lnh thc hin (chy) chng trnh.
B2. HH nhn c lnh s thc hin:
Tm v np tp tin m thc thi ca chng trnh
(nm trn a) vo RAM ca my tnh.
B m lnh ca CPU (CPU program counter) c
tr n lnh u tin ca chng trnh (cn gi l
ng v chng trnh program entry point)

10/7/2013 Khoa CNTT - H Khoa hc t nhin 5


Qui trnh thc hin (tip theo)
B3. CPU thc hin tng ch th mt trong RAM
cho n khi gp lnh kt thc:
Chp lnh m my hin hnh vo thanh ghi lnh.
Tng b m lnh ( tr n lnh k tip).
Thi hnh lnh m my.
B4. Kt thc thc hin chng trnh, HH ch
nhn lnh mi.

10/7/2013 Khoa CNTT - H Khoa hc t nhin 6


c im
Mi ch th ca chng trnh l mt lnh m
my (mt dy cc byte ch ph hp vi qui
c tp lnh ca mt loi CPU no )
c cu trc ha theo qui c ca HH.
c chy trn mt h CPU v HH c th.
Ni dung rt kh hiu i vi ngi dng my
tnh, ch c CPU thch hp vi hiu r v
thi hnh c.

10/7/2013 Khoa CNTT - H Khoa hc t nhin 7


Nhn xt
Kh c th sn xut ra phn mm bng cch
vit trc tip cc chng trnh m my.
Nu c lm c theo cch ny th:
Gi c s rt t do qu kh, tn qu nhiu thi
gian v cng sc.
Kh nng dng li rt gii hn do khng th bn
cho ngi dng trn h my tnh khc hay ngi
dng s dng h iu hnh khc.

10/7/2013 Khoa CNTT - H Khoa hc t nhin 8


Khi nim
Vic vit cc chng trnh m my rt cc v
km hiu qu ngay c i vi cc lp trnh
vin chuyn nghip v vy gii php khi u
l s dng cc NNLT cp thp nh hp ng
hoc cc NNLT cp cao (s bn phn sau).
Chng trnh vit bng NNLT c gi l
chng trnh ngun (source code program)
hay m ngun (source code).

10/7/2013 Khoa CNTT - H Khoa hc t nhin 9


Chng trnh ngun c dch sang
chng trnh m my bng cch chng
trnh dch:
Trnh hp dch (assembler) dch cc
chng trnh hp ng.
Trnh thng dch (interpreter) v trnh bin dch
(compiler) dch cc chng trnh cp cao.

10/7/2013 Khoa CNTT - H Khoa hc t nhin 10


Ngn ng lp trnh (programming
language) l ngn ng c lp trnh vin
s dng vit chng trnh cho
my tnh.
Khi mt chng trnh c vit bng mt
NNLT no th cc ch th, cu lnh trong
chng trnh phi tun theo cc qui tc,
cc lut do NNLT qui nh.

10/7/2013 Khoa CNTT - H Khoa hc t nhin 12


c im
L NNLT ph thuc vo tng h my c th,
v vy khng c tnh tng thch.
D vit, c, sa hn chng trnh m my.
u im l tn dng v khai thc c tnh
nng ca mi h my c th, nh vy chng
trnh c th chy nhanh hn.

10/7/2013 Khoa CNTT - H Khoa hc t nhin 13


c im
c xut khc phc cc hn ch ca
NNLT cp thp.
D dng v d din t c cc tng
tru tng.
C tnh tng thch cao (khi thay i dng
my tnh th ch cn sa chng trnh rt t
hoc thm ch khng cn sa m vn m
bo chy ng).

10/7/2013 Khoa CNTT - H Khoa hc t nhin 14


NNLT cp thp
Hp ng (assembly language)
NNLT cp cao
C/C++
COBOL
FORTRAN
Java, C#
PHP, Ruby, Perl
Ada, BASIC, Visual Basic (VB), Lisp, Pascal,

10/7/2013 Khoa CNTT - H Khoa hc t nhin 15


Mt chng trnh (program) l mt dy
cc ch th (instruction) iu khin s
hot ng ca my tnh nhm gii quyt
mt cng vic no .
Ngi vit chng trnh (cn gi l lp
trnh vin hay tho chng vin
programmer) l nhng ngi to lp ra
nhng chng trnh my tnh.

10/7/2013 Khoa CNTT - H Khoa hc t nhin 17


Hai chng trnh n gin sau ch in ra
mt dng ch c ni dung l Hello
everybody! bng NNLT Java v C.
Chng trnh Java Chng trnh C
1 // Hello.java /* Hello.c */
2 import java.util.*; #include <stdio.h>
3 public class Hello {
4 public static void main(String argv[]) void main(void)
5 { {
6 System.out.print(Hello everybody!); pritnf(Hello everybody!);
7 } }
8 }

10/7/2013 Khoa CNTT - H Khoa hc t nhin 18


i vi cc NNLT cp cao truyn thng
(trc th h ca Java v C#), qu trnh
vit, dch v chy chng trnh gm cc
cng on nh sau:
B1. Son chng trnh ngun v lu ln a.
B2. Dch chng trnh ngun nh trnh bin dch.
B3. Ni kt cc tp tin m trung gian to ra B2.
B4. Chy chng trnh ngn ng my to ra B3.

10/7/2013 Khoa CNTT - H Khoa hc t nhin 19


Hn ch ca cc chng trnh cp cao
truyn thng l trnh bin dch ca chng
pht sinh trc tip m thc thi ph thuc
vo m my tnh ca mt h my tnh v
h iu hnh c th nn khng th mang
i s dng cc h iu hnh khc.

10/7/2013 Khoa CNTT - H Khoa hc t nhin 21


NNLT hin i nh Java hay C# trnh bin
dch khng dch trc tip m ngun thnh
m thc thi m c thit k c th
dch thnh m thc thi tru tng
(abstract executable code) c lp my v
h iu hnh.

10/7/2013 Khoa CNTT - H Khoa hc t nhin 22


Do my tnh tht khng th hiu c m
tru tng nn nhng chng trnh dng
m thc thi tru tng ch chy c khi
c sn my o h tr cho vic thi hnh
loi m thc thi .
Chng trnh ngun Java (tp tin *.java)
c dch thnh m thc thi khng ph thuc
my tnh (tp tin *.class) c th chy c
trn bt k my tnh no ci t my o
Java (Java Virtual Machine JVM)

10/7/2013 Khoa CNTT - H Khoa hc t nhin 23


Trong cc nm gn y, cc ng dng
chy trn web pht trin rt mnh.
Chy trn internet thng qua mt trnh duyt
web.
c vit bng cc ngn ng nh PHP,
ASP.NET, JSP, Java Script, VB Script c tnh
tng thch cao, hot ng trn bt k my
tnh no c internet

10/7/2013 Khoa CNTT - H Khoa hc t nhin 24


Ton b qui trnh bin dch c thc mt
cch d dng v thun tin nh vo cng c
gi l mi trng pht trin phn mm
(Integrated Development Environment IDE)
Son tho chng trnh.
Qun l h thng tp tin m ngun.
Qun l h thng cc phin bn ca m ngun.
Kim tra li c php, bin dch, lin kt chng trnh.
Chy tng dng lnh (debug) tm li.

10/7/2013 Khoa CNTT - H Khoa hc t nhin 25


Mt s IDE thng dng:
Eclipse: h tr nhiu ngn ng.
C++ Visual Studio: ngn ng C++.
C# Visual Studio: ngn ng C#.
Visual Caf: ngn ng Java.
J Builder: ngn ng Java.

10/7/2013 Khoa CNTT - H Khoa hc t nhin 26


abstract executable code: m tru tng
assembler: trnh hp dch
assembly language: hp ng
compiler: trnh bin dch
data type: kiu d liu
debug: chy chng trnh theo tng dng lnh tm li
executable program file: mt tp tin m thc thi
end user(s): ngi s dng, ngi dng cui
IDE: vit tt ca Integrated Development Environment, mi trng pht
trin chng trnh tch hp
instruction: ch th
interpreter: trnh thng dch
link: ni kt cc m trung gian
linker (hay link program): chng trnh lin kt m trung gian

10/7/2013 Khoa CNTT - H Khoa hc t nhin 28


machine code program: chng trnh m my
object code: m i tng, mt loi m trung gian cha phi l m my
tht s
program entry point: ng vo chng trnh
program: chng trnh
programmer: ngi vit chng trnh, lp trnh vin, t c: tho chng vin
programming language: ngn ng lp trnh
low-level programming language: ngn ng lp trnh cp thp
high-level programming language: ngn ng lp trnh cp cao
programming: lp trnh
source code program: chng trnh ngun
source code: m ngun
syntax error: li c php
text editor: trnh son tho vn bn (c th dng son m ngun)

10/7/2013 Khoa CNTT - H Khoa hc t nhin 29


Thinking in C, Bruce Eckel, E-book, 2006.
Theory and Problems of Fundamentals of
Computing with C++, John R.Hubbard,
Schaums Outlines Series, McGraw-Hill, 1998.

10/7/2013 Khoa CNTT - H Khoa hc t nhin 30

You might also like