Sunday, June 29, 2014

What is a compiler?

Máy tính chỉ có thể hiểu được một thứ ngôn ngữ duy nhất và ngôn ngữ này bao gồm các tập hợp các số 1 và 0, được gọi là machine language (mã máy).

Một đoạn mã máy đơn giản:
0000010011110

Đoạn mã máy cho phép người dùng nhập vào 2 số, và xuất ra tổng của 2 số đó
0000010011110
0000111110100
0001010011110
0001111010100
0010010111111
0010100000000

Bạn có thể hình dung rằng, lập trình cho máy tính trực tiếp bằng mã máy chỉ sử dụng 1 và 0 rất khó khăn và dễ bị lỗi. Để khiến việc lập trình dễ dàng hơn, các ngôn ngữ bậc cao đã được phát triển.

Dưới đây là đoạn mã được viết bằng ngôn ngữ C++, đoạn code này có chung mục đích với đoạn mã máy phía trên:
1
2
3
4
5
6
7
int a, b, sum;
     
cin >> a;
cin >> b;
             
sum = a + b;
cout << sum << endl;
Thậm nếu bạn không thực sự hiểu đoạn mã trên thì bạn cũng thấy rằng sẽ dễ dàng hơn khi lập trình bằng C++ thay vì bằng mã máy.

Máy tính chỉ có thể hiểu được mã máy, và con người thì lại muốn dùng ngôn ngữ bậc cao để lập trình do đó ngôn ngữ bậc cao phải được dịch thành mã máy. Do đó một chương trình đặc biệt gọi là compiler, interpreter hoặc assembler đã được tạo ra.

C++ được thiết kế để trở thành ngôn ngữ đã biên dịch. Hiểu chung chung là nó được dịch sang mã máy và khiến cho việc tạo ra các chương trình hiểu quả hơn. Để làm điều này, một bộ các công cụ được cung cấp, được biết đến như development toolchain, mà thành phần chính là compiler và linker. 

No comments:

Post a Comment