Direktif (programlama) - Directive (programming)

İçinde bilgisayar Programlama, bir direktif veya Pragma ("pragmatik" den) bir dil yapısı bu nasıl bir derleyici (veya diğeri çevirmen ) girdisini işlemelidir. Direktifler, dilbilgisi bir Programlama dili ve derleyiciden derleyiciye değişebilir. Tarafından işlenebilirler önişlemci derleyici davranışını veya bir biçim olarak işlevini belirtmek için bant içi parametrelendirme.

Bazı durumlarda direktifler genel davranışı belirtirken, diğer durumlarda sadece bir programlama kodu bloğu gibi yerel bir bölümü etkilerler. Bazı C programları gibi bazı durumlarda, yönergeler isteğe bağlı derleyici ipuçlarıdır ve göz ardı edilebilir, ancak normalde kuralcıdır ve izlenmelidir. Bununla birlikte, bir yönerge, dilin kendisinde herhangi bir eylem gerçekleştirmez, yalnızca derleyicinin davranışında bir değişiklik yapar.

Bu terim, geliştirme ortamında mevcut olan mevcut derleyici, derleyici ve dil yapılarını genişleten ek çalıştırılabilir işlemlerle sonuçlanan koda gömülü özel üçüncü taraf etiketlerine ve komutlarına (veya işaretlemeye) atıfta bulunmak için kullanılabilir. "Yönerge" terimi de terime benzer çeşitli şekillerde kullanılır komut.

C ön işlemcisi

İçinde C ve C ++ dil, basit bir makro önişlemci. Önişlemci tarafından kullanılması gereken kaynak satırları, örneğin #tanımlamak ve #Dahil etmek olarak anılır Önişlemci yönergeleri.

Başka bir C yapısı, #pragma yönergesi, derleyiciye pragmatik veya uygulamaya bağlı özellikleri kullanma talimatı vermek için kullanılır. Bu direktifin iki önemli kullanıcısı: OpenMP ve OpenACC.

C'nin önişlemci direktiflerine benzer sözdizimsel yapılar, örneğin C # 's #Eğer, tipik olarak "direktifler" olarak da adlandırılır, ancak bu durumlarda gerçek bir ön işleme aşaması dahil olmayabilir.

