Direktif (programlama) - Directive (programming)

Gelen bilgisayar programlama , bir direktif ya pragma ( "pragmatik" dan) bir olan dil oluşumu belirtir bir nasıl derleyici (ya da diğer çevirmen ) onun giriş işlemek gerekir. Yönergeler, bir programlama dilinin gramerinin bir parçası değildir ve derleyiciden derleyiciye değişebilir. Derleyici davranışını belirtmek için bir ön işlemci tarafından işlenebilir veya bant içi parametreleştirmenin bir biçimi olarak işlev görebilirler .

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ü olan özel üçüncü taraf etiketlerine ve komutlarına (veya işaretlemeye) atıfta bulunmak için kullanılabilir. "Yönerge" terimi de komut terimine benzer çeşitli şekillerde kullanılır .

C ön işlemcisi

In C ve C ++ , dil basit destekler makro ön işlemci . Önişlemci tarafından ele alınmalıdır Kaynak hatları, gibi #define ve #include olarak adlandırılır önişlemci direktifleri .

Başka bir C yapısı olan #pragma yönerge, 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'dir .

C # 'ler gibi C'nin önişlemci yönergelerine benzer sözdizimsel yapılar #if da tipik olarak "yönergeler" olarak 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

İçin direktifler tarihi ALGOL 68 olarak da adlandırılır, pragmats ( "pragmatik" ile elde edilmiş) ve belirtilen 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ı, "anahtar kelimelerin nasıl belirtildiği" anlamına gelen bir kesikli rejim belirlemektir . POINT, UPPER, RES (ayrılmış) veya teklif rejimlerini belirten bu tür çeşitli direktifler takip eder. POINT veya alıntı rejimlerinde pragmat anahtar kelimesinin kendisi (kısaltılmış pr ) için stropping kullanımına dikkat edin :

.PR POINT .PR
.PR UPPER .PR
.PR RES .PR
'pr' quote 'pr'

Bugün direktifler en iyi 1970'lerin başlarında C dilinde bilinmekte ve ya C ön işlemcisine talimatlar ya da derleyicinin kendisine yönelik direktifler şeklinde oldukları mevcut C99 standardıyla devam etmektedir . Daha modern dillerde de bir dereceye kadar kullanılırlar; aşağıya bakınız. #pragma

Diğer diller

  • In Ada , derleyici direktifleri denir pragmas (kısa "pragmatik bilgi" için).
  • Gelen Common Lisp'te , direktifler adlandırılır bildirimleri ve kullanılarak belirlenir declare (aynı zamanda yapıyı proclaim ya da declaim ). Bir istisna dışında, bildirimler isteğe bağlıdır ve programın anlamını etkilemez. Tek istisna, special uygun olduğu yerde belirtilmesi gereken şeydir.
  • In Turbo Pascal , direktifler denir önemli bir yorum dil nedeniyle, dilbilgisi onlar geçerli sözdizimi kullanılır yorumlarla . Turbo Pascal'da önemli bir yorum, ilk karakteri dolar işareti olan ve ikinci karakteri bir harf olan bir yorumdur ; örneğin, C'nin #include "file" direktifinin eşdeğeri önemli yorumdur {$I "file"} .
  • In Perl , anahtar kelime " use ", ithalat modülleri de gibi yönergeleri belirtmek için kullanılabilir use strict; ya use utf8; .
  • Haskell pragmaları, özel bir yorum sözdizimi kullanılarak belirtilir, örn {-# INLINE foo #-} .
  • Python'un iki yönergesi vardır - from __future__ import feature ( PEP 236 - Back to the __future__'da tanımlanmıştır ), dil özelliklerini değiştiren (ve Perl'de olduğu gibi mevcut modül içe aktarma sözdizimini kullanır) ve bir coding yönergenin kodlamasını belirtmek için yönergesi (bir yorumda) kaynak kodu dosyası ( PEP 263 - Python Kaynak Kodu Kodlamalarını Tanımlama'da tanımlanmıştır ). PEP 244'te daha genel bir yönerge önerisi önerildi ve reddedildi - `` Yönerge '' ifadesi ; bunların hepsi 2001 yılına dayanıyor.
  • ECMAScript aynı zamanda use yönergeler için sözdizimini de benimser, ancak farklı olarak pragmalar bir işlev çağrısı yerine dizge değişmezleri (örneğin "use strict"; , veya "use asm"; ) olarak bildirilir .
  • Gelen Visual Basic , anahtar kelime " Option " direktifleri için kullanılır:
    • Option Explicit On|Off - When on, önceden açık bildirim gerektiren ilk kullanımda değişkenlerin örtük bildirimine izin vermez.
    • Option Compare Binary - Karakterlerin dahili ikili temsillerinden türetilen bir sıralama düzenine dayalı olarak dize karşılaştırmalarında sonuçlar - örneğin İngilizce / Avrupa kod sayfası (ANSI 1252) için A <B <E <Z <a <a <b <e <z <À < Ê <Ø <à <ê <ø. İç operatörleri (örn. =, <>, <,>), Select Case bloğunu ve VB çalışma zamanı kitaplık dizesi işlevlerini (örn. InStr) etkiler.
    • Option Compare Text - Sisteminizin yerel ayarı tarafından belirlenen büyük / küçük harfe duyarlı olmayan metin sıralama düzenine dayalı olarak dize karşılaştırmalarında sonuçlar - ör. İngilizce / Avrupa kod sayfası (ANSI 1252) (A = a) <(À = à) <(B = b) < (E = e) <(Ê = ê) <(Z = z) <(Ø = ø). İç operatörleri (örn. =, <>, <,>), Select Case bloğunu ve VB çalışma zamanı kitaplık dizesi işlevlerini (örn. InStr) etkiler.
    • Option Strict On|Off - İzin vermediğinde:
      • tipsiz programlama - 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 tiplere (ör. Uzun'dan Tamsayıya, Nesneden Dizeye, Kontrol'den Metin Kutusuna) dönüştürme operatörleri (örneğin CInt, DirectCast, CType) kullanılarak kodda açık olmasını gerektirir.
    • Option Infer On|Off - When on, derleyicinin yerel değişkenlerin türünü başlatıcılarından çıkarmasını sağlar.
  • In Ruby , tercüman direktifleri olarak adlandırılan pragmas ve izleyin üst dosya-yorumlarla tarafından belirtilen key: value gösterimi. Örneğin coding: UTF-8 , dosyanın UTF-8 karakter kodlamasıyla kodlandığını belirtir .
  • In C # , derleyici direktifleri ö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.
  • SQLite DBMS diğer DBMS ile uyumlu olmayan komutlar tanıtmak için kullanılan bir PRAGMA'ya yönergesini içerir.

Assembly dili

  • In montaj dili , direktifleri, aynı zamanda sözde işlemler veya "sözde ops" genellikle hedef makinede gibi bilgileri belirtmek olarak anılacaktır, kod bölümleri arasında işareti ayrılıklar, makro çağırmak, ayrılmış bellek alanlarını tanımlamak ve böyle devam eder. Birleştiriciler, sözde işlemlerin sözde işlem gibi bir dönemle önceden doldurulması gibi sözde işlemlerin talimat anımsatıcılarından ayırt edilmesi için belirli bir sözdizimi kullanır .END ; bu, derleyiciyi kodu derlemeyi durdurmaya yönlendirebilir.

PL / SQL

Ayrıca bakınız

Referanslar

Dış bağlantılar