Oberon gerçekten “daha ​​iyi bir Pascal” mı? [kapalı]


12

Niklaus Wirth'i okurken , Pascal'ın bazı popülaritesine rağmen, Oberon'un (Pascal ve Modula'nın "cilalı" halefi olarak) fazla popülerlik kazanmadığından memnun olmadığını fark edebilir. Oberon'da hiçbir şey yapmadım, ancak Pascal Geliştiricileri için Oberon sayfasını okuduğumda, örneğin Delphi / pascal geliştiricisi olarak pek çok değişikliği sevmedim, örneğin

  • ayrılmış kelimeleri her zaman büyük harf olmaya zorlamak
  • dili büyük / küçük harfe duyarlı hale getirme
  • numaralandırma türlerinden kurtulmak

Oberon hakkında ne düşünüyorsunuz, bu gerçekten sizin açınızdan "daha iyi bir Pascal" mı?


3
Oberon, Ada / Pascal döneminin programlamada uzak bir yankısı gibi görünüyor. Wirth'in orijinal Pascal dilinden biraz daha iyi olabilir, ancak açıkça Turbo Pascal / Delphi'den daha düşüktür.
mojuba

2
@mojuba, bu bana bir cevap gibi görünüyor ...
glenatron

Bu zaten bir kez kapatılmadı mı? Düzenleme geçmişine ne oldu?
Robert Harvey

Üniversite yıllarımda Oberon'la kısa bir ilgim vardı. Keşke bunun hakkında bir fikrim olması için daha fazla şey bilseydim.
Barry Brown

1
Büyük harfle ayrılmış kelimeler istemek benim için bir anlaşma kırıcı olacaktır. Küçük harflerin okunmasını çok daha kolay buluyorum.
GrandmasterB

Yanıtlar:


8

Evet, Oberon'a daha iyi Pascal diyorum. Oberon ile Profesör Wirth, tip genişletme ve prosedür değişkenleri ile nesne yönelimli programlamanın özüne ulaştı. Oberon'un çok daha fazla güce sahip Pascal'dan daha küçük bir dil olduğunu zarif buluyorum.

Oberon 2, kayıtları kayıt yöntemlerine bağlayarak dili bir adım daha ileri götürdü.

Ben büyük harf ayrılmış kelimeleri sevmiyorum. Sözdiziminin birçok başlangıç ​​ve bitişin ortadan kaldırılmasıyla bir iyileşme olduğunu düşünüyorum.

Oberon, Project Oberon: Bir İşletim Sistemi ve Derleyici Tasarımı'nda açıklanan çok ilginç bir işletim sistemi yazmak için kullanıldı .


Kabul et, Oberon daha iyi. Oberon ile ilgili sorun çok geç gelmesi. Diğerleri Fortran, Basic, Pascal, C üzerinde gelişti, bu yüzden Oberon'un ciddi rakipleri var. O zaman, dil çözümün sadece bir parçasıdır. 'En iyi' dilin iyi kütüphaneleri veya bir altyapısı vardır. Javascript, web uygulamalarına bağ nedeniyle harika. Daha sonra, tepki JS üzerinde daha da büyük. Dil basitliğine kim önem verir? Web uygulamaları oluşturmak için tepki bileşenleri gibi basit nesneler istiyoruz.
Roland

6

Çeşitli şekillerde daha iyi ve daha kötü:

Çöp toplama ve modüler ve Nesneye Yönelik programlama için olanaklara sahip olmak güzel. Nispeten küçük bir dildir; ayrıştırması ve uygulaması kolaydır.

Numaralandırma eksikliği bir acıdır (aslında, kullandığımız geniş Oberon lehçesinde onları geri ekledik).

Daha modern dillere göre, minimalizmi biraz acımasızdır ve dizeleri herhangi bir dilde karakter dizisi olarak tedavi etmek korkunç bir şekilde.

Tabii ki, Pascal da biraz gelişti, örneğin bkz. Bileşen Pascal.


Genişletilmiş Oberon lehçenizdeki numaralandırılmış türlerde tip uzantısını nasıl yaparsınız? Sormamın nedeni: Profesör Wirth, bunu yapmanın iyi bir yolunu göremediğini söyledi ve bu yüzden numaralandırılmış türleri dilden çıkardı.
John R. Strohm

2
Aslında, ismine rağmen, Bileşen Pascal'ın Oberon'un ardılı olduğuna inanıyorum, Pascal değil (dolaylı olarak hariç). Algol-X (hiç uygulanmadı) -> Algol-W -> Pascal -> Modula (hiç uygulanmadı) -> Modula-2 -> Oberon -> (Oberon'un bazı revizyonları) -> Bileşen Pascal gibi bir şeye gidiyor.
Jörg W Mittag

2
Wirth bir saftı; genişletilebilirlik ve diklik için enumların tip güvenliğini kaybetmenin daha iyi olduğuna karar verdi. Eşzamanlı değer çarpışmalarının aksi takdirde küçük hatalar getireceği numaralandırmaların tür denetiminden yararlanan birçok kod yazıyoruz. Kısacası, hem Oberon kod tabanının tamamını hem de derleyiciyi kontrol ettiğimizden, son derece rahatsız edici bir program hatası sınıfını önlemek için numaralandırmalarda tür uzantısı olmadan yapıyoruz.
grrussel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.