Sigil (bilgisayar programlama) - Sigil (computer programming)

Olarak bilgisayar programlama , bir desene ( / s ɪ əl / ) bir yapıştırılmış bir semboldür değişken değişkenin gösteren adı, veri türü ya da kapsam olarak, genellikle bir önek $foo burada, $ desen olan.

Latince sigillum kelimesinden gelen "küçük işaret" anlamına gelen Sigil , sözde sihirli güce sahip bir işaret veya imge anlamına gelir . İşaretler, farklı özelliklere veya davranışlara sahip ad alanlarını ayırmak ve sınırlandırmak için kullanılabilir .

Tarihsel bağlam

İşaretlerin kullanımı BASIC programlama dili tarafından popüler hale getirildi . BASIC'de bir sigil için en iyi bilinen örnek , tüm dizelerin adlarına eklenen dolar işaretidir (" $ ") . Birçok BASIC lehçesi, tam sayıları ve kayan nokta sayılarını ve bunların hassasiyetini ve bazen diğer türleri belirtmek için diğer işaretleri (" " gibi ) kullanır . %

Larry Wall , Perl programlama dili için kabuk betiklemenin sigil kullanımını benimsedi . Perl'de, işaretler dizeler ve tamsayılar gibi ayrıntılı veri türlerini belirtmez, ancak daha genel skaler kategorileri (önekli " " kullanarak), diziler (" " kullanarak ), karmalar (" " kullanarak ) ve alt yordamlar (" " kullanarak ). Raku ayrıca değişkenlerin kapsamını belirtmek için ikincil işaretler veya ince dallar kullanır . Raku'daki dalların öne çıkan örnekleri, kendinden bildirimli biçimsel parametrelerle ("yer tutucu değişkenler") kullanılan " " ve nesne özniteliği erişimcileriyle (yani, örnek değişkenleri) kullanılan " " içerir. $@%&^.

Gelen KLİPLER , skaler değişkenler "ifadesi eklenir ? " multifield (örneğin bir 1 düzeyli liste) değişkenleri öneki ise desene " $? ".

In Common Lisp , (dinamik kapsamı ile) özel değişkenler genellikle çevrili * "olarak adlandırılan ne de kulaklık kongre ". Bu sadece bir konvansiyon iken ve zorunlu olmasa da, dilin kendisi uygulamayı benimser (örneğin, * standart-çıktı *). Benzer şekilde, bazı programcılar sabitleri + .

In CYCL , değişkenler "ile başlar ? " desene. Benzer şekilde, sabit adların başına " #$ " ("hash-dolar" olarak okunur) eklenir .

In Elixir , dize sigils "üzerinden sağlanmaktadır ~ " sembolü.

In Mapper dizeleri veya karakter değerleri tırnak gerektirmez çünkü (BIS aka) isimli değişkenler ifadesi eklenir "<" ve son eki ">".

In mIRC script , tanımlayıcılar bir "var $ " tüm değişkenler varken, deseni, bir " % " (bakılmaksızın yerel veya küresel değişkenler veya veri türünde) öneki. İkili değişkenlerin önünde bir " & " bulunur.

Gelen Kabakulak dili programlama, " $ " ilerlettiği iç işlevi adları ve 'özel değişken isimleri' (Yerleşik değişkenler yürütme durumunu erişmek için). " $Z ", standart olmayan iç işlev adlarından önce gelir. " $$ " harici işlev adlarından önce gelir. Rutinler (yordamlar, alt yordamlar, işlevler için kullanılır) ve genel değişkenler (veritabanı depolaması) bir düzeltme işareti (^) ile başlar. Son global değişken alt ağaca, dolaylı olarak bir düzeltme işareti ve son alt simge ile başvurulabilir; buna "çıplak referans" denir. Sistem çapında rutinler ve global değişkenler (belirli paylaşılan veritabanlarında saklanan) ^% ile başlar; bunlar "yüzde yordamları" ve "küresel yüzdeler" olarak adlandırılır.

