DG / L - DG/L
Paradigmalar | Çok paradigma : prosedürel , zorunlu , yapılandırılmış |
---|---|
Aile | Algol |
Geliştirici | Veri Genel |
İlk ortaya çıktı | 1978 |
Platform | Nova , Eclipse , Eclipse / MV |
işletim sistemi | RDOS, AOS , AOS / VS |
Tarafından etkilenmiş | |
ALGOL 60 |
DG / L , Data General Corp tarafından 1970'lerde ve 1980'lerin başında mini bilgisayarların Nova , Eclipse ve Eclipse / MV aileleri için geliştirilmiş bir programlama dilidir .
İki ayrı versiyon vardı:
- Nova serisi 16 bit bilgisayarlarda çalışan ve kod üreten "Eski" Algol. Derleyici sadece biraz optimizasyon yaptı. Yalnızca RDOS işletim sistemleri ailesinde mevcuttu .
- Fortran 5 optimize derleyicisini kapsamlı bir şekilde değiştirerek geliştirilen DG / L. Bu derleyici yalnızca Eclipse ve Eclipse / MV bilgisayar ailesinde çalışıyordu, ancak Nova, Eclipse ve Eclipse / MV (Eagle) ailesi için optimize edilmiş kod üretti. RDOS, AOS ve AOS / VS'de mevcuttu .
Dilin kendisi Algol 60'ın genişletilmiş bir versiyonuydu . Tamsayılar, Tek ve Çift hassas kayan nokta ve karmaşık sayılar ile hem sabit hem de keyfi hassas dizeleri destekledi. Ayrıca , dizelerde tam keyfi kesinlikli ikili kodlu ondalık (BCD) aritmetiğini destekledi. Birçok uygun program kontrol akış özelliğine sahipti , ancak 70'lerin ortasında tasarlandığı için kullanıcı tanımlı veri yapılarından yoksundu .
DG / L, o gün için önemli bir çalışma zamanı kitaplığına sahipti ve Data General'in hem içinde hem de dışında sistem programlaması için kullanılıyordu .
Orijinal adı Algol / 5 olan ürün, 1978'deki ilk ticari sürümden kısa bir süre önce DG / L olarak yeniden adlandırıldı. Resmi olarak, adın anlamı yok ama görünüşe göre "Veri Genel Dili" anlamına gelmesi gerekiyordu. 16-bit Eclipse ve Nova'yı hedefleyen ilk ticari sürümden sonra, yaklaşık olarak yılda bir olmak üzere birkaç güncelleme ve ana sürüm yayınlandı.
Algol 60 ile Karşılaştırma
Data General'in DG / L Language Reference Manual, 093-00229-01'in 1982 revizyonunun Ek A, DG / L'yi ALGOL 60 programlama diline dayalı olarak açıklar, ancak "ALGOL 60'ın sahip olmadığı veri türleri, işlemler ve ifadeler" verir. Spesifik farklılıklar şunlardır:
Algol 60, DG / L'de desteklenmeyen özellikler
Algol 60 özelliği | Algol 60 rapor paragrafında açıklandığı gibi | DG / notlar |
---|---|---|
İsimle ara | para. 4.7.3.2 | DG / L prosedür parametrelerinin PROSEDÜR tipi olarak kullanılmasına izin vererek prosedürlerin diğer prosedürlere ismen geçirilmesine izin verir. |
Değişmez değerlerde iç içe geçmiş tırnak işaretleri | 2.6.1 ve 2.4.1 | |
Tanımlayıcıların uzunluğunda sınır yok | DG / L tanımlayıcı adlarının ilk 32 karakter içinde benzersiz olması gerekir | |
İki bölüm operatörü | 3.3.4.2 | DG / L, hem gerçek hem de tam sayı bölümü için "/" kullanır; başka bir tam sayıya bölünen bir tam sayı, derleyicinin global / R anahtarı kullanılmadığı sürece tamsayı bölme anlamına gelir (örneğin 1/4, 0'dır) |
10 <tamsayı> gösterimi | 2.5.1 | DG / L, on'un üslerini göstermek için "bilimsel" gösterim için E <tamsayı> (veya çift kesinlik için D <tamsayı>) kullanır |
Yalnızca <bileşik ifadeden> oluşan bir program | 4.1.1 | |
Boole operatörleri olarak ASCII olmayan karakterler ⋀, ⋁, ¬, ⊃, ≡, ≤, ≥, | 3.4.6.1 | DG / L bunun yerine şunlara izin verir: AND, OR, NOT, IMP, EQV, <= (veya = <),> = (veya =>) ve <> (veya> <) ve XOR |
Algol prosedürlerine Algol dışı kodu dahil etme | 4.7.8 | FORTRAN 5 matematik kitaplığından ayrı olarak, harici prosedürler için dokümantasyon yalnızca diğer DG / L prosedürlerinin bağlantılı olacağını varsayar. |
Uzantılar
DG / L'de sunulan veya Data General'in 1971'deki önceki Algol uygulamasından taşınan Algol 60 standardının bazı uzantıları:
Dize işlemleri
- SUBSTR - alt dize
- INDEX - bir alt dizenin konumu
- LENGTH - bir dizenin uzunluğu
- SETCURRENT - bir dizinin geçerli uzunluğunu ayarlar, örneğin setcurrent (str, length (str) -1);
- Birleştirme operatörü: "!!"
- Dize aritmetiği (ör. "123.45" + "0.01")
- Tür dönüşümü (Boolean, Integer, Real, Pointer, Bit)
- ASCII karakterlerini temsil etmek için köşeli parantez içine alınmış sekizlik sayılar ve bazı özel semboller
Giriş ve çıkış
- Desteklenen tüm veri türleri için tam olarak biçimlendirilmiş çıktı, biçimlendirilmemiş girdi ve çıktı
- Data General'in RDOS , AOS ve AOS / VS sistem çağrılarına tam arayüz
- Önbellek yönetimi (sanal bellek seçeneğiyle).
- CLRE ve INFOS II veritabanlarına arayüz
Diğer uzantılar
- / ** harf-rakam-dizge <ifade> * / kullanarak kod bölümlerinin koşullu derlenmesi
- % karakteri ve / * yorum * / kullanarak satır sonu yorumları
- genişletilmiş do , for ve if sözdizimi (ör. WHILE <boolexp1> DO <statement> UNTIL <boolexp2>)
- Türler: BIT, BYTE, 16-bit ve 32-bit tamsayılar, 32-bit ve 64-bit gerçekler ve keyfi hassas aritmetik,
- Değişmezler, örneğin LITERAL C (299792.458)
- Global veriler
- Yakalama hatası
- Dış prosedürler ve veriler
- Küme bildirimi ... Pascal birimlerine çok benzer (ayrı bir derlenmiş kaynakta bir dizi prosedür ve veri kümesine izin verir).
- İşaretçi -> her türden sembol ve TABANLI değişkenler
- Münhasır-VEYA operatörü (XOR)
- Çoklu görev
Referanslar
- DG / L Compiler Referans Kılavuzu, Data General Corp, 1978
- DG / L Runtime Referans Kılavuzu, Data General Corp, 1978