You are on page 1of 31

Nhp mn lp trnh

Trnh by: Phm Minh Tun; Email: pmtuan@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

11/10/2012

Khoa CNTT - H Khoa hc t nhin

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.
11/10/2012

Khoa CNTT - H Khoa hc t nhin

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)

11/10/2012

Khoa CNTT - H Khoa hc t nhin

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.

11/10/2012

Khoa CNTT - H Khoa hc t nhin

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.
11/10/2012

Khoa CNTT - H Khoa hc t nhin

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.

11/10/2012

Khoa CNTT - H Khoa hc t nhin

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).
11/10/2012

Khoa CNTT - H Khoa hc t nhin

Chng trnh ngun c dch sang


chng trnh m my bng cc 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.

11/10/2012

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.
11/10/2012

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.

11/10/2012

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).
11/10/2012

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,
11/10/2012

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.
11/10/2012

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
1
2
3
4
5
6
7
8

11/10/2012

// Hello.java
import java.util.*;
public class Hello {
public static void main(String argv[])
{
System.out.print(Hello everybody!);
}
}

Chng trnh C
/* Hello.c */
#include <stdio.h>
void main(void)
{
pritnf(Hello everybody!);
}

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.

11/10/2012

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.

11/10/2012

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.

11/10/2012

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)
11/10/2012

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, JSP,
Java Script, VB Script c tnh tng thch
cao, hot ng trn bt k my tnh no c
internet

11/10/2012

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.

11/10/2012

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.

11/10/2012

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

11/10/2012

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

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)

tht s

11/10/2012

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.

11/10/2012

Khoa CNTT - H Khoa hc t nhin

30

You might also like