Bileşen Pascal - Component Pascal

Bileşen Pascal
Paradigmalar Zorunlu , yapılandırılmış , modüler , nesne yönelimli
Aile Wirth Oberon
Geliştirici Oberon mikrosistemleri
İlk ortaya çıktı 1997 ; 24 yıl önce  ( 1997 )
Yazma disiplini Güçlü , statik
Dürbün Sözcüksel
İnternet sitesi blackboxframework .org
Tarafından etkilenmiş
Pascal , Oberon , Oberon-2

Bileşen Pascal bir olan programlama dili geleneğinde Niklaus Wirth 'ın Pascal , Modula-2 , Oberon ve Oberon-2 . Pascal dilinin adını taşır ve mirasını korur, ancak Pascal ile uyumsuzdur. Bunun yerine, Oberon-2'nin daha etkileyici bir tür sistemi ve yerleşik dize desteğiyle küçük bir varyantı ve iyileştirmesidir . Bileşen Pascal orijinal olarak Oberon / L olarak adlandırıldı ve Oberon mikrosistemleri adlı küçük bir ETH Zürich yan şirketi tarafından tasarlanmış ve desteklenmiştir . Onlar geliştirilen entegre geliştirme ortamı adında (IDE) BlackBox Bileşen Oluşturucu . 2014 yılından bu yana geliştirme ve destek küçük bir gönüllüler grubu tarafından devralındı. IDE'nin ilk versiyonu 1994 yılında Oberon / F adıyla piyasaya sürüldü . O zamanlar, alanların ve komut düğmelerinin dışa aktarılan değişkenler ve çalıştırılabilir prosedürlerle bağlantılı olduğu düzenlenebilir formlara dayalı grafik kullanıcı arabirimi (GUI) yapısına yeni bir yaklaşım sundu . Bu yaklaşım , 2008'de piyasaya sürülen Genişletilebilir Uygulama Biçimlendirme Dili'nde (XAML) koda erişmek için Microsoft .NET 3.0'da kullanılan arka plan kod yöntemiyle bazı benzerlikler taşır .

Bir açık kaynak yazılım Bileşen Pascal uygulanması için var .NET ve Java sanal makinesi John Gough etrafında Gardens Noktası ekibinden (JVM) platformlar, Queensland Teknoloji Üniversitesi'nde Avustralya'da.

23 Haziran 2004'te Oberon microsystems, BlackBox Component Builder'ın ücretsiz olarak indirilebildiğini ve açık kaynaklı bir sürümün planlandığını duyurdu. Beta açık kaynak sürümü ilk olarak Aralık 2004'te piyasaya sürüldü ve Aralık 2005'te son v1.5 sürümüne güncellendi. IDE, derleyici, hata ayıklayıcı, kaynak çözümleyici, profil oluşturucu ve arabirim kitaplıklarının tam kaynak kodunu içerir. ayrıca kendi web sitelerinden de indirilebilir. 2009–2011 yılları arasında v1.6 için birkaç sürüm adayı çıktı, en sonuncusu (1.6rc6) 2011'de Oberon mikrosistemleri web sayfalarında çıktı. 2013'ün sonunda, Oberon mikrosistemleri son sürüm 1.6'yı yayınladı. Muhtemelen paketledikleri son sürümdür. Devam eden gelişmeyi küçük bir topluluk devraldı.

BlackBox Bileşen Pascal , örneğin kaynak dosyaları gibi belge dosyaları için .odc ( O beron d o c ument ) ve sembol dosyaları için .osf ( O beron s ymbol f ile) uzantılarını kullanırken, Gardens Point Bileşeni Pascal, kaynak ve sembol dosyaları için .cps. BlackBox Bileşeni Pascal'ın kendi çalıştırılabilir ve yüklenebilir nesne formatı vardır .ocf ( O beron c ode f ile); bu format için bir çalışma zamanı bağlama yükleyicisi içerir. Belge biçimi (.odc), güzel biçimlendirmeye izin veren, koşullu katlamayı destekleyen ve aktif içeriğin kaynak metne gömülmesine izin veren zengin metin ikili biçimidir. Ayrıca , düzenlenebilir formlarda kullanıcı arabirimi öğelerini de işler . Bu, Oberon Metin biçiminin geleneğindedir.

