Cái gì là thật?
Bởi vì Real chỉ trong định nghĩa cho một thông dịch viên .
Tiếng phổ thông có thực hơn hoặc ít hơn tiếng Anh không?
- Chắc chắn tiếng Quan thoại không đặc biệt hữu ích với người nói tiếng Anh
- tương tự tiếng Anh quá vô nghĩa với người nói tiếng phổ thông
- trừ khi họ nói cả hai.
Vì vậy, Real thậm chí không phải là câu hỏi. Hãy viết lại nó:
Tại sao Mã giả được sử dụng thay vì Ngôn ngữ chính thức?
Một sơ đồ VENN đơn giản có thể làm nổi bật vấn đề một cách dễ dàng. Tập hợp tất cả con người là người nói tiếng Anh và tiếng Quan thoại là tập hợp con của người nói tiếng Anh hoặc tiếng Quan thoại. Bởi vì cần nỗ lực để có được sự thành thạo trong bất kỳ ngôn ngữ nào, giao lộ thường nhỏ hơn nhiều so với liên minh.
Sách giáo khoa về lập trình có thể cho rằng bạn hiểu ít nhất một ngôn ngữ tự nhiên, ngôn ngữ mà sách giáo khoa được viết. Nói chung là an toàn để giả định điều này, vì nếu không thì một cuốn sách giáo khoa dễ đọc hơn sẽ được chọn. Sau khi học một ngôn ngữ là đủ khó - hai là khó hơn.
Điều này đưa ra lý do đầu tiên để sử dụng mã giả. Nó tối đa hóa đối tượng có thể dễ dàng đọc cuốn sách. Điều này được thực hiện bằng cách tuân theo các quy ước ngôn ngữ đã được thiết lập trong ngôn ngữ tự nhiên. Nói các công thức nấu ăn từ nấu ăn, các công thức toán học, v.v ... Bất kỳ khoảng cách nào cũng có thể được thu hẹp bằng cách giải thích ngôn ngữ tự nhiên nhanh chóng, hoặc thất bại trong việc giải thích cuối cùng cho hệ thống hình ảnh của chúng ta bằng hình ảnh.
Về lý do tại sao ngôn ngữ chung không thể là ngôn ngữ lập trình. Tôi để bạn xem xét bao nhiêu tiếng phổ thông (hoặc bất kỳ ngôn ngữ nào bạn chưa nói) bạn đã học bằng cách đọc một cuốn sách về lập trình được viết bằng các ví dụ được đưa ra trong một ngôn ngữ lập trình quen thuộc.
Những gì một cuốn sách giáo khoa đạt được
Đối với lý do thứ hai, hãy xem xét những gì một cuốn sách giáo khoa phải đạt được:
- giải thích lý do tại sao họ muốn học một ngôn ngữ ngoài hành tinh thay vì chỉ sử dụng ngôn ngữ tự nhiên của họ.
- giải thích một ngôn ngữ xa lạ cho người đọc để họ có thể tự nói được.
Tại sao chương trình
Hầu hết các cuốn sách phải thuyết phục bạn về lý do tại sao bạn muốn học và sử dụng ngôn ngữ ngoài hành tinh này, hoặc bất kỳ ngôn ngữ tương tự. Điều này có nghĩa là thảo luận về bản chất của lập trình.
- Làm thế nào để bạn xác định một vấn đề
- Làm thế nào để bạn phá vỡ một vấn đề
- Làm thế nào để bạn kiến trúc sư dữ liệu
- Làm thế nào để bạn kiến trúc sư các quy trình
- Làm thế nào để bạn quản lý các phụ thuộc
- Làm thế nào để bạn xác định lỗi
- và hơn thế nữa
Hầu hết những điều này không liên quan gì đến bản thân các máy móc, chủ yếu là một cuộc thảo luận về cách thức hoạt động của kho thịt để mang lại một chương trình. Điều đó khá phức tạp vì nó phải chỉ ra lý do tại sao chúng ta sẽ liên kết các mục tiêu không gian của con người, để lập trình các vấn đề không gian và cố gắng giải quyết chúng.
Mô tả một chương trình
Thành tựu sách giáo khoa thứ hai là mô tả một ngôn ngữ. Bây giờ hầu hết các ngôn ngữ lập trình có thể được mô tả bằng một Ngữ pháp và một vài quy tắc ngữ nghĩa. Ở đầu nông là các ngôn ngữ như JSON có thể được định nghĩa khá hoàn toàn trong vòng ba trang. Các ngôn ngữ phức tạp hơn cần một đặc điểm kỹ thuật lớn hơn, nhưng đối với hầu hết các phần không cần sự hiểu biết tổng thể để có ích. Tuy nhiên, những mô tả này là Mã giả. Họ chỉ định ngôn ngữ chính thức theo ngôn ngữ tự nhiên. Sự khác biệt là các mã giả này được chỉ định trước.
Bây giờ được đưa ra rằng ngay cả Ngôn ngữ chính thức cũng là Mã giả (Có thể thực thi), câu hỏi đặt ra là điều gì là quan trọng nhất khi mô tả một thuật toán? Bối cảnh tiếp theo lớn hơn.
- Thuật toán có Mục tiêu hợp lý trong bối cảnh đó,
- bối cảnh đó có một số hạn chế,
- và thuật toán là một mô tả về cách các ràng buộc đó có thể được xử lý trong khi đạt được mục tiêu.
Không có gì là ngôn ngữ mà thuật toán được viết quan trọng. Nếu bất cứ điều gì chỉ một vài thao tác chính là quan trọng cho sự thành công của thuật toán. Vì vậy, câu hỏi sau đó trở thành:
- tốt hơn là mô tả một chương trình kho thịt có khả năng diễn giải toàn bộ đặc tả của Ngôn ngữ chính thức như C ++ / C # / Python / etc ... để hiểu thuật toán
- hoặc chỉ xác định 4 hoặc hơn các nguyên hàm cần thiết để hiểu thuật toán.
Cho rằng học một ngôn ngữ là Khó, và người đọc phải học / học một ngôn ngữ để hiểu thuật toán, vì người viết sách giáo khoa bạn nên hỏi gì về người đọc?