
Trong phần này chúng ta sẽ cùng tìm hiểu xem ngôn ngữ C++ là gì và chúng ta có thể sử dụng nó để làm gì. Đầu tiên hãy cùng xem ngôn ngữ là gì (không chỉ ngôn ngữ C++ mà bất cứ ngôn ngữ nào mà con người sử dụng) ? Chúng tôi sẽ cố gắng không dùng những thuật ngữ khoa học mà chỉ sử dụng cách nói đơn giản nhất. Chúng ta có thể nói rằng ngôn ngữ là một công cụ để thể hiện và ghi lại những suy nghĩ của con người. Hay nói cách khác, nó là một cơ chế cho phép chúng ta hiểu người khác và được người khác hiểu. Chúng ta sử dụng ngôn ngữ để nói, viết, đọc, nghe và cả suy nghĩ.
Có ít nhất một ngôn ngữ đồng hành với chúng ta trong suốt cuộc đời – nó là tiếng mẹ đẻ, một loại ngôn ngữ mà chúng ta học một cách vô thức từ rất sớm. Rất nhiều người trong chúng ta có thể sẽ học những ngôn ngữ khác nữa, đó hầu hết là kết quả của một quyết định có ý thức, bị chi phối bởi các điều kiện xã hội hoặc nhu cầu kinh doanh. Ngôn ngữ mà chúng ta sử dụng để giao tiếp với những người khác được gọi là ngôn ngữ tự nhiên. Chúng được tạo ra qua nhiều thế kỷ và vẫn có thể tiếp tục thay đổi.
Tuy nhiên, có những ngôn ngữ mà sự tạo thành và phát triển của nó chịu sự chi phối của những yêu cầu riêng, và sự phát triển của nó hoàn toàn chịu sự kiểm soát của các nhóm rất rộng như các ủy ban quốc tế hoặc các nhóm làm việc (work groups). Những ngôn ngữ này được định nghĩa bởi các tiểu chuẩn quốc tế, mặc dù có thể có rất nhiều người hiểu được chúng nhưng việc dùng những ngôn ngữ này để trao đổi suy nghĩ giữa con người với con người không phải là ưu tiên của chúng.
Trong số những ngôn ngữ như vậy thì có ngôn ngữ lập trình. Một ngôn ngữ lập trình được xác định bởi một tập hợp các quy tắc cứng nhắc, kém linh hoạt hơn nhiều so với bất kỳ ngôn ngữ tự nhiên nào. Ví dụ: các quy tắc xác định các ký hiệu (chữ cái, chữ số, dấu chấm câu, …) có thể được sử dụng trong ngôn ngữ đó. Phần này của ngôn ngữ được gọi là lexicon. Một tập hợp các quy tắc khác dùng để xác định các cách thích hợp tham chiếu những ký hiệu – đây là syntax của ngôn ngữ. Chúng ta cũng cần phải có khả năng nhận ra ý nghĩa của mỗi câu lệnh trong mỗi ngôn ngữ, và đây là những gì chúng ta gọi là semantics. Bất kỳ chương trình nào chúng ta viết ra đều không được có lỗi trong cả 3 kiểu sau: lexically, syntactically và semantically, nếu không thì chương trình sẽ không thể chạy được hoặc có thể chạy nhưng lại cho ra một kết quả tồi tệ không thể chấp nhận được. Chắc chắn là bạn sẽ gặp phải những lỗi này bởi vì chương trình là do con người viết ra, mà đã là con người thì sai lầm là chuyện bình thường ở huyện cmnr.
Sức mạnh của ngôn ngữ lập trình yếu hơn nhiều so với ngôn ngữ tự nhiên. Chúng ta không thể dử dụng ngôn ngữ lập trình để thể hiện cảm xúc của con người và rất khó để tưởng tượng ra tình cảm được mã hóa trong một ngôn ngữ lập trình. Đó là bởi vì thông điệp bên trong một chương trình máy tính không phải dành cho con người, nó là dành cho máy.