Вы находитесь на странице: 1из 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

Вам также может понравиться