Tüm önişlemci komutları bir karma simgesiyle (#) başlar.

Tarih

Direktiflerin tarihi ALGOL 68 nerede bilindikleri Pragmat ("pragmatik" den) ve gösterilir pragmat veya pr; daha yeni dillerde, özellikle C, bu "pragma" ("t" yok) olarak kısaltılmıştır.

ALGOL 68'deki pragmatların yaygın bir kullanımı, stropping rejim, "anahtar kelimelerin nasıl belirtildiği" anlamına gelir. POINT, UPPER, RES (ayrılmış) veya teklif rejimlerini belirten bu tür çeşitli direktifler takip eder. İçin stropping kullanımına dikkat edin. pragmat anahtar kelimenin kendisi (kısaltılmış prPOINT veya teklif rejimlerinde:

.PR POINT .PR.PR UPPER .PR.PR RES .PR'pr 'alıntı' pr '

Bugün direktifler en iyi 1970'lerin başındaki C dilinde biliniyor ve günümüzde de devam ediyor. C99 standart, her iki durumda da C ön işlemcisi veya şeklinde #pragma, derleyicinin kendisine yönergeler. Daha modern dillerde de bir dereceye kadar kullanılırlar; aşağıya bakınız.

Diğer diller

  • İçinde Ada derleyici yönergelerine Pragmalar ("pragmatik bilgi" nin kısaltması).
  • İçinde Ortak Lisp direktifler denir beyannameler, ve kullanılarak belirtilir bildirmek inşa etmek (ayrıca ilan etmek veya beyan etmek).[1] Bir istisna dışında, bildirimler isteğe bağlıdır ve programın anlamını etkilemez. Tek istisna özel, uygun olan yerlerde belirtilmelidir.
  • İçinde Turbo Pascal direktifler denir önemli yorumlarçünkü dilde dilbilgisi aynı sözdizimini takip ediyorlar yorumlar. Turbo Pascal'da önemli bir yorum, ilk karakteri bir dolar işareti ve ikinci karakteri bir harf olan; örneğin, C'nin eşdeğeri #include "dosya" yönerge önemli bir yorumdur {$ I "dosya"}.
  • İçinde Perl, anahtar kelime "kullanım", modülleri içe aktaran" gibi yönergeleri belirtmek için de kullanılabilir. sıkı kullanın; veya utf8 kullanın;.
  • Haskell Pragmalar, özel bir yorum sözdizimi kullanılarak belirtilir, ör. {- # INLINE foo # -}.[2]
  • Python iki direktifi vardır - __ gelecekteki__ içe aktarma özelliğinden (içinde tanımlanmıştır PEP 236 - __ geleceğe __ ), dil özelliklerini değiştiren (ve Perl'deki gibi mevcut modül içe aktarma sözdizimini kullanan) ve kodlama yönerge (bir yorumda) bir kaynak kod dosyasının kodlamasını belirtmek için ( PEP 263 - Python Kaynak Kodu Kodlamalarını Tanımlama ). Daha genel bir yönerge beyanı önerildi ve reddedildi PEP 244 - `` Yönerge '' ifadesi; bunların hepsi 2001 yılına dayanıyor.
  • ECMAScript ayrıca benimser kullanım pragmaların dize değişmezleri olarak bildirilmesinden farklı olarak yönergeler için sözdizimi (ör. "sıkı kullanın";veya "asm kullanın";), bir işlev çağrısı yerine.
  • İçinde Visual Basic, anahtar kelime "Seçenek"yönergeler için kullanılır:
    • Seçenek Açık Açık | Kapalı - When on, önceden açık bildirim gerektiren ilk kullanımda değişkenlerin örtük bildirimine izin vermez.
    • Opsiyon İkili Karşılaştır - Karakterlerin dahili ikili temsillerinden türetilen bir sıralama düzenine dayalı olarak dize karşılaştırmalarında sonuçlar - ör. İngilizce / Avrupa kodu sayfası için (ANSI 1252) A , <,>), Select Case bloğunu ve VB çalışma zamanı kitaplık dizesi işlevlerini (ör. InStr) etkiler.
    • Seçenek Metni Karşılaştır - Sisteminizin yerel ayarı tarafından belirlenen, büyük / küçük harf duyarlı olmayan metin sıralama düzenine dayalı olarak dize karşılaştırmalarında sonuçlar - ör. İngilizce / Avrupa kod sayfası için (ANSI 1252) (A = a) <(À = à) <(B = b) <(E = e) <(Ê = ê) <(Z = z) <(Ø = Ö). İç operatörleri (ör. =, <>, <,>), Select Case bloğunu ve VB çalışma zamanı kitaplık dizesi işlevlerini (ör. InStr) etkiler.
    • Seçenek Katı Açık | Kapalı - İzin vermediğinde:
      • tipsiz programlama - burada açık bir türü olmayan bildirimler dolaylı olarak Object olarak yazılır.
      • nesne olarak statik olarak tiplenen değerlere geç bağlanma (yani CLR, DLR ve COM nesnelerine dinamik gönderme).
      • örtük daraltma dönüştürmeleri - tüm dönüştürmelerin daha dar kapsamlı türlere (ör. Uzun'dan Tamsayıya, Nesneden Dizeye, Kontrol'den Metin Kutusuna) dönüştürme operatörleri (ör. CInt, DirectCast, CType) kullanılarak kodda açık olmasını gerektirir.
    • Seçenek Çıkarma Açık | Kapalı - When on, derleyicinin yerel değişkenlerin türünü kendi başlatıcılarından çıkarmasını sağlar.
  • İçinde Yakut tercüman direktifleri şu şekilde anılır: Pragmalar ve aşağıdaki dosya başı açıklamalarıyla belirtilir: anahtar: değer gösterim. Örneğin, kodlama: UTF-8 dosyanın kodlandığını gösterir. UTF-8 karakter kodlaması.
  • İçinde C # derleyici yönergelerine ön işleme yönergeleri denir. Derleyici uyarılarını ve hata ayıklayıcı sağlama toplamlarını kontrol etmek için özel olarak kullanılan #pragma dahil olmak üzere bir dizi farklı derleyici yönergesi vardır.[3][4]

Assembly dili

  • İçinde montaj dili, sözde işlemler veya "sözde işlem" olarak da adlandırılan yönergeler, genellikle hedef makine, kod bölümleri arasındaki ayrımları işaretleme, makroları çağırma, ayrılmış bellek alanlarını tanımlama vb. bilgileri belirtir. Birleştiriciler, sözde operasyonları sözde operasyon gibi bir dönemle önceden doldurmak gibi sözde operasyonları talimat anımsatıcılarından ayırmak için belirli bir sözdizimi kullanır. .SON, bu derleyiciyi kodu derlemeyi durdurmaya yönlendirebilir.

PL / SQL

Ayrıca bakınız

Referanslar

  1. ^ Steele 1990, Bölüm 9: Beyanlar, s. 215–237.
  2. ^ "7.20. Pragmas". GHC 7.8.3 Belgeler. Alındı 18 Temmuz 2014.
  3. ^ dotnet-bot. "Sözcük yapısı - C # dil belirtimi". docs.microsoft.com. Alındı 2019-11-01.
  4. ^ BillWagner. "#pragma - C # Referansı". docs.microsoft.com. Alındı 2019-11-01.
  5. ^ Feuerstein, Steven; Pribyl, Bill (2014). Oracle PL / SQL Programlama (6 ed.). O'Reilly Media, Inc. ISBN  9781449324414. Alındı 2016-06-16. PL / SQL, aşağıdaki sözdizimine sahip bir PRAGMA anahtar kelimesine sahiptir: PRAGMA talimat_ derleyiciye_; [...] PL / SQL çeşitli pragmalar sunar [...]

Dış bağlantılar