Sözdizimi

Dil Raporunda verildiği gibi, CP için tam sözdizimi aşağıda gösterilmiştir. In genişletilmiş Backus Naur formu , sadece 34 gramer yapımları bir daha ziyade ihtiyaç vardır Oberon-2 o daha gelişmiş bir dil olmasına rağmen,.

Module = MODULE ident ";" 
           [ImportList] DeclSeq 
           [BEGIN StatementSeq] 
           [CLOSE StatementSeq] 
         END ident ".".

ImportList = IMPORT [ident ":="] ident {"," [ident ":="] ident} ";".

DeclSeq = { CONST {ConstDecl ";" } 
          | TYPE {TypeDecl ";"} 
          | VAR {VarDecl ";"}} 
          { ProcDecl ";" | ForwardDecl ";"}.

ConstDecl = IdentDef "=" ConstExpr.

TypeDecl = IdentDef "=" Type.

VarDecl = IdentList ":" Type.

ProcDecl = PROCEDURE [Receiver] IdentDef [FormalPars] MethAttributes 
           [";" DeclSeq [BEGIN StatementSeq] 
           END ident].

MethAttributes = ["," NEW] ["," (ABSTRACT | EMPTY | EXTENSIBLE)].

ForwardDecl = PROCEDURE "^" [Receiver] IdentDef [FormalPars] MethAttributes.

FormalPars = "(" [FPSection {";" FPSection}] ")" [":" Type].

FPSection = [VAR | IN | OUT] ident {"," ident} ":" Type.

Receiver = "(" [VAR | IN] ident ":" ident ")".

Type = Qualident
    | ARRAY [ConstExpr {"," ConstExpr}] OF Type
    | [ABSTRACT | EXTENSIBLE | LIMITED] RECORD ["("Qualident")"] FieldList {";" FieldList} END
    | POINTER TO Type
    | PROCEDURE [FormalPars].

FieldList = [IdentList ":" Type].

StatementSeq = Statement {";" Statement}.

Statement = [ Designator ":=" Expr
    | Designator ["(" [ExprList] ")"]
    | IF Expr THEN StatementSeq
        {ELSIF Expr THEN StatementSeq}
        [ELSE StatementSeq] 
      END
    | CASE Expr OF 
        Case {"|" Case}
        [ELSE StatementSeq] 
      END
    | WHILE Expr DO StatementSeq END
    | REPEAT StatementSeq UNTIL Expr
    | FOR ident ":=" Expr TO Expr [BY ConstExpr] DO StatementSeq END
    | LOOP StatementSeq END
    | WITH [ Guard DO StatementSeq ] 
       {"|" [ Guard DO StatementSeq ] } 
       [ELSE StatementSeq] 
      END
    | EXIT
    | RETURN [Expr]
    ].

Case = [CaseLabels {"," CaseLabels} ":" StatementSeq].

CaseLabels = ConstExpr [".." ConstExpr].

Guard = Qualident ":" Qualident.

ConstExpr = Expr.

Expr = SimpleExpr [Relation SimpleExpr].

SimpleExpr = ["+" | "-"] Term {AddOp Term}.

Term = Factor {MulOp Factor}.

Factor = Designator | number | character | string | NIL | Set | "(" Expr ")" | " ~ " Factor.

Set = "{" [Element {"," Element}] "}".

Element = Expr [".." Expr].

Relation = "=" | "#" | "<" | "<=" | ">" | ">=" | IN | IS.

AddOp = "+" | "-" | OR.

MulOp = "*" | "/" | DIV | MOD | "&".

Designator = Qualident {"." ident 
             | "[" ExprList "]" 
             | "^" 
             | "(" Qualident ")" 
             | "(" [ExprList] ")"} [ "$" ].

ExprList = Expr {"," Expr}.

IdentList = IdentDef {"," IdentDef}.

Qualident = [ident "."] ident.

IdentDef = ident ["*" | "-"].

Referanslar

daha fazla okuma

Dış bağlantılar