THINK JAVA: CÁCH SUY NGHĨ NHƯ NHÀ KHOA HỌC MÁY TÍNH - Trang 9

G l i gi ng nh vi c đi u tra t i ph m. B n có trong tay các manh m i, ph i suy lu n ra các quá trình

ỡ ỗ

ư ệ

và s ki n d n đ n nh ng h u qu đang ch ng ki n.

ự ệ

ế

ế

Vi c g l i cũng gi ng nh khoa h c th c nghi m. M i khi có ý ki n v nguyên nhân d n đ n l i sai,

ệ ỡ ỗ

ư

ế

ế ỗ

b n s a ch a ch

ng trình và th c hi n l i. N u gi thi t c a b n là đúng thì b n thu đ

c k t qu c a

ạ ử

ươ

ệ ạ

ế

ế ủ

ượ ế

ả ủ

công vi c s a ch a, đ ng th i ti n m t b

c g n h n t i ch

ng trình đúng. Còn n u gi thi t là sai thì

ệ ử

ờ ế

ộ ướ ầ

ơ ớ

ươ

ế

ế

b n c n đ ra m t gi thi t m i. Sherlock Holmes đã ch ra, “Khi b n đã lo i tr t t c nh ng đi u

ạ ầ

ế

ạ ừ ấ ả

không th thì nh ng gì còn l i, dù có m p m đ n đâu, chính là s th t”. (A. Conan Doyle,

ờ ế

ự ậ

D u c a b

ấ ủ

t

)

Đ i v i m t s ng

i, vi c l p trình và g l i là gi ng nhau. Đó là vì l p trình chính là quá trình g l i

ố ớ

ộ ố

ườ

ệ ậ

ỡ ỗ

ỡ ỗ

d n d n đ n khi b n có đ

c ch

ng trình mong mu n. Ý t

ng đây là b n nên b t đ u v i m t

ế

ượ

ươ

ưở

ắ ầ

ch

ng trình th c hi n đ

c

ươ

ượ m t đi u gì đó

, r i th c hi n các ch nh s a nh , g l i trong quá trình

ỏ ỡ ỗ

phát tri n, đ n khi b n có đ

c m t ch

ng trình hoàn thi n.

ế

ượ

ươ

Ch ng h n, Linux là m t h đi u hành bao g m hàng nghìn dòng l nh, nh ng nó ch b t đ u t m t

ộ ệ ề

ư

ỉ ắ ầ ừ ộ

ch

ng trình đ n gi n do Linus Torvalds dùng đ khám phá chip Intel 80386. Theo Larry Greenfield

ươ

ơ

thì “M t trong nh ng d án tr

c đó c a Linus là m t ch

ng trình có nhi m v chuy n t vi c in

ướ

ươ

ể ừ ệ

AAAA thành BBBB. Sau đó nó d n tr thành Linux”. (

The Linux Users’ Guide Beta Version 1 / H

ng

ướ

d n s d ng Linux

ẫ ử ụ

, phiên b n Beta 1).

Các ch

ng ti p sau đây s nói thêm v vi c g l i và các v n đ th c t trong l p trình.

ươ

ế

ề ệ ỡ ỗ

ề ự ế

1.4 Ngôn ng hình th c và ngôn ng t nhiên

ữ ự

Ngôn ng t nhiên

ữ ự

đ

c m i ng

i dùng đ giao ti p, ví d Ti ng Anh, Ti ng Tây Ban Nha, Ti ng

ượ

ườ

ế

ụ ế

ế

ế

Pháp. Chúng t do phát tri n mà không đ nh theo khuôn m u v i b t kì m c đích nào (m c dù có m t

ớ ấ

s tr t t ch ng h n nh ng pháp);

ố ậ ự ẳ

ư

Ngôn ng hình th c

đ c con ng i thi t k đ ng d ng trong nh ng lĩnh v c riêng. Ch ng h n, kí

ượ

ườ

ế ế ể ứ

hi u toán h c chính là m t ngôn ng hình th c r t h u d ng đ bi u di n m i quan h gi a nh ng bi n

ứ ấ ữ

ể ể

ệ ữ

ế

l

ng và con s . Trong hoá h c, m t lo i ngôn ng hình th c khác đ

c dùng đ bi u di n c u trúc hoá

ượ

ượ

ể ể

ễ ấ

h c c a các phân t . Và quan tr ng nh t:

ọ ủ

Ngôn ng l p trình là nh ng ngôn ng hình th c đ

c thi t k ph c v m c đích

ữ ậ

ượ

ế ế

ụ ụ

di n t quá trình tính toán.

Các ngôn ng hình th c th

ng có quy đ nh r t ch t ch v cú pháp. Ch ng h n,

ườ

ẽ ề

ạ 3 + 3 = 6

        là m t bi u

th c toán h c đúng, nh ng

ư 3 $ = thì không.

     

H

2

O là m t công th c hoá h c đúng v cú pháp, còn

2

Zz thì

không.
Các quy t c cú pháp có hai d ng, thu c v các

ộ ề

nguyên t

ố và c u trúc. Nguyên t là các thành ph n c s

ầ ơ ở

c a ngôn ng , ch ng h n, các t , các con s , và các nguyên t hoá h c. Trong ví d nêu trên,

3 $ = có l i

     

sai vì

$

không ph i là m t nguyên t h p l trong toán h c (theo nh tôi đ

c bi t). T

ng t nh

ố ợ ệ

ư

ượ

ế

ươ

ư

v y,

2

Zz không h p l vì không có nguyên t hoá h c nào có kí hi u là

ợ ệ

Zz.

Lo i l i cú pháp th hai thu c v d ng c u trúc c a m t m nh đ ; nghĩa là cách s p x p các nguyên t .

ạ ỗ

ộ ề ạ

ế

M nh đ

ề 3 $ = không h p l v c u trúc là vì b n không th đ d u b ng cu i ph ng trình đ c.

ợ ệ ề ấ

ể ể ấ

ở ố

ươ

ượ

T

ng t nh v y, trong m t công th c hoá h c thì ch s ph i đ

c đ t sau tên nguyên t ch không

ươ

ư ậ

ỉ ố

ả ượ ặ

ố ứ

ph i đ t tr

c.

ả ặ

ướ

M i khi đ c m t câu trong ngôn ng t nhiên, ho c trong ngôn ng hình th c, b n c n hình dung đ

c

ữ ự

ạ ầ

ượ

c u trúc c a câu đó là gì (m c dù v i ngôn ng t nhiên thì vi c làm này đ

c th c hi n m t cách vô

ữ ự

ượ

th c). Quá trình này đ

c g i là

ượ ọ

phân tách.