Có phải Oberon thực sự là một Pascal giỏi hơn? [đóng cửa]


12

Đọc Niklaus Wirth , người ta có thể nhận thấy rằng mặc dù có sự phổ biến của Pascal, anh ta không vui khi Oberon (với tư cách là người kế thừa "bóng bẩy" của Pascal và Modula) không được yêu thích nhiều. Tôi chưa bao giờ làm bất cứ điều gì ở Oberon, nhưng đọc trang Oberon For Pascal Developers tôi thực sự không thích nhiều thay đổi như một nhà phát triển Delphi / pascal, chẳng hạn

  • buộc các từ dành riêng luôn luôn là chữ hoa
  • làm cho ngôn ngữ phân biệt chữ hoa chữ thường
  • loại bỏ các loại liệt kê

Bạn nghĩ gì về Oberon, nó có thực sự là "một Pascal tốt hơn" theo quan điểm của bạn không?


3
Oberon có vẻ như là một tiếng vang xa vời của kỷ nguyên Ada / Pascal trong lập trình. Nó có thể tốt hơn một chút so với ngôn ngữ Pascal gốc của Wirth, nhưng rõ ràng nó kém hơn Turbo Pascal / Delphi.
mojuba

2
@mojuba, có vẻ như là một câu trả lời cho tôi ...
glenatron

Điều này đã không đóng cửa một lần rồi sao? Điều gì đã xảy ra với lịch sử chỉnh sửa?
Robert Harvey

Tôi có một niềm đam mê ngắn ngủi với Oberon trong những năm học đại học. Tôi ước tôi biết nhiều hơn về nó để có một ý kiến.
Barry Brown

1
Yêu cầu các từ dành riêng cho chữ hoa sẽ là một công cụ đối phó với tôi. Tôi thấy chữ thường dễ đọc hơn nhiều.
GrandmasterB

Câu trả lời:


8

Vâng, tôi sẽ gọi Oberon là một Pascal tốt hơn. Với Oberon, Giáo sư Wirth đã đi vào cốt lõi của lập trình hướng đối tượng với các biến thủ tục và mở rộng kiểu. Tôi thấy thật thanh lịch khi Oberon là một ngôn ngữ nhỏ hơn Pascal với sức mạnh lớn hơn nhiều.

Oberon 2 đã đưa ngôn ngữ tiến thêm một bước bằng các phương pháp ràng buộc với các bản ghi.

Tôi không thích các từ dành riêng trên. Tôi tìm thấy cú pháp một sự cải tiến với việc loại bỏ nhiều bắt đầu và kết thúc.

Oberon đã được sử dụng để viết một hệ điều hành rất thú vị được mô tả trong Project Oberon: The Design of a Operations System and Compiler .


6

Nó là tốt hơn, và tồi tệ hơn, theo nhiều cách khác nhau:

Thật tuyệt khi có bộ sưu tập rác và các phương tiện để lập trình mô đun và hướng đối tượng. Đó là một ngôn ngữ tương đối nhỏ; dễ dàng phân tích, và thực hiện.

Việc thiếu bảng liệt kê là một nỗi đau (thực sự, trong phương ngữ Oberon mở rộng mà chúng tôi sử dụng, chúng tôi đã thêm chúng trở lại).

Liên quan đến các ngôn ngữ hiện đại hơn, chủ nghĩa tối giản của nó hơi tàn bạo và coi các chuỗi là các mảng ký tự trong bất kỳ ngôn ngữ nào là ghê gớm.

Tất nhiên, Pascal cũng đã phát triển khá nhiều, ví dụ, xem Thành phần Pascal.


Làm thế nào để bạn thực hiện mở rộng loại trên các loại liệt kê trong phương ngữ Oberon mở rộng của bạn? Lý do tôi hỏi: Giáo sư Wirth nói rằng ông không thể thấy một cách tốt để làm điều đó, và đó là lý do tại sao ông loại bỏ các loại liệt kê khỏi ngôn ngữ.
John R. Strohm

2
Trên thực tế, tôi tin rằng mặc dù tên của nó, Thành phần Pascal là sự kế thừa của Oberon, chứ không phải Pascal (tất nhiên trừ gián tiếp). Nó đi một cái gì đó giống như Algol-X (chưa bao giờ triển khai) -> Algol-W -> Pascal -> Modula (không bao giờ thực hiện) -> Modula-2 -> Oberon -> (một số phiên bản của Oberon) -> Thành phần Pascal.
Jörg W Mittag

2
Wirth là một người theo chủ nghĩa thuần túy; ông quyết định tốt hơn là mất loại an toàn của enum vì tính mở rộng và tính trực giao. Chúng tôi viết rất nhiều mã có lợi từ việc kiểm tra kiểu enum, trong đó các xung đột giá trị ngẫu nhiên sẽ đưa ra các lỗi tinh vi. Nói tóm lại, vì chúng tôi kiểm soát cả cơ sở mã Oberon và trình biên dịch, chúng tôi thực hiện mà không cần mở rộng kiểu trên enums, để ngăn chặn một lớp lỗi chương trình cực kỳ khó chịu.
grrussel
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.