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.