Tự học guitar, lập trình, khiêu vũ, tennis, máy tính

Saturday
Feb 11th
Text size
  • Increase font size
  • Default font size
  • Decrease font size

Home arrow Programming arrow Java arrow Lập trình là cái gì vậy nhỉ?
Lập trình là cái gì vậy nhỉ?

Lập trình là cái gì vậy nhỉ?

Nói nôm na thì lập trình [JosObfuscator] :#(Z0;UP01|Jrw4loIgHr-tahM~fTm*kddmq|iQ.+OVnHhKSgK) là công việc giống như của một người phiên dịch, dịch ngôn ngữ của chúng ta ra một thứ ngôn ngữ mà máy tính (Computer) có thể hiểu được.

Ngôn ngữ con người thì vô cùng đa dạng, tiếng Anh, tiếng Pháp, tiếng Việt...

Ngôn ngữ máy (Machine language)thì vô cùng ... đơn giản Laughing, chỉ có bậttắt mà thôi. Máy tính của chúng ta chỉ có thể hiểu được hai trạng thái bật và tắt, có tín hiệu hay không có tín hiệu. Ví dụ ta qui định cho máy biết là bật bật tắt là đi, tắt bật tắt là chạy Smile thì công việc của người lập trình sẽ là biến câu lệnh "đi" hay "go" hay "aller" thành bật bật tắt. Tức là ngồi trước máy và nhấn nút power liên tục. WinkLaughing

Thật ra có mấy vấn đề:

  • Ngôn ngữ của con người quá phong phú, hơn nữa lại dài dòng, cần tạo một ngôn ngữ chung và đơn giản hơn..
  • Nói ngôn ngữ máy cho đơn giản, nhưng máy tính (Computer) cũng như chúng ta phải "học" ngôn ngữ của chúng. 
  • Việc ngồi và "dịch" một ngôn ngữ con người dù đã được đơn giản hoá ra một chuỗi những bật-tắt của ngôn ngữ máy quả là một công việc khủng khiếp.

Tóm lại ta cần hai "ngôn ngữ trung gian":

  1. Thứ nhất để dịch ngôn ngữ bình thường [JosObfuscator] IVnI?AHmn.h, Pháp, Đức, Việt...ra một ngôn ngữ chung và đơn giản hơn. Đó chính là các ngôn ngữ lập trình như C, Pascal..
  2. Thứ hai để dịch ngôn ngữ thứ nhất ra thành ngôn ngữ máy. Đó chính là các trình biên dịch/thông dịch.  

Công việc của chúng ta bây giờ là dùng ngôn ngữ lập trình với các cú pháp (syntax) và ngữ nghĩa (semantic) nhất định tạo ra các lệnh cần thiết cho máy tính làm, sau đó dùng trình biên dịch để dịch các lệnh đó ra ngôn ngữ máy tính.

Ở đây có một khái niệm, đúng hơn là hai từ, hai khái niệm luôn khiến chúng ta dễ lẫn lộn là "[JosObfuscator] np~`Cx3y%_o`)9mYpTSoiBlH^eJhVr" và "Interpreter". Theo ý kiến cá nhân chúng tôi thì bạn không nên dịch ra thông dịch, biên dịch làm gì. Khi nói đến Compiler, bạn hãy nghĩ đến Complete (Chỉ để dễ nhớ, hoàn toàn không liên quan) tức là hoàn thành, nghĩa là Compiler dịch mã nguồn (Phần thứ nhất ở trên) sang mã máy một lần duy nhất thành một chương trình có thể chạy được. Còn Interpreter, bạn hãy nghĩ đến Incomplete, cũng sẽ dịch mã nguồn sang mã máy nhưng là mỗi lần chạy. Nói cách khác chương trình của bạn không tự chạy một mình được, mỗi lần chạy nó phải cần một bộ thông dịch nạp trước.

Rất mong dù là đơn giản hóa mọi việc nhưng bạn sẽ hiểu rõ bộ khung của vấn đề vì Java là một sự khác biệt, chúng ta sẽ bàn sau.

Chúc bạn một ngày vui vẻ.

 
< Trước   Tiếp >