Tại sao một số ngôn ngữ biểu diễn các phép logic không dùng NOT AND OR như pascal python cho dễ đọc mà phải ! && ||?

lập trình viết cho người đọc chứ không phải viết cho máy đọc, ta thường viết mệnh đề logic dưới dạng hàm với tên hàm bằng ngôn ngữ tự nhiên. Sao không dùng and or not như python pascal cho dễ đọc và đồng bộ… mà lại dùng ký tự để biểu diễn logic như Java JavaScript C++?

1 Like

Vì người tạo ra ngôn ngữ lập trình quy ước cú pháp nó vậy. Viết script cho hệ điều hành thường dùng từ khóa AND OR NOT còn các ngôn ngữ bậc cao javascript, C#, java, python … đều dùng ký hiệu ! && ||. dùng ký hiệu ngắn hơn, xu hướng ngôn ngữ lập trình bây giờ thích dùng kí hiệu hơn thì phải :thinking:

1 Like

Các kí hiệu trên bắt nguồn từ C. Một số ngôn ngữ do chịu ảnh hưởng bởi C nên thường dùng mấy kí hiệu đó.

Còn vì sao Dennis Ritchie - người tạo ra C lại dùng mấy kí hiệu đó thì mình không biết :penguin:. Chắc là để cho code nhìn gọn hơn và giống các toán tử bên toán.

8 Likes

mình làm việc với Ruby thì vẫn có and, ornot nhé bạn :smiley:
nhưng không hoàn toàn giống với &&, ||!
ít nhất là khác nhau về thứ tự ưu tiên

vấn đề này thì là do người lập trình ngôn ngữ quy định thôi, người ta định nghĩa thì sẽ có, còn nếu không thì không có.

2 Likes

Vậy tại sao bạn lại chỉ hỏi các phép toán logic mà không hỏi các phép toán khác như add, sub, mul, div, mod?

Kiểu như, tại sao đa số các ngôn ngữ đều dùng 1+2 mà không dùng 1 `add` 2?

6 Likes

https://en.cppreference.com/w/cpp/language/operator_alternative
C++ xài and/or/not được mà

7 Likes

Mình chưa đủ khả năng để trả lời câu hỏi này cho bạn.


Tại sao bạn lại hỏi câu này?
Biết đáp án rồi thì để làm gì?

Theo mình nghĩ, những người tìm hiểu về vấn đề này, họ sẽ rất nghiêm túc, vì có mục đích đặc biệt như tìm hiểu chuyên sâu, hoặc muốn tạo ra ngôn ngữ mới chẳng hạn.
Trường hợp ngược lại, là những người hời hợt, hỏi mà không có mục đích, hoặc mục đích kỳ lạ?

Bạn thuộc trường hợp nào?
Tại sao bạn lại ghi câu hỏi ngắn như vậy?
Bạn không có một chút nghiên cứu gì về vấn đề này để đưa ra lý do của bản thân hay sao?
Đặt một câu hỏi chuyên sâu bằng một dòng ngắn ngủi, rồi ngồi đợi reply, mục đích là gì?

Câu hỏi này cũng giống như câu: “tại sao lại gọi quả táo là quả táo?”
Chắc là sẽ có nguồn gốc sâu xa đó, nhưng chung quy, nó xuất phát từ sự sáng tạo (của ai thì chưa rõ)
Và sự sáng tạo đó dần trở thành một tiêu chuẩn trong một phạm vi nhất định

7 Likes

Mình nghĩ chắc bạn ấy hỏi vì tò mò.

1 Like

Dùng kí hiệu ! && || dễ nhìn hơn đấy, sau này là do có syntax highlight và muốn “gần gũi” hơn (?!) với ngôn ngữ tự nhiên.

4 Likes

Nếu như trong C++ thì | & là có, tác dụng của nó cũng là OR và AND tuy nhiên nó là bitwise operator. Có thể bởi vì cả & và && đều là AND, nhưng một cái là bitwise, một cái dùng logic như bình thường nên họ phải thêm một kí tự :v

4 Likes

tại sao lại không được như thế ??

Võ đoán :
Vì nó ngắn gọn và đa năng. Với ^, | , ! , =, & người ta tạo ra lượng lớn phép toán số học và phép toán logic.
Dùng tự do và thoải mái.

Với and, or, not,…người ta phải tạo thêm n cái từ khóa nữa mới bằng được tụi ký hiệu kia. Hoặc cuối cùng ít nhiều cũng lại dính đến ^, | , ! , =, &. Trộn chung với nhau thành một nồi thập cẩm :smile:

4 Likes

mình hỏi vì thắc mắc

4 posts were merged into an existing topic: Topic lưu trữ các post off-topic - version 3

Uh. Bạn nghĩ đơn giản vậy thì thôi vậy.
Cứ để nó đơn giản như bạn nghĩ.

Câu hỏi này vốn không có câu trả lời rõ ràng. Nó có rất nhiều biến thể, ví dụ:
Tại sao một số ngôn ngữ không dùng NOT AND OR mà phải ! && ||?
Tại sao một số ngôn ngữ không dùng ! && || mà phải NOT AND OR?
Tại sao không được dùng NOT AND OR?
Tại sao không được dùng ! && ||?

Đây là loại câu hỏi mà ta có thể hiểu được sơ lược câu trả lời từ chính câu hỏi.

4 Likes

nếu là mình mình sẽ dùng +-*/

Chẳng sao cả, tất cả đều là quy ước. Các ngôn ngữ ra đời sau sẽ chịu ảnh hưởng từ các quy ước từ các ngôn ngữ đi trước. Kí hiệu nào cũng được miễn là nó dễ nhìn, dễ phân biệt, viết ngắn gọn mà vẫn đủ ý, tất cả đều tùy vào sở thích của người thiết kế
VD tôi không thích dùng && hay and mà dùng #AND# cũng chẳng có vấn đề gì

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?