Ch¬ng I mét sè kh¸i niÖm vÒ lËp tr×nh vµ ng n ng÷ lËp tr×nh
XÐt vÝ dô, b¹n chØ biÕt tiÕng ViÖt nhng cÇn giíi thiÖu vÒ trêng cña m×nh cho ®oµn kh¸ch ®Õn tõ níc MÜ, chØ biÕt tiÕng Anh. Cã hai c¸ch ®Ó b¹n thùc hiÖn ®iÒu nµy. C¸ch thø nhÊt: B¹n nãi b»ng tiÕng ViÖt vµ ngêi phiªn dÞch gióp b¹n dÞch sang tiÕng Anh. Sau mçi c©u hoÆc mét vµi c©u giíi thiÖu trän mét ý, ngêi phiªn dÞch dÞch sang tiÕng Anh cho ®oµn kh¸ch. Sau ®ã, b¹n l¹i giíi thiÖu tiÕp vµ ngêi phiªn dÞch l¹i dÞch tiÕp. ViÖc giíi thiÖu cña b¹n vµ viÖc dÞch cña ngêi phiªn dÞch lu©n phiªn cho ®Õn khi b¹n kÕt thóc néi dung giíi thiÖu cña m×nh. C¸ch dÞch trùc tiÕp nh vËy ®îc gäi lµ th«ng dÞch. C¸ch thø hai: B¹n so¹n néi dung giíi thiÖu cña m×nh ra giÊy, ngêi phiªn dÞch dÞch toµn bé néi dung ®ã sang tiÕng Anh råi ®äc hoÆc trao v¨n b¶n ®· dÞch cho ®oµn kh¸ch ®äc. Nh vËy, viÖc dÞch ®îc thùc hiÖn sau khi néi dung giíi thiÖu ®· hoµn tÊt. Hai c«ng viÖc ®ã ®îc thùc hiÖn trong hai kho¶ng thêi gian ®éc lËp, t¸ch biÖt nhau. C¸ch dÞch nh vËy ®îc gäi lµ biªn dÞch. Sau khi kÕt thóc, víi c¸ch thø nhÊt kh«ng cã mét v¨n b¶n nµo ®Ó lu tr÷, cßn víi c¸ch thø hai cã hai b¶n giíi thiÖu b»ng tiÕng ViÖt vµ b»ng tiÕng Anh cã thÓ lu tr÷ ®Ó dïng l¹i vÒ sau. T¬ng tù nh vËy, ch¬ng tr×nh dÞch cã hai lo¹i lµ th«ng dÞch vµ biªn dÞch.
a) Th«ng dÞchTh«ng dÞch (interpreter) ®îc thùc hiÖn b»ng c¸ch lÆp l¹i d·y c¸c bíc sau: KiÓm tra tÝnh ®óng ®¾n cña c©u lÖnh tiÕp theo trong ch¬ng tr×nh nguån; ChuyÓn ®æi c©u lÖnh ®ã thµnh mét hay nhiÒu c©u lÖnh t¬ng øng trong ng«n ng÷ m¸y; Thùc hiÖn c¸c c©u lÖnh võa chuyÓn ®æi ®îc. Nh vËy, qu¸ tr×nh dÞch vµ thùc hiÖn c¸c c©u lÖnh lµ lu©n phiªn. C¸c ch¬ng tr×nh th«ng dÞch lÇn lît dÞch vµ thùc hiÖn tõng c©u lÖnh. Lo¹i ch¬ng tr×nh dÞch nµy ®Æc biÖt thÝch hîp cho m«i trêng ®èi tho¹i gi÷a ngêi vµ hÖ thèng. Tuy nhiªn, mét c©u lÖnh nµo ®ã ph¶i thùc hiÖn bao nhiªu lÇn th× nã ph¶i ®îc dÞch bÊy nhiªu lÇn. C¸c ng«n ng÷ khai th¸c hÖ qu¶n trÞ c¬ së d÷ liÖu, ng«n ng÷ ®èi tho¹i víi hÖ ®iÒu hµnh,... ®Òu sö dông tr×nh th«ng dÞch. b) Biªn dÞchBiªn dÞch (compiler) ®îc thùc hiÖn qua hai bíc: DuyÖt, kiÓm tra, ph¸t hiÖn lçi, kiÓm tra tÝnh ®óng ®¾n cña c¸c c©u lÖnh trong ch¬ng tr×nh nguån; DÞch toµn bé ch¬ng tr×nh nguån thµnh mét ch¬ng tr×nh ®Ých cã thÓ thùc hiÖn trªn m¸y vµ cã thÓ lu tr÷ ®Ó sö dông l¹i khi cÇn thiÕt. Nh vËy, trong th«ng dÞch, kh«ng cã ch¬ng tr×nh ®Ých ®Ó lu tr÷, trong biªn dÞch c¶ ch¬ng tr×nh nguån vµ ch¬ng tr×nh ®Ých cã thÓ lu tr÷ l¹i ®Ó sö dông vÒ sau. Th«ng thêng, cïng víi ch¬ng tr×nh dÞch cßn cã mét sè dÞch vô liªn quan nh biªn so¹n, lu tr÷, t×m kiÕm, cho biÕt c¸c kÕt qu¶ trung gian,... Toµn bé c¸c dÞch vô trªn t¹o thµnh mét m«i trêng lµm viÖc trªn mét ng«n ng÷ lËp tr×nh cô thÓ. VÝ dô, Turbo Pascal 7.0, Free Pascal 1.2, Visual Pascal 2.1,... trªn ng«n ng÷ Pascal, Turbo C++, Visual C++,... trªn ng«n ng÷ C++. C¸c m«i trêng lËp tr×nh kh¸c nhau ë nh÷ng dÞch vô mµ nã cung cÊp, ®Æc biÖt lµ c¸c dÞch vô n©ng cÊp, t¨ng cêng c¸c kh¶ n¨ng míi cho ng«n ng÷ lËp tr×nh. Em cã biÕt
Tõ nhá, bµ ®· næi tiÕng lµ mét ngêi th«ng minh, cã kh¶ n¨ng ®Æc biÖt vÒ to¸n häc. Ngay tõ khi thiÕt kÕ m¸y gi¶i tÝch cßn ë trªn giÊy, Ada ®· ®Ò xuÊt víi Babbage mét kÕ ho¹ch chi tiÕt ®Ó m¸y gi¶i tÝch tÝnh c¸c sè Bernouilli. Ngµy nay ngêi ta coi kÕ ho¹ch nµy lµ ch¬ng tr×nh m¸y tÝnh ®Çu tiªn vµ bµ ®îc gäi lµ lËp tr×nh viªn ®Çu tiªn. C¸c ghi chÐp ®îc c«ng bè cña Ada cho tíi nay vÉn ®Æc biÖt cã ý nghÜa ®èi víi c¸c lËp tr×nh viªn. Gi¸o s J. Von Neumann ®· viÕt r»ng c¸c quan s¸t cña Ada "chøng tá bµ ®· hiÓu ®îc c¸c nguyªn t¾c lËp tr×nh m¸y tÝnh tríc thêi ®¹i cña m×nh hµng thÕ kØ". Nh mét nhµ to¸n häc, Ada ®¸nh gi¸ cao kh¶ n¨ng tù ®éng ho¸ c¸c c«ng viÖc tÝnh to¸n nÆng nhäc. Nhng bµ quan t©m h¬n ®Õn c¸c nguyªn t¾c cña viÖc lËp tr×nh c¸c thiÕt bÞ ®ã. Ngay khi m¸y gi¶i tÝch cßn cha ®îc x©y dùng, Ada ®· thÝ nghiÖm viÕt nh÷ng d·y lÖnh. Bµ nhËn ra gi¸ trÞ cña mét vµi thñ thuËt ®Æc biÖt trong nghÖ thuËt míi nµy vµ ®iÒu thó vÞ lµ nh÷ng thñ thuËt nµy hiÖn giê vÉn cßn lµ c¬ b¶n ®èi víi c¸c ng«n ng÷ lËp tr×nh hiÖn ®¹i, ®ã chÝnh lµ ch¬ng tr×nh con, vßng lÆp vµ c¸c phÐp chuyÓn ®iÒu khiÓn. Thay cho viÖc viÕt c¸c d·y lÖnh lÆp ®i lÆp l¹i nhiÒu lÇn, ta cã thÓ viÕt chóng díi d¹ng c¸c ch¬ng tr×nh con ®Ó dïng nhiÒu lÇn. C¸c ch¬ng tr×nh con ngµy nay lµ thµnh phÇn kh«ng thÓ thiÕu ®îc cña mäi ng«n ng÷ lËp tr×nh. M¸y gi¶i tÝch vµ c¸c m¸y tÝnh sè thùc hiÖn rÊt tèt c¸c tÝnh to¸n nhiÒu lÇn mét c¸ch nhanh chãng. Thêi k× ®ã, c¸c b×a ®ôc lç ®îc sö dông ®Ó ®a d÷ liÖu vµ c¸c lÖnh vµo m¸y. B»ng viÖc ph¸t minh ra c¸c lÖnh thùc hiÖn viÖc chuyÓn thiÕt bÞ ®äc b×a vÒ mét b×a x¸c ®Þnh tríc nã, sao cho d·y c¸c lÖnh cã thÓ ®îc thùc hiÖn mét sè lÇn nhÊt ®Þnh, Ada ®· ph¸t minh ra vßng lÆp – mét trong nh÷ng cÊu tróc ®iÒu khiÓn quan träng trong c¸c ng«n ng÷ lËp tr×nh. Kh¶ n¨ng l«gic cña Ada ®· ph¸t huy víi phÐp chuyÓn ®iÒu khiÓn cã ®iÒu kiÖn. Bµ nghÜ ra mét lo¹i lÖnh ®Ó thao t¸c víi thiÕt bÞ ®äc b×a, nhng thay cho viÖc quay l¹i vµ lÆp l¹i d·y b×a, lÖnh nµy cho phÐp thiÕt bÞ ®äc b×a chuyÓn tíi mét b×a kh¸c t¹i bÊt k× vÞ trÝ nµo trong d·y, nÕu mét ®iÒu kiÖn nµo ®ã ®îc tho¶ m·n. ViÖc thªm ch÷ NÕU ®ã vµo danh s¸ch c¸c lÖnh sè häc thuÇn tuý tríc ®©y cã nghÜa lµ ch¬ng tr×nh cã thÓ lµm nhiÒu h¬n lµ tÝnh to¸n ®¬n thuÇn. ë d¹ng th« s¬ nhng vÒ tiÒm n¨ng lµ rÊt cã ý nghÜa, m¸y gi¶i tÝch cã thÓ thùc hiÖn c¸c quyÕt ®Þnh. Ada mÊt n¨m 1852, khi míi qua tuæi 36. NÕu nh bµ kh«ng qua ®êi sím nh vËy, ch¾c ch¾n khoa häc lËp tr×nh cña thÕ kØ XIX ®· cã thÓ tiÕn nhanh h¬n nhiÒu. §Ó tëng nhí c«ng lao cña Ada, mét ng«n ng÷ lËp tr×nh do Bé Quèc phßng MÜ t¹o ra n¨m 1979 mang tªn bµ. §2. C¸c thµnh phÇn cña ng«n ng÷ lËp tr×nh1. C¸c thµnh phÇn c¬ b¶nMçi ng«n ng÷ lËp tr×nh thêng cã ba thµnh phÇn c¬ b¶n lµ b¶ng ch÷ c¸i, có ph¸p vµ ng÷ nghÜa. a) B¶ng ch÷ c¸i lµ tËp c¸c kÝ tù ®îc dïng ®Ó viÕt ch¬ng tr×nh. Kh«ng ®îc phÐp dïng bÊt k× kÝ tù nµo ngoµi c¸c kÝ tù quy ®Þnh trong b¶ng ch÷ c¸i. Trong Pascal, b¶ng ch÷ c¸i bao gåm c¸c kÝ tù:
a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
B¶ng ch÷ c¸i cña c¸c ng«n ng÷ lËp tr×nh nãi chung kh«ng kh¸c nhau nhiÒu. VÝ dô, b¶ng ch÷ c¸i cña ng«n ng÷ lËp tr×nh C++ chØ kh¸c Pascal lµ cã sö dông thªm c¸c kÝ tù nh dÊu nh¸y kÐp ("), dÊu sæ ngîc (\), dÊu chÊm than (!). b) Có ph¸p lµ bé quy t¾c ®Ó viÕt ch¬ng tr×nh. Dùa vµo chóng, ngêi lËp tr×nh vµ ch¬ng tr×nh dÞch biÕt ®îc tæ hîp nµo cña c¸c kÝ tù trong b¶ng ch÷ c¸i lµ hîp lÖ vµ tæ hîp nµo lµ kh«ng hîp lÖ. Nhê ®ã, cã thÓ m« t¶ chÝnh x¸c thuËt to¸n ®Ó m¸y thùc hiÖn. c) Ng÷ nghÜa x¸c ®Þnh ý nghÜa thao t¸c cÇn ph¶i thùc hiÖn, øng víi tæ hîp kÝ tù dùa vµo ng÷ c¶nh cña nã. VÝ dô PhÇn lín c¸c ng«n ng÷ lËp tr×nh ®Òu sö dông dÊu céng (+) ®Ó chØ phÐp céng. XÐt c¸c biÓu thøc: A + B (1) I + J (2) Gi¶ thiÕt A, B lµ c¸c ®¹i lîng nhËn gi¸ trÞ thùc vµ I, J lµ c¸c ®¹i lîng nhËn gi¸ trÞ nguyªn. Khi ®ã dÊu "+" trong biÓu thøc (1) ®îc hiÓu lµ céng hai sè thùc, dÊu "+" trong biÓu thøc (2) ®îc hiÓu lµ céng hai sè nguyªn. Nh vËy, ng÷ nghÜa dÊu "+" trong hai ng÷ c¶nh kh¸c nhau lµ kh¸c nhau. Tãm l¹i, có ph¸p cho biÕt c¸ch viÕt mét ch¬ng tr×nh hîp lÖ, cßn ng÷ nghÜa x¸c ®Þnh ý nghÜa cña c¸c tæ hîp kÝ tù trong ch¬ng tr×nh. C¸c lçi có ph¸p ®îc ch¬ng tr×nh dÞch ph¸t hiÖn vµ th«ng b¸o cho ngêi lËp tr×nh biÕt. ChØ cã c¸c ch¬ng tr×nh kh«ng cßn lçi có ph¸p míi cã thÓ ®îc dÞch sang ng«n ng÷ m¸y. C¸c lçi ng÷ nghÜa khã ph¸t hiÖn h¬n. PhÇn lín c¸c lçi ng÷ nghÜa chØ ®îc ph¸t hiÖn khi thùc hiÖn ch¬ng tr×nh trªn d÷ liÖu cô thÓ. 2. Mét sè kh¸i niÖma) TªnMäi ®èi tîng trong ch¬ng tr×nh ®Òu ph¶i ®îc ®Æt tªn theo quy t¾c cña ng«n ng÷ lËp tr×nh vµ tõng ch¬ng tr×nh dÞch cô thÓ. Trong Turbo Pascal tªn lµ mét d·y liªn tiÕp kh«ng qu¸ 127 kÝ tù bao gåm ch÷ sè, ch÷ c¸i hoÆc dÊu g¹ch díi vµ b¾t ®Çu b»ng ch÷ c¸i hoÆc dÊu g¹ch díi. Trong ch¬ng tr×nh dÞch Free Pascal, tªn cã thÓ cã ®é dµi tíi 255 kÝ tù. VÝ dô, trong ng«n ng÷ Pascal:
R21 P21_c
_45
A BC (chøa kÝ tù tr¾ng) 6Pq (b¾t ®Çu b»ng ch÷ sè) X#Y (chøa kÝ tù "#" kh«ng hîp lÖ) Ng«n ng÷ Pascal kh«ng ph©n biÖt ch÷ hoa, ch÷ thêng trong tªn. Mét sè ng«n ng÷ lËp tr×nh kh¸c (vÝ dô nh C++) ph©n biÖt ch÷ hoa, ch÷ thêng. VÝ dô, AB vµ Ab lµ mét tªn trong Pascal, nhng l¹i lµ hai tªn kh¸c nhau trong C++. NhiÒu ng«n ng÷ lËp tr×nh, trong ®ã cã Pascal, ph©n biÖt ba lo¹i tªn:
Tªn dµnh riªng Mét sè tªn ®îc ng«n ng÷ lËp tr×nh quy ®Þnh dïng víi ý nghÜa x¸c ®Þnh, ngêi lËp tr×nh kh«ng ®îc sö dông víi ý nghÜa kh¸c. Nh÷ng tªn nµy ®îc gäi lµ tªn dµnh riªng (cßn ®îc gäi lµ tõ kho¸). VÝ dô. Mét sè tªn dµnh riªng: Trong Pascal: program, uses, const, type, var, begin, end. Trong C++: main, include, if, while, void.
Mét sè tªn ®îc ng«n ng÷ lËp tr×nh dïng víi ý nghÜa nµo ®ã. Nh÷ng tªn nµy ®îc gäi lµ tªn chuÈn. Tuy nhiªn, ngêi lËp tr×nh cã thÓ khai b¸o vµ dïng chóng víi ý nghÜa vµ môc ®Ých kh¸c. ý nghÜa cña c¸c tªn chuÈn ®îc quy ®Þnh trong c¸c th viÖn cña ng«n ng÷ lËp tr×nh.
- Trong Pascal: abs integer real sqr longint extended sqrt byte break - Trong C++: cin cout getchar
Tªn do ngêi lËp tr×nh ®Æt ®îc dïng víi ý nghÜa riªng, x¸c ®Þnh b»ng c¸ch khai b¸o tríc khi sö dông. C¸c tªn nµy kh«ng ®îc trïng víi tªn dµnh riªng. VÝ dô Tªn do ngêi lËp tr×nh ®Æt: A1 DELTA
CT_Vidu b) H»ng vµ biÕnH»ng H»ng lµ c¸c ®¹i lîng cã gi¸ trÞ kh«ng thay ®æi trong qu¸ tr×nh thùc hiÖn ch¬ng tr×nh. Trong c¸c ng«n ng÷ lËp tr×nh thêng cã c¸c h»ng sè häc, h»ng l«gic, h»ng x©u.
VÝ dô - H»ng sè häc: 2 0 -5 +18 1.5 -22.36 +3.14159 0.5 -2.236E01 1.0E-6 - H»ng l«gic: + Trong Pascal: TRUE FALSE - H»ng x©u: + Trong Pascal: 'Informatic' 'TIN HOC' + Trong C++: "Informatic" "TIN HOC"
Tuú theo c¸ch lu tr÷ vµ xö lÝ, Pascal ph©n biÖt nhiÒu lo¹i biÕn. C¸c biÕn dïng trong ch¬ng tr×nh ®Òu ph¶i khai b¸o. ViÖc khai b¸o biÕn sÏ ®îc tr×nh bµy ë c¸c phÇn sau. c) Chó thÝchCã thÓ ®Æt c¸c ®o¹n chó thÝch trong ch¬ng tr×nh nguån. C¸c chó thÝch nµy gióp cho ngêi ®äc ch¬ng tr×nh nhËn biÕt ng÷ nghÜa cña ch¬ng tr×nh ®ã dÔ h¬n. Chó thÝch kh«ng ¶nh hëng ®Õn néi dung ch¬ng tr×nh nguån vµ ®îc ch¬ng tr×nh dÞch bá qua. Trong Pascal c¸c ®o¹n chó thÝch ®Æt gi÷a cÆp dÊu { vµ } hoÆc (* vµ *). Mét trong nh÷ng c¸ch t¹o chó thÝch trong C++ lµ ®Æt chóng gi÷a cÆp dÊu /* vµ */.
C¢U HáI Vµ BµI TËP
a) 150.0 b) -22 c) 6,23 d) '43' e) A20 f) 1.06E-15 g) 4+6 h) 'C i) 'TRUE' Em cã biÕt Ai lµ T¸c gi¶ cña ng«n ng÷ Pascal?Gi¸o s Niclaus Wirth, t¸c gi¶ cña ng«n ng÷ Pascal sinh n¨m 1934 t¹i Thuþ SÜ. ¤ng tèt nghiÖp §¹i häc C«ng nghÖ Liªn bang Thuþ SÜ (ETH) t¹i thµnh phè quª h¬ng Zuyrich vµo n¨m 1958. ¤ng nhËn b»ng Th¹c sÜ t¹i trêng §¹i häc Tæng hîp Laval ë Quebec, Canada n¨m 1960. N¨m 1963, t¹i §¹i häc Tæng hîp California (MÜ) díi sù l·nh ®¹o cña gi¸o s Garry Hasky «ng thùc hiÖn ®Ò ¸n më réng ng«n ng÷ Algol-60 (ng«n ng÷ Euler) vµ b¶o vÖ luËn ¸n tiÕn sÜ. Trong c¸c n¨m 1963-1967, «ng gi¶ng d¹y t¹i §¹i häc tæng hîp Stanford MÜ). Còng trong thêi gian nµy «ng ®îc mêi vµo nhãm chuyªn gia quèc tÕ IFIP thiÕt kÕ Algol-68. N¨m 1967, Wirth trë vÒ níc vµ gi¶ng d¹y t¹i Tæng hîp Zuyrich. N¨m 1968, «ng chuyÓn sang ETH, t¹i ®©y «ng b¾t ®Çu tham gia thiÕt kÕ Pascal. N¨m 1970, ch¬ng tr×nh dÞch Pascal ®Çu tiªn ®îc hoµn thµnh. Trong thêi gian 1978-1981, Wirth l·nh ®¹o Dù ¸n thiÕt kÕ ng«n ng÷ Modula-2, m¸y tÝnh c¸ nh©n 16-bit Lilit dùa trªn nã vµ hÖ ®iÒu hµnh OS Medos. TÊt c¶ c¸c ch¬ng tr×nh, kÓ c¶ ch¬ng tr×nh hÖ thèng, ®îc thùc hiÖn hoµn toµn trªn Modula-2. N¨m 1984, do c«ng lao to lín trong viÖc ph¸t triÓn c¸c ng«n ng÷ lËp tr×nh vµ thiÕt kÕ m¸y tÝnh c¸ nh©n Lilit, «ng ®îc gi¶i thëng Alan Turing - gi¶i thëng cao quý nhÊt trong giíi Tin häc, mµ vÒ ý nghÜa ®îc coi lµ t¬ng ®¬ng víi gi¶i Nobel. Trong thêi gian 1986-1989, Wirth l·nh ®¹o dù ¸n ph¸t triÓn ng«n ng÷ Oberon, hÖ ®iÒu hµnh híng ®èi tîng Oberon vµ tr¹m lµm viÖc 32-bit Ceres. RÊt nhiÒu ý tëng cña Dù ¸n nµy ®îc c¸c ®ång nghiÖp tõ phßng thÝ nghiÖm Sun Labs sö dông cho ng«n ng÷ vµ c«ng nghÖ Java. Tõ n¨m 1990 «ng l·nh ®¹o ViÖn C¸c hÖ thèng m¸y tÝnh t¹i ETH. N¨m 1999, «ng nghØ hu vµ trë thµnh Gi¸o s danh dù cña ETH. Bµi ®äc thªm 1 Pascal - Ng«n ng÷ cña häc ®êng?Pascal ... Hái cã ngêi lËp tr×nh nµo kh«ng biÕt ng«n ng÷ nµy? Thµnh c«ng vang déi cña nã b¾t ®Çu vµo nh÷ng n¨m 1980, thêi gian cña cuéc c¸ch m¹ng trong c«ng nghiÖp m¸y tÝnh vµ giai ®o¹n në ré cña lËp tr×nh cã cÊu tróc. Cã thÓ nãi Pascal xøng ®¸ng lµ ®iÓm khëi ®Çu cho mét kØ nguyªn míi cña c¸c ng«n ng÷ lËp tr×nh. Pascal - Sù ra ®êi vµ ®Æc ®iÓm Vµo ®Çu n¨m 1971, b¶n m« t¶ ng«n ng÷ míi cña ViÖn C«ng nghÖ Liªn bang Thuþ SÜ ®îc c«ng bè trong sè ®Çu tiªn cña t¹p chÝ Acta Informatica. Sù ra ®êi cña Pascal cã thÓ ®îc tÝnh tõ thêi ®iÓm nµy. T¸c gi¶ cña nã, Gi¸o s Niclaus Wirth trë nªn næi tiÕng v× sù xuÊt hiÖn cña Pascal. Nh÷ng dù ¸n sau nµy cña «ng chøng minh hïng hån cho thÕ giíi r»ng ch×a kho¸ tíi c¸c bÝ mËt cña m¸y tÝnh chÝnh lµ ë sù kÕt hîp hµi hoµ gi÷a To¸n häc, C«ng nghÖ vµ LËp tr×nh. Vµ nÕu tiÕp cËn vÊn ®Ò mét c¸ch hîp lÝ th× cã thÓ t¹o ra c¸c ng«n ng÷, hÖ ®iÒu hµnh vµ ngay c¶ c¸c m¸y tÝnh tuyÖt vêi vît c¸c chuÈn c«ng nghiÖp,... chØ b»ng søc lùc cña nh÷ng sinh viªn. Ngêi ta thêng nãi ®Õn c¸c ®iÓm kh¸c biÖt cña Pascal so víi nh÷ng ng«n ng÷ kh¸c, nh ng«n ng÷ C. Nhng chÝnh Dennis Ritchie, t¸c gi¶ cña C ®· ph¸t biÓu (1993): "T«i kh¼ng ®Þnh r»ng Pascal rÊt gÇn víi C. Hai ng«n ng÷ nµy kh¸c biÖt vÒ chi tiÕt, nhng vÒ c¬ së chóng lµ gièng nhau... Khi nh×n vµo c¸c kiÓu d÷ liÖu, còng nh c¸c phÐp to¸n trªn chóng, ta cã thÓ ph¸t hiÖn ra nh÷ng sù gièng nhau rÊt lín. MÆc dï r»ng ý ®å cña Wirth khi t¹o ra Pascal rÊt kh¸c víi ý ®å cña chóng t«i khi t¹o ra C. Wirth t¹o ng«n ng÷ ®Ó gi¶ng d¹y vµ do vËy tÊt nhiªn cÇn ®¸p øng c¸c yªu cÇu s ph¹m". Kh¸c víi C, Pascal kh«ng ®îc t¹o ra ®Ó lµm ng«n ng÷ lËp tr×nh hÖ thèng. §Ó ®Ò cao tÝnh ®¬n gi¶n vµ hiÖu qu¶ dùa trªn møc ®é hiÓu vÒ khoa häc lËp tr×nh thêi bÊy giê, Wirth chñ t©m chÊp nhËn c¸c h¹n chÕ cña ng«n ng÷, tríc tiªn trong c¸c vÊn ®Ò liªn quan ®Õn thÕ giíi bªn ngoµi (vµo/ra vµ c¸c c«ng cô phô thuéc hÖ thèng). MÆc dï vËy, nÕu nghÜ r»ng Pascal lµ ng«n ng÷ chØ dµnh ®Ó gi¶ng d¹y, th× sÏ sai lÇm. H·y nghe chÝnh ý kiÕn cña Wirth vÒ vÊn ®Ò nµy (1984): "Cã ngêi cho r»ng Pascal ®îc thiÕt kÕ nh mét ng«n ng÷ ®Ó gi¶ng d¹y. MÆc dï ®iÒu nµy lµ ®óng, nhng viÖc sö dông nã ®Ó gi¶ng d¹y kh«ng ph¶i lµ môc ®Ých duy nhÊt. Thùc tÕ, t«i kh«ng tin vµo sù thµnh c«ng cña viÖc ¸p dông trong khi häc c¸c c«ng cô vµ ph¬ng ph¸p mµ kh«ng thÓ sö dông ®Ó gi¶i quyÕt c¸c bµi to¸n thùc tÕ. Theo c¸c tiªu chuÈn ngµy nay th× Pascal cã nh÷ng yÕu ®iÓm râ rµng khi lËp tr×nh c¸c hÖ thèng lín, nhng 15 n¨m tríc, nã lµ tho¶ hiÖp hîp lÝ gi÷a c¸i mong muèn vµ hiÖu qu¶".
Ng«n ng÷ Pascal ®îc Wirth t¹o ra díi ¶nh hëng c¸c t tëng cña C. A. R. Hoare, ®¨ng trong c«ng tr×nh "Bµn vÒ cÊu tróc d÷ liÖu" (Notes on Data Structuring, Academic Press, 1972). §ãng gãp cña nhµ b¸c häc ngêi Anh lín tíi møc cã thÓ gäi «ng lµ cha ®ì ®Çu cña Pascal. Pascal ®îc coi nh khëi ®Çu cña kØ nguyªn lËp tr×nh cÊu tróc. TÊt c¶ b¾t ®Çu tõ bµi b¸o cña chuyªn gia ngêi Hµ Lan E. W Dijkstra "LËp tr×nh cÊu tróc" (Structured Programming, 1969). Trong bµi b¸o nµy «ng ®Ò xuÊt h¹n chÕ c¸c cÊu tróc ®iÒu khiÓn ch¬ng tr×nh chØ ë ba d¹ng lµ tuÇn tù, rÏ nh¸nh vµ lÆp. Tõ ®ã, suy ra r»ng c©u lÖnh chuyÓn v« ®iÒu kiÖn (goto) trong c¸c ng«n ng÷ ALGOL vµ PL/1 (rÊt phæ biÕn thêi bÊy giê) lµ hoµn toµn kh«ng cÇn thiÕt. ThËt sù lµ Wirth còng kh«ng d¸m lo¹i c©u lÖnh nµy khái Pascal. Nhng ®iÒu chñ yÕu n»m ë chç kh¸c: LËp tr×nh cÊu tróc liªn quan ®Õn nguyªn t¾c "tõ trªn xuèng díi" (lµm mÞn tõng bíc), yªu cÇu tÝnh cÊu tróc cña ®iÒu khiÓn vµ d÷ liÖu, dùa vµo sù ®¬n gi¶n vµ c¬ së to¸n häc mµ t¨ng ®é tin cËy cña phÇn mÒm. TÊt c¶ nh÷ng ®iÒu nµy ®Òu kh¶ thi nhê c¸c kh¶ n¨ng cña Pascal. VÒ ý ®å khi x©y dùng Pascal, Wirth viÕt: "§iÓm míi cña Pascal lµ ®a ra c¸c cÊu tróc vµ kiÓu d÷ liÖu phong phó, còng gièng nh ALGOL ®a ra c¸c lo¹i cÊu tróc ®iÒu khiÓn. Trong ALGOL chØ cã ba kiÓu d÷ liÖu c¬ së: c¸c sè nguyªn vµ thùc, gi¸ trÞ ch©n lÝ, m¶ng; Pascal ®· ®a thªm c¸c kiÓu d÷ liÖu c¬ së vµ cßn cho kh¶ n¨ng x¸c ®Þnh nh÷ng kiÓu c¬ së míi (kiÓu liÖt kª, kiÓu miÒn con), còng nh c¸c d¹ng cÊu tróc d÷ liÖu míi: b¶n ghi, tËp hîp, tÖp, mµ mét sè trong chóng ®· cã trong COBOL. Vµ tÊt nhiªn, quan träng nhÊt lµ tÝnh ®Ö quy trong viÖc m« t¶ c¸c cÊu tróc vµ hÖ qu¶ cña ®iÒu nµy lµ kh¶ n¨ng kÕt hîp vµ lång c¸c cÊu tróc". Pascal cã tiÕp tôc tån t¹i?! §Ó kÕt luËn, xin trÝch dÉn lêi cña Dennis Ritchie t¸c gi¶ ng«n ng÷ C: "Pascal lµ mét ng«n ng÷ thanh lÞch. Nã vÉn tiÕp tôc tån t¹i. Nã ®· khëi nguån cho kh«ng Ýt ng«n ng÷ ®µn em vµ cã ¶nh hëng s©u s¾c ®Õn viÖc thiÕt kÕ c¸c ng«n ng÷ lËp tr×nh nãi chung". Em cã biÕt
Nh÷ng ng«n ng÷ lËp tr×nh hiÖn nay thêng cung cÊp c¸c th viÖn bao gåm nhiÒu hµm hç trî giao diÖn ngêi dïng vµ c¸c thiÕt bÞ ®Çu cuèi. CËp nhËt d÷ liÖu theo thêi gian thùc lµ mét híng ph¸t triÓn nh»m ®¸p øng c¸c nhu cÇu ®ång bé ho¸ nhanh d÷ liÖu dïng chung cho nhiÒu n¬i hay lµ ®Ó tho¶ m·n nhu cÇu cÇn ®ång bé ho¸ d÷ liÖu cña c¸c dÞch vô (nh trong ng©n hµng, hµng kh«ng vµ qu©n sù). Ngoµi viÖc hç trî cho c¸c giao diÖn, ngµy nay hÇu hÕt c¸c hÖ ®iÒu hµnh (UNIX/Linux, Netware vµ Windows) ®Òu cã kh¶ n¨ng ®a luång (multithreading) hay ®a nhiÖm (multitasking) n©ng cao hiÖu qu¶ cña m¸y tÝnh. Do ®ã, c¸c ng«n ng÷ thêng cã thªm c¸c hµm, thñ tôc hay c¸c biÕn cho phÐp ngêi lËp tr×nh tËn dông ®iÒu nµy. Díi ®©y giíi thiÖu mét sè ng«n ng÷ lËp tr×nh th«ng dông: Algol, Basic, C, C++, Cobol, Fortran, Pascal, Java, Visual,…
Dennis Ritchie
Каталог: 2014 2014 -> - 2014 -> Năng suất lao động trong nông nghiệp: Vấn đề và giải pháp Giới thiệu 2014 -> QUẢn lý nuôi trồng thủy sản dựa vào cộng đỒNG 2014 -> CÔng ty cổ phần autiva (autiva. Jsc) 2014 -> CÙng với mẹ maria chúng ta về BÊn thánh thể with mary, we come before the eucharist cấp II thiếU – camp leader level II search 2014 -> Part d. Writing 0 points) 2014 -> CỘng hòa xã HỘi chủ nghĩa việt nam độc lập – Tự do – Hạnh phúc 2014 -> Mẫu số 01. Đơn xin giao đất/cho thuê đất/cho phép chuyển mục đích sử dụng đất 2014 -> Biểu số: 22a/btp/cn-tn 2014 -> Ủy ban nhân dân cộng hòa xã HỘi chủ nghĩa việt nam thành phố HỒ chí minh độc lập Tự do Hạnh phúc tải về 111.4 Kb. Chia sẻ với bạn bè của bạn: |