In Objective-C , "ile başlar dize hazır @ " nesne türü örnekleri olan NSString veya beri çınlama v3.1 / LLVM v4.0, NSNumber , NSArray veya NSDictionary . Prefix- @ ayrıca anahtar kelimeler kullanılır interface , implementation ve end sınıf tanımlarının yapısını ifade etmek. Sınıf bildirimleri ve tanımları içinde - , üye yöntemleri ve değişkenleri belirtmek için bir önek kullanılırken, önek + sınıf öğelerini belirtir.

Büyük ölçüde Perl'den esinlenen PHP dilinde, " $ " herhangi bir değişken adından önce gelir . Bunun ön eki olmayan adlar sabitler , işlevler veya sınıf adları (veya sınıflarla aynı ad alanını paylaşan arabirim veya özellik adları) olarak kabul edilir.

PILOT , $ tamponlar (dizi değişkenleri) # için " ", tamsayı değişkenleri * için " " ve program etiketleri için " " kullanır.

Python bir "kullanır @ " adı verilen önek, pasta sözdizimi uygulanması için, dekoratörler ve " __ sözde" öneki, dunder için, "özel" nitelikler .

In Ruby , sıradan değişkenler "Sigils yoksun ama $ " önüne eklenir küresel değişkenler , " @ " önüne eklenir örnek değişkenleri "ve @@ " önüne eklenir sınıf değişkenleri . Ruby ayrıca (kesinlikle geleneksel) sonek işaretleri kullanır: " ? ", (genellikle) bir boole değeri döndüren bir yüklem yöntemini belirtir ; ve " ! ", yöntemin potansiyel olarak beklenmedik bir etkiye sahip olabileceğini ve dikkatle kullanılması gerektiğini belirtir.

In Planı , Kongre tarafından, prosedürlerin adları her zaman bir boolean değer genellikle "sona dönmek ? ". Benzer şekilde, değerleri önceden tahsis edilmiş Scheme nesnelerinin (çiftler, vektörler veya dizeler gibi) parçalarına depolayan yordamların adları genellikle " ! " ile biter .

Standart Makine Öğrenimi ' , bir türe başvuran bir değişkende " " önek işaretini kullanır . İşaret iki katına çıkarılırsa, eşitliğin tanımlandığı bir türü ifade eder. " ' " Karakteri ayrıca bir değişkenin içinde veya sonunda görünebilir, bu durumda özel bir anlamı yoktur.

In Transact-SQL , " @ " yerel bir değişken veya parametre adı önce gelir. Sistem değişkenleri (genel değişkenler olarak bilinir) bir " @@ " önekiyle ayırt edilir .

In Windows PowerShell kısmen esinlenerek, Unix kabukları ve Perl, değişken adları "öneki olan $ " desene.

In XSLT'de , değişkenler ve parametreler lider "var $ " tanımlanan zaman olmasına rağmen, kullanım deseni <xsl:param> veya <xsl:variable> birlikte " name " özelliğiyle desen dahil değildir. XSLT ile ilgili olarak, XQuery $ hem tanımda hem de kullanımda " " sigil formunu kullanır.

In MEL , değişken adları "öneki olan $ bağlantıları, komutları ve diğer tanımlayıcılar ayırt etmek".

Benzer olaylar

Kabuk komut dosyası değişkenleri

Unix kabuk komut dosyasında ve Makefiles gibi yardımcı programlarda , " $ " bir değişkenin adını içeriğine çeviren tekli bir operatördür. Bu bir desene benzer görünse de, düzgün bir olduğunu tekli operatör sözcük için dolaylama benzer * KQUEUE operatörü içinde işaretçileri için C bir değişkene atarken dolar işareti atlanırsa olmasından farkedilir şekilde.

Tanımlayıcı kuralları

