Bileşen Pascal - Component Pascal
Paradigmalar | Zorunlu , yapılandırılmış , modüler , nesne yönelimli |
---|---|
Aile | Wirth Oberon |
Geliştirici | Oberon mikrosistemleri |
İlk ortaya çıktı | 1997 |
Yazma disiplini | Güçlü , statik |
Dürbün | Sözcüksel |
İnternet sitesi | blackboxframework |
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
- Modula'dan Oberon Wirth'e (1990)
- Programlama Dili Oberon Wirth (1990)
- Oberon ve Oberon-2 Mössenböck ve Wirth (1993) arasındaki farklar
- Programlama Dili Oberon-2 H. Mössenböck, N. Wirth, Institut für Computersysteme, ETH Zürich ( ETHZ ), Ocak 1992.
- Bileşen Pascal'daki Yenilikler (Oberon-2'den CP'ye değişir), Pfister (2001)
- Bileşenler ve Nesneler Birlikte , Clemens Szyperski, Dr.Dobbs, Mayıs, 1999