tohum7 - Seed7

tohum7
paradigma çoklu paradigma : genişletilebilir , nesne yönelimli , zorunlu , yapılandırılmış , genel , yansıtıcı
Tarafından tasarlandı Thomas Mertes
İlk ortaya çıktı 2005 ; 16 yıl önce ( 2005 )
kararlı sürüm
2021-08-07 / 69 gün önce
Yazma disiplini statik , güçlü , güvenli , yalın , tezahür
işletim sistemi Çapraz platform : BSD , Linux , OS X , Unix , Windows
Lisans GPL , LGPL (çalışma zamanı kitaplığı için)
Dosya adı uzantıları .sd7, .s7i
İnternet sitesi tohum7 .sourceforge .net
Başlıca uygulamalar
açık kaynak referans uygulaması
Tarafından etkilenmiş
Pascal , Modula-2 , Ada , ALGOL 68 , C , C++ , Java

Seed7 , Thomas Mertes tarafından tasarlanan genişletilebilir genel amaçlı bir programlama dilidir . Sözdizimsel olarak Pascal ve Ada'ya benzer . Diğer birçok özelliği ile birlikte bir uzatma mekanizması sağlar. Seed7, dile yeni sözdizimi öğelerini ve anlamlarını tanıtmayı destekler ve yeni dil yapılarının Seed7'de tanımlanmasına ve yazılmasına izin verir. Örneğin, programcılar yeni ifadelerin ve kullanıcı tanımlı operatör sembollerinin sözdizimini ve anlamını sunabilir. Seed7'nin uygulanması, kodlanmış sözdizimi ve anlambilimi olan dillerden önemli ölçüde farklıdır .

Özellikleri

Seed7, programlama paradigmalarını destekler : zorunlu , nesne yönelimli (OO) ve genel . Ayrıca ada göre arama , çoklu gönderim , işlev aşırı yüklemesi , operatör aşırı yüklemesi , istisna işleme ve keyfi kesinlikli aritmetik gibi özellikleri de destekler .

Başlıca özellikler şunları içerir:

Birkaç programlama dili kavramı genelleştirilmiştir:

Seed7 projesi içerir tercüman ve bir derleyici . Tercüman programları çok hızlı başlatır ve hızlı program geliştirmeyi destekler. Derleyici , daha sonra makine koduna derlenen bir C programı oluşturmak için çalışma zamanı kitaplığından ayrıştırıcı ve yansıma arabirimlerini kullanır . Derlenmiş Seed7 programları, C programlarıyla karşılaştırılabilir performansa sahip olabilir .

Kütüphaneler

Seed7, kapsayıcılar , sayısal işlevler, sözcük analizi , dosya işleme, ağ oluşturma ( soketler , Aktarım Katmanı Güvenliği (TLS/SSL), Köprü Metni Aktarım Protokolü (HTTP), HTTP Güvenli ( HTTPS ), Dosya Aktarım Protokolü (FTP ) gibi alanları kapsayan birçok kitaplığa sahiptir. ), Basit Posta Aktarım Protokolü (SMTP) vb.), grafikler , pixmap ve vektör yazı tipleri , veritabanından bağımsız API , Ortak Ağ Geçidi Arayüzü (CGI) desteği, veri sıkıştırma , arşiv dosyaları ( tar , zip , cpio , ar , rpm ), karakter kodlaması , saat ve tarih işleme, XML işleme, mesaj özetleri ve daha fazlası. Bu kitaplıklar, taşınabilir olmayan işletim sistemi özelliklerini ve üçüncü taraf kitaplıklarını (her zaman bulunmayabilir) doğrudan kullanma ihtiyacını azaltır . Seed7 kitaplıkları, donanım , işletim sistemi ve üçüncü taraf kitaplıkları, örneğin grafik ve veritabanı kitaplıkları için soyutlama katmanları içerir . Başka bir deyişle, Seed7 programlarını farklı işlemciler veya işletim sistemleri arasında taşımak için herhangi bir değişikliğe gerek yoktur .

TLS kitaplığı

Seed7, kendi Aktarım Katmanı Güvenliği uygulamasına sahiptir . Kitaplık, AES ve eliptik eğri şifreleme içerir .

Veritabanı soyutlama API'si

Seed7, veritabanından bağımsız bir API'ye sahip bir kitaplık sağlar . Programlar MySQL , MariaDB , SQLite , PostgreSQL , Oracle , Open Database Connectivity (ODBC), Firebird , InterBase , Db2 ve SQL Server veritabanlarına bağlanabilir . Veritabanından bağımsız olarak hazırlanmış deyimler oluşturulabilir, bind değişkenleri kullanılabilir, deyimler çalıştırılabilir ve sonuç setleri alınabilir.

Tarih

Seed7, Thomas Mertes'in diploma ve doktora tezlerinde açıklanan genişletilebilir bir programlama dili olan MASTER'a dayanmaktadır. Kullanıcı tanımlı ifadeler ve operatörler gibi MASTER'ın orijinal fikirlerinin çoğu Seed7'de bulunabilir. Bir precompiler , Pascal'a MASTER çevirmek için, önerilmişti, ancak orijinal projede, Uygulanmayan. 1989'da MASTER için HAL adlı bir yorumlayıcı geliştirilmeye başlandı. 2005 yılında MASTER ve HAL projeleri Seed7 proje adı altında açık kaynak olarak yayınlandı. O zamandan beri her iki veya üç haftada bir yeni sürümler yayınlandı. 2021-04-25 sürümünden itibaren Seed7 projesi 500.000'den fazla kaynak kod satırı ve birkaç yüz sayfa belge içerir.

Uzatma mekanizması

Bir uzantı iki bölümden oluşur: yeni sözdizimsel biçim için bir şablon veren sözdizimi tanımı ve anlambilimi tanımlamak için kullanılan standart bir Seed7 işlevi.

sözdizimi tanımı

Sözdizimi tanımı, Seed7 Yapılandırılmış Sözdizimi Açıklamasını (S7SSD) kullanır. Gibi bir S7SSD ifadesi

$ syntax expr: .(). + .()  is -> 7;

+ operatörün sözdizimini belirtir . Sağ ok ->, ilişkilendirilebilirliği açıklar : İşlenenlerin soldan sağa bağlanması. İle öncelikli bir operatör tanımlanır. Sözdizimi deseni tanıtılır ve noktalarla ( ) sınırlandırılır . Noktalar olmadan desen . Sembol , terminal olmayan bir semboldür ve bir terminal sembolüdür. S7SSD, farklı terminal olmayan semboller arasında ayrım yapmaz . Bunun yerine yalnızca bir terminal olmayan sembol bilir: . 7+.(). + .().() + ()()+()

anlamsal uzantı

+Karmaşık sayılar için operatör tanımı sadece bir fonksiyon tanımıdır:

const func complex: (in complex: summand1) + (in complex: summand2) is func
  result
    var complex: sum is complex.value;
  begin
    sum.re := summand1.re + summand2.re;
    sum.im := summand1.im + summand2.im;
  end func;

Referanslar

Dış bağlantılar