ECL programlama dili - ECL programming language

ECL programlama dili ve sistem bir genişletilebilir yüksek seviye Programlama dili ve geliştirme ortamı geliştirildi Harvard Üniversitesi 1970 lerde. 'ECL' adı, 'Genişletilebilir Bilgisayar Dili' veya 'Eklektik Dil' anlamına geliyordu. Bazı yayınlar tüm sistem için 'ECL' adını ve dilin kendisi için 'EL / 1' (Genişletilebilir Dil) adını kullandı.

ECL, programların sistem içinde temsil edildiği etkileşimli bir sistemdi; uyumlu vardı derleyici ve çevirmen. Bir Algol -like sözdizimi ve genişletilebilir veri tipi sistem, veri türleri ile birinci sınıf vatandaşlar. Veri nesneleri referans değil değerlerdi ve çağırma kuralları arasında değere göre arama ve referansla arama her argüman için.

ECL, öncelikle şu alanlarda araştırma ve öğretim için kullanıldı programlama dili tasarımı, programlama metodolojisi (özellikle programlama yoluyla dönüşümsel iyileştirme ), ve programlama ortamları Harvard'da, bazı devlet kurumlarında da kullanıldığı söyleniyordu. İlk olarak PDP-10, daha sonra (yalnızca yorumlanmış) bir uygulama ile PDP-11 yazılmış MUTLULUK -11 ve PDP-10'da çapraz derlendi.

Prosedürler ve bağlama sınıfları

Hesaplamak için bir ECL prosedürü en büyük ortak böleni göre iki tamsayı Öklid algoritması şu şekilde tanımlanabilir:

 1  gcd <- 2    EXPR(m:INT BYVAL, n: INT BYVAL; INT) 3    BAŞLA 4      DECL r:INT; 5      TEKRAR ET 6        r <- rem(m, n); 7        r = 0 => n; 8        m <- n; 9        n <- r;10      SON;11    SON

Bu bir ödev prosedür sabiti değişkene gcd. Çizgi

EXPR (m: INT BYVAL; n: INT BYVAL; INT)

prosedürün iki parametre aldığını belirtir, INT, adlı m ve nve türünün bir sonucunu döndürür INT. (Veri türleri denir modlar ECL'de.) bağlama sınıfı BYVAL her parametre bildiriminde o parametrenin geçtiğini gösterir değere göre. Bir ECL programının hesaplama bileşenlerine denir formlar. Bazı formlar diğer programlama dillerinin ifadelerine benzerken diğerleri ifadelere benzer. Bir formun yürütülmesi her zaman bir değer verir. TEKRAR ET ... SON yapı bir döngü biçimidir. Yapının yürütülmesi

r = 0 => n

form ne zaman r = 0 değerlendirir DOĞRU döngünün yürütülmesinin değerle sonlanmasına neden olur n. Bir bloktaki son ifadenin değeri (BAŞLA ... SON) formu blok formunun değeri olur. Bir prosedür bildirimindeki formun değeri, prosedür çağrısının sonucu olur.

Bağlama sınıfına ek olarak BYVAL, ECL'nin bağlama sınıfları var PAYLAŞILAN, SEVMEK, DEĞERLİ, ve LİSTELENMİŞ. Bind sınıfı PAYLAŞILAN olduğunu belirtir parametre geçilecek referans olarak. Bind sınıfı SEVMEK bir parametrenin geçirilmesine neden olur referans olarak mümkünse ve değere göre değilse (örneğin, gerçek parametre saf bir değerse veya bir tür dönüşümünün uygulanması gereken bir değişkense). Bind sınıfı DEĞERLİ belirtir ki bir soyut sözdizimi ağacı gerçek parametrenin resmi parametreye geçirilmesi için; bu, programcılara belirli prosedür parametreleri için kendi değerlendirme anlamlarıyla kendi notasyonlarını icat etmeleri için olağanüstü esneklik sağlar. Bind sınıfı LİSTELENMİŞ benzer DEĞERLİancak benzer bir yetenek sağlar Varargs içinde C: LİSTELENMİŞ bind-class yalnızca prosedürün son biçimsel parametresinde görünebilir ve bu biçimsel parametre bir soyut sözdizimi ağacı gösterimler, kalan her gerçek parametre için bir tane. ECL'nin bir DEĞERLENDİRME bir değeri değerlendirmek için yerleşik işlev soyut sözdizimi ağacı; alternatif olarak, programcıların ağ düğümlerini keşfedebilecekleri işlevler vardır. soyut sözdizimi ağacı ve bunları kendi mantığına göre işler.

Ayrıca bakınız

Referanslar

PİSEL = Genişletilebilir diller üzerine uluslararası sempozyum bildirileri, Grenoble, Fransa, 1971, yayınlandı ACM SIGPLAN Bildirimleri 6: 12, Aralık 1971.

  • Benjamin M. Brosgol, "ECL veri türlerinin bir uygulaması", PISEL, s. 87–95.
  • Thomas E. Cheatham, Jr., Glenn H. Holloway, Judy A. Townley, "Dönüşüm yoluyla program iyileştirme", 5. Uluslararası Yazılım Mühendisliği Konferansı Bildirileri, 1981, s. 430–437. ISBN  0-89791-146-6
  • Glenn H. Holloway, "ECL'de yorumlayıcı / derleyici entegrasyonu", PISEL, s. 129–134.
  • Charles J. Prenner, "ECL'nin kontrol yapısı tesisleri", PISEL, s. 104–112.
  • Ben Wegbreit, "ECL programlama sistemine genel bakış", PISEL, s. 26–28.
  • Ben Wegbreit, "Genişletilebilir programlama dillerinde çalışmalar." Teknik Rapor ESD-TR-70-297. Harvard Üniversitesi, Cambridge, Massachusetts, Mayıs 1970.
  • Glenn Holloway, Judy Townley, Jay Spitzen, Ben Wegbreit, "ECL Programmer's Manual", Report 23-74, Center for Research in Computing Technology, Harvard Üniversitesi, Aralık 1974.
  • Larry Denenberg, "PDP-11 ECL'nin uygulanması", Teknik Rapor 29-77, Hesaplama Teknolojisi Araştırma Merkezi, Harvard Üniversitesi, Haziran 1977.