HAL/S - HAL/S

HAL / S ( lH üksek dereceden bir ssembly L anguage / S huttle ) a, gerçek zamanlı bir uzay programlama dili NASA ve ilişkili kurumları (kullandığı aviyonik uygulamalar için derleyici ve çapraz derleyici JPL , vb). 1973'ten beri birçok ABD uzay projesinde kullanılmıştır ve en önemli kullanımı Uzay Mekiği programında olmuştur (Mekik yazılımının yaklaşık %85'i HAL/S'de kodlanmıştır). 1972'de Intermetrics tarafından NASA için tasarlandı ve 1973'te teslim edildi. HAL/S, PL/ I'nin bir lehçesi olan XPL ile yazılmıştır . HAL/S öncelikle yerleşik bilgisayarları programlamak için tasarlanmış olsa da, havacılık ve diğer gerçek zamanlı uygulamaların üretimi, doğrulanması ve desteklenmesindeki neredeyse tüm ihtiyaçları karşılayacak kadar geneldir. 2005 yılına ait belgelere göre, United Space Alliance'ın HAL/S projesi tarafından sürdürülüyordu .

Hedefler ve ilkeler

Dili tasarlamanın üç temel ilkesi güvenilirlik, verimlilik ve makineden bağımsız olmaydı . Dil, havacılık ile ilgili görevlerin ( vektör / matris aritmetiği gibi) uzay uçuşu bilgisine sahip, ancak bilgisayar programlama konusunda yeterliliği olmayabilecek kişiler tarafından kolayca anlaşılabilecek şekilde gerçekleştirilmesine izin verecek şekilde tasarlanmıştır .

HAL/S, hataların nedeni olduğu düşünülen bazı yapıları içermeyecek şekilde tasarlanmıştır . Örneğin, dinamik bellek ayırma desteği yoktur. Dil, gerçek zamanlı yürütme ortamları için özel destek sağlar .

" GOTO " gibi bazı özellikler, esas olarak diğer dillerden mekanik çevirileri kolaylaştırmak için sağlandı. (sayfa 82)

"HAL" Ed Copps, bir kurucu müdürü yeni dilin adı olarak öne sürüldü Intermetrics Hal Laning, bir meslektaşı onurlandırmak için, MIT . HAL/S Dil Belirtiminin Önsöz sayfasında şöyle yazıyor:

kavram ve MAC uygulanmasına temel katkıları Dr tarafından yapılmıştır J. Halcombe Laning ait Draper Laboratuvarı .

"Yer" için HAL/G adlı bir NASA standart yer tabanlı HAL sürümü için bir teklif önerildi, ancak yakında Adlandırılacak Ada programlama dilinin ortaya çıkması, Intermetrics'in bu çalışmayı sürdürme konusundaki ilgisizliğine katkıda bulundu. Bunun yerine Intermetrics, seçilmeyecek olan "Kırmızı" finalistin ne olacağına vurgu yapacaktı.

Ana bilgisayar derleyici sistemleri, bir IBM 360/370, Data General Eclipse ve Modcomp IV/Classic bilgisayarlarında uygulanmıştır. Hedef bilgisayar sistemleri arasında IBM 360/370 , IBM AP-101 (uzay mekiği aviyonik bilgisayarı), Sperry 1819A/1819B, Data General Nova ve Eclipse, CII Mitra 125, Modcomp II ve IV, NASA Std. Uzay Aracı Bilgisayarı-l ve Bilgisayar-2, ITEK ATAC 16M ( Galileo Projesi ) ve 1978'den beri RCA CDP1802 COSMAC mikroişlemcisi (Galileo Projesi ve diğerleri).

Sözdizimi

HAL/S çoğunlukla serbest biçimli bir dildir : ifadeler bir satırda herhangi bir yerden başlayabilir ve sonraki satırlara yayılabilir ve gerekirse aynı satıra birden fazla ifade yerleştirilebilir. Ancak, bir program satırının ilk sütunundaki boşluk olmayan karakterlerin özel bir anlamı olabilir. Örneğin, ilk sütundaki 'C' harfi, tüm satırın bir yorum olduğunu ve derleyici tarafından göz ardı edilmesi gerektiğini belirtir .

HAL/S'nin özellikle ilginç bir özelliği, normal tek satırlık metin biçimine ek olarak, her ifade için üç kaynak kod satırının kullanıldığı isteğe bağlı üç satırlı bir giriş biçimini desteklemesidir. Bu formatta, birinci ve üçüncü satırlar üst simgeler (üsler) ve alt simgeler (endeksler) için kullanılabilir. Çok satırlı biçim, matematiksel gösterime benzer HAL/S kodunun yazılmasına izin verecek şekilde tasarlanmıştır .

Örnek olarak, ifade tek satırlık biçimde şu şekilde yazılabilir:

X = A ** 2 + B$(I) ** 2 

Üs , PL/I ve Fortran'da olduğu gibi iki yıldızla gösterilir . Alt simge dolar işaretiyle gösterilir ve alt simge ifadesi parantez içine alınır . Aynı kod parçası, çok satırlı biçimde şu şekilde yazılabilir:

E       2     2
M  X = A  + B
S            I 

Örnekte, ifadenin temel satırı ilk sütunda 'M' ile, üs satırı 'E' ile ve alt simge satırı 'S' ile belirtilmiştir.

Misal

Aşağıdaki basit bir HAL/S programıdır. Her program etiketli bir PROGRAMifadeyle başlar ; etiket, ardından iki nokta üst üste gelen bir tanımlayıcıdan oluşur. Tüm değişkenler DECLARE, yürütülebilir ifadelerden önce gelen grupta bildirilmelidir. Her program bir CLOSEsınırlayıcı ifadeyle biter .

   SIMPLE: PROGRAM;
C  CODE IN THIS TYPEFACE IS
C  HAL/S SOURCE
   DECLARE PI CONSTANT (3.14159266);
   DECLARE R SCALAR;
   READ(5) R;
   WRITE(6) PI R**2;
   CLOSE SIMPLE;

Veri tipleri

HAL/S, tamsayılar , kayan noktalı skalerler , vektör , matrisler , booleanlar ve maksimum 255 uzunlukla sınırlı 8 bitlik karakter dizileri için yerel desteğe sahiptir . Yapılandırılmış türler bir DECLARE STRUCTdeyim kullanılarak oluşturulabilir .

Ayrıca bakınız

  • IBM AP-101 , uzay mekiği aviyonik bilgisayarı
  • Fortress , matematiksel ifadeler için gelişmiş sözdizimsel desteği olan bir programlama dili
  • COLASL , IBM 7030 Stretch için benzer bir "doğal" biçime sahip bir programlama dili

Referanslar

Dış bağlantılar