Gelen Fortran , sigils kullanılmaz, ancak tüm değişkenler I, J, K, L, M ve N, harflerle başlayan tamsayı varsayılan. Fortran dokümantasyonu bunu "örtük yazım" olarak adlandırır, ancak açık yazım, herhangi bir değişkenin herhangi bir türle bildirilmesine izin vermek için her zaman kullanılabilir. (I – N aralığı seçimi, geleneksel matematiksel adlandırma kurallarına uygundur .)

Dahil olmak üzere çeşitli programlama dilleri Prolog , Haskell , Ruby ve Git muamele tanımlayıcıları küçük harfle, Sigils kullanımıyla ilgili bir uygulama ile başlayan tanımlayıcılar farklı bir harf ile başlayan.

Stropping

Gerçekte bir kesme biçimi olan Microsoft'un .NET Ortak Dil Altyapısında (CLI) birçok dilin kullanılması, değişkenleri farklı bir dilde kullanmak için bir çağrı dilinde anahtar sözcükler olabilecek bir yol gerektirir. Bu bazen öneklerle yapılır. In C # , herhangi değişken adları "öneki edilebilir @ ". Bu, esas olarak, aksi takdirde anahtar kelimelerle çakışan değişken adlarının kullanımına izin vermek için kullanılır. Aynısı , VB.Net'te de olduğu gibi adı köşeli parantez içine alarak elde edilir [end] .

" @ " Öneki, dize değişmezlerine de uygulanabilir; aşağıdaki değişmez eklere bakın.

Macar gösterimi

İşaretlerle ilgili olarak , değişken adına belirli alfabetik önekler ekleyerek değişken türünü belirten değişkenler için bir adlandırma kuralı olan Macarca gösterimi vardır . İşaretlerden farklı olarak, Macar gösterimi derleyiciye hiçbir bilgi sağlamaz; bu nedenle, açık türler değişkenler için fazladan belirtilmelidir ( tür çıkarımı olan bir dil kullanılmadığı sürece ). Çoğu standart derleyici öneklerin kullanımını zorunlu kılmadığından, bu atlamaya izin verir ve ayrıca yanlışlıkla hatalı kullanım nedeniyle kodu karıştırmaya yatkın hale getirir.

Değişmez ekler

İşaretler adlara (tanımlayıcılara) uygulanırken, değişmez değerlere , özellikle tamsayı değişmez değerlerine ve dize değişmez değerlerine benzer önekler ve son ekler uygulanabilir ve değişmez değerin nasıl değerlendirilmesi gerektiğini veya hangi veri türü olduğunu belirtir. Örneğin, 0x10ULL 16 değerini C ++ 'da işaretsiz uzun uzun tamsayı olarak değerlendirir: 0x önek onaltılı ULL gösterirken sonek işaretsiz uzun uzun belirtir. Benzer şekilde, önekler genellikle Python'da olduğu gibi değer içeren dizeyi temsil eden bir ham dizeyi belirtmek için kullanılır ; kaçan bir dize olarak bu olarak yazılır . r"C:\Windows"C:\Windows"C:\\Windows"

Bu, bir tanımlayıcının (ad) sözdizimi veya anlambiliminden ziyade bir değişmezin anlamını (değerini) etkilediğinden, bu ne stropping (tanımlayıcı sözdizimi) ne de bir sigildir (tanımlayıcı semantiği), ancak sözdizimsel olarak benzerdir.

Java ek açıklamaları

@Override ve @Deprecated gibi Java açıklamalarını karşılaştırın .

Bilinç bulanıklığı, konfüzyon

Bazı durumlarda, aynı sözdizimi farklı amaçlar için kullanılabilir ve bu da karışıklığa neden olabilir. Örneğin, C # 'da , " @ " öneki ya stropping için (ayrılmış kelimelerin tanımlayıcılar olarak kullanılmasına izin vermek için) ya da bir hazır bilgi için bir önek olarak ( ham bir dizeyi belirtmek için ) kullanılabilir; bu durumda, tanımlayıcıların anlambilimini değil, tanımlayıcıların sözdizimini veya değişmez değerlerin anlambilimini etkilediği için kullanım bir işaret değildir.

Ayrıca bakınız

Referanslar