RFC 4234 Sözdizimi Belirtimleri için Arttırımlı BNF: ABNF



Benzer belgeler
RFC 2234 Sözdizimi Belirtimleri için Arttırımlı BNF: ABNF

3.3. İki Tabanlı Sayı Sisteminde Dört İşlem

RFC 2822 Genel Ağ İleti Biçimi

RFC 3463 Gelişkin Posta Sistemi Durum Kodları

2. SAYI SİSTEMLERİ VE KODLAR

Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri 2. SAYI SĐSTEMLERĐ VE KODLAR

debug Bir dosyayı çözümler ve belgenin bellekteki sürümünün açıklamalı ağacını çıktılar.

2. Sayı Sistemleri. En küçük bellek birimi sadece 0 ve 1 değerlerini alabilen ikili sayı sisteminde bir basamağa denk gelen Bit tir.

Yrd.Doç.Dr. Celal Murat KANDEMİR. Kodlama (Coding) : Bir nesneler kümesinin bir dizgi (bit dizisi) kümesi ile temsil edilmesidir.

VERİ TABANI I. Yrd.Doç.Dr. İlker ÜNAL. Teknik Bilimler Meslek Yüksekokulu

U3000/U3100 Mini (Linux İşletim Sistemi Yüklü. Eee PC için) Hızlı Başlangıç Kılavuzu

Algoritma Geliştirme ve Veri Yapıları 3 Veri Yapıları. Mustafa Kemal Üniversitesi

2. Sayı Sistemleri. En küçük bellek birimi sadece 0 ve 1 değerlerini alabilen ikili sayı sisteminde bir basamağa denk gelen Bit tir.

SAYISAL ELEKTRONİK. Ege Ü. Ege MYO Mekatronik Programı

Veritabanı Tasarımı. Düzenli İfadeler

Fatih University- Faculty of Engineering- Electric and Electronic Dept.

Turquaz. Açık kodlu muhasebe yazılımı Turquaz Proje Grubu

Solaris 7980g. Hızlı Başlangıç Kılavuzu. Sunum Alanı Görüntüleyici TRTR-QS Rev A 1/16

T.C. KOCAELİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ

BTP208 İnternet Programcılığı II XML ve XML Uygulamaları. (2. Kısım)

11TA Veritabanı Organizasyonu Dersi MS ACCESS Ders Notları

2. HTML Temel Etiketleri

Tezde yer alacak bölümlerin sunuş sırası aşağıdaki düzende olmalıdır;

pfrintf fonksiyonu: Çıkışın formatlı olması ve bunun bir dosyaya yazdırılması durumlarında kullanılır. fprintf fonksiyonunun genel yazım biçimi,

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

ayarlardan önceki seçimlik anlamı ters çevirir. * karakteri POSIX olmayan ayarları gösterir. Hangi ayarların kullanılabileceği sisteme göre değişir.

Elbistan MYO Güz Dönemi Öğr.Gör. Murat KEÇECİOĞLU

PROGRAMLAMAYA GİRİŞ DERS 2

OpenBSD ve Özgürlük. Can Erkin Acar. 5. Linux ve Özgür Yazılım Şenliği.

ÇÖZÜMLÜ ÖRNEK 3.5 ÇÖZÜM

<fn> FORMAT (a1,a2,a3,...) : format deyiminin satır numarasıdır READ, WRITE deyimleri ile verilir. : alan bildirim deyimleridir.

Bölüm 8 : PROTOKOLLER VE KATMANLI YAPI: OSI, TCP/IP REFERANS MODELLERİ.

Web Tasarımının Temelleri

2. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

C Konsol Giriş Çıkış Fonksiyonları

Algoritma Geliştirme ve Veri Yapıları 9 Ağaç Veri Modeli ve Uygulaması. Mustafa Kemal Üniversitesi

Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri

Temel Giriş/Çıkış Fonksiyonları

BLM1011 Bilgisayar Bilimlerine Giriş I

Adım Adım SPSS. 1- Data Girişi ve Düzenlemesi 2- Hızlı Menü. Y. Doç. Dr. İbrahim Turan Nisan 2011

Excel Nedir? Microsoft Excell. Excel de Çalışma sayfası-tablo

Internet Programming II

tarih ve 06 sayılı Akademik Kurul tutanağının I nolu ekidir. İSTANBUL BİLGİ ÜNİVERSİTESİ SOSYAL BİLİMLER ENSTİTÜSÜ TEZ YAZIM KILAVUZU

BTP 207 İNTERNET PROGRAMCILIĞI I. Ders 8

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. Öğr. Gör. Murat KEÇECİOĞLU 1

Bilgisayar Programlama MATLAB

SAYI VE KODLAMA SİSTEMLERİ. Teknoloji Fakültesi/Bilgisayar Mühendisliği

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

Akademik Rapor Hazırlama ve Yazışma Teknikleri

KISA BİLDİRİ METNİ İÇİN GEREKLİ TASLAK VE AÇIKLAMALAR TAM METİN BAŞLIĞI (TIMES NEW ROMAN, 14, KALIN)

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

Internet Programming II

2. SAYI SİSTEMLERİ. M.İLKUÇAR - imuammer@yahoo.com

MATLAB/Değişkene Değer Atamak

Bilgisayar Sistemleri ilk ortaya çıktığında...

Açıköğretim Uygulamaları ve Araştırmaları Dergisi AUAd

HSancak Nesne Tabanlı Programlama I Ders Notları

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

Veritabanı Tasarımı. SQL Deyimi Anatomisi

Merkezi İşlem. Birimi

BİLGİSAYAR MİMARİSİ. İkili Kodlama ve Mantık Devreleri. Özer Çelik Matematik-Bilgisayar Bölümü

ÜNİTE 9 ÜNİTE 9 MICROSOFT EXCEL - II TEMEL BİLGİ TEKNOLOJİLERİ İÇİNDEKİLER HEDEFLER

Excel Formüller ve Fonksiyonlar. Yusuf MANSUROĞLU Mühendislik Hizmetleri Müdür Yardımcısı

Bölüm 2 Varlık-İlişki Veri Modeli: Araçlar ve Teknikler. Fundamentals, Design, and Implementation, 9/e

SPSS (Statistical Package for Social Sciences)

EGE ÜNİVERSİTESİ EGE MYO MEKATRONİK PROGRAMI

Fonksiyon Optimizasyonunda Genetik Algoritmalar

311188J. Copyright 2004, Graco Inc. is registered to I.S. EN ISO 9001

T. C. TRAKYA ÜNİVERSİTESİ SOSYAL BİLİMLER DERGİSİ YAYIN İLKELERİ

13 Aralık Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Raporlar. Kullanıcı Tanımlı Raporlar Bölümünden Yapabildiklerimiz

BIP116-H14-1 BTP104-H014-1

Sayı sistemleri-hesaplamalar. Sakarya Üniversitesi

FORMÜLLER VE FONKSİYONLAR

BÖL-1B. Fatih University- Faculty of Engineering- Electric and Electronic Dept.

Integer Sınıfı. 9.1 Integer Sınıfına Uygulanan Başlıca Metotlar. Ruby de tamsayılar için kullanılan Fixnum ve Bignum sınıflarını üreten sınıftır.

Ürün Özeti WIBNB Modülü

Buna göre, eşitliği yazılabilir. sayılara rasyonel sayılar denir ve Q ile gösterilir. , -, 2 2 = 1. sayıdır. 2, 3, 5 birer irrasyonel sayıdır.

Barkod Referans Kılavuzu

PASCAL PROGRAMLAMA DİLİ YAPISI

EGE ÜNİVERSİTESİ TIP FAKÜLTESİ UZMANLIK EĞİTİMİ TEZ YAZIM KURALLARI

Teknik Doküman. Autodesk Revit Building te yeni ölçü tipleri yaratmak

Yrd. Doç. Dr. Caner ÖZCAN

Elbistan Meslek Yüksek Okulu GÜZ Yarıyılı EKi Salı, Çarşamba Öğr. Gör. Murat KEÇECĠOĞLU

C#(Sharp) Programlama Dili

We Transform. Trust into Value. itelligence Türkiye Robotic Process Automotion (RPA)

2. Aşağıdaki pseudocode ile verilen satırlar işletilirse, cnt isimli değişkenin son değeri ne olur?

EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA

Programcılık...? Dahilik mi? Büyü mü?

DOKÜMANLARIN KONTROLÜ PROSEDÜRÜ Doküman No: Yürürlük Tarihi: Revizyon Tarih/No:

Access e Nasıl Ulaşılır. Araç çubuklarını yeniden düzenlemek için Görünüm komutunun Araç çubukları seçeneği kullanılır.

Internet Programming II

Laboratuvar 2 Tek Kayıt Fonksiyonları

Örnek...4 : A = { a, b, c, d, {a}, {b,c}} kümesi veriliyor. Aşağıdakilerin doğru mu yanlış mı olduğunu yazınız.

VHDL ile KODLAMA ve HATA BULMA TEKNİKLERİ

Düzenli İfadeler & Kullanım Alanları

<Ekip Adı> <Proje Adı> Yazılım Gereksinimlerine İlişkin Belirtimler. Sürüm <1.0>

Sayıtlama Dizgeleri. (a n a n-1 a n1 a n0. b 1 b 2 b m )r. simgesi şu sayıyı temsil eder.

Transkript:

RFC 4234 Sözdizimi Belirtimleri için Arttırımlı BNF: ABNF Düzenleyen: D. Crocker Brandenburg InternetWorking Düzenleyen: P. Overell THUS plc. Ekim 2006 Çeviren: Nilgün Belma Bugüner belgeler.org Özet Genel Ağ teknik belirtimlerinde yazarlarının yararlı bulduğu her gösterim kullanılabilir ve bu yüzden sıklıkla bir biçim sözdizimi tanımlama gereği duyulur. Yıllardan sonra, Arttırımlı BNF (ABNF) adı verilen, Backus Naur Formunun değiştirilmiş bir sürümü çoğu Genel Ağ belirtiminde yaygın olarak kullanılır olmaya başladı. Bu belirtim ABNF yi belgelendirir. ABNF, makul gösterimsel gücü sayesinde bütünleşiklik ile basitliği dengeler. Standart BNF ile ABNF arasındaki farklar olarak, isimleme kuralları, yinelemeler, diğer şekiller, bağımsız sıralama ve değer aralıkları gibi gösterimler sayılabilir. Bu belirtim ayrıca, çeşitli Genel Ağ belirtimleri arasında ortak türden bir çekirdek sözel çözümleyici için de kural tanımları ve kodlama içerir. Bu çeviri, RFC Türkçe çevirilerinde kullanılan ABNF temel belirtimini içerir. Konu Başlıkları 1. Giriş..................................................... 4 2. Kural Tanımı................................................. 4 2.1. Kural Adlandırma........................................... 4 2.2. Kural Biçimi.............................................. 4 2.3. Uç Değerler.............................................. 5 2.4. Harici Kodlamalar........................................... 6 3. İşleçler.................................................... 6 3.1. Ulama kural1 kural2........................................ 6 3.2. İkameler kural1 / kural2...................................... 6 3.3. İkame Eklemeleri kural1=/ kural2................................. 7 3.4. İkame Değer Aralıkları %c## ##................................. 7 3.5. Dizilim Grubu (kural1 kural2)................................... 7 3.6. Değişken Yineleme *kural..................................... 8 3.7. Belirgin Yineleme nkural..................................... 8 3.8. Seçimlik Dizilim [kural]...................................... 8 3.9. ; Açıklama............................................... 8 3.10. İşleç Önceliği............................................ 8 4. ABNF nin ABNF Tanımı.......................................... 9 5. Güvenlikle İlgili Hususlar........................................ 10

6. Kaynakça................................................. 10 6.1. Uyulması Zorunlu Olanlar..................................... 10 6.2. Bilgilendirici Olanlar......................................... 10 A. Teşekkür................................................. 12 B. ABNF nin Çekirdek ABNF si....................................... 12 C. Yazar Adresleri.............................................. 13 D. Tam Telif Hakkı Beyanı.......................................... 14 http://belgeler.org Linux Kitaplığı 2 / 14

Geçmiş 1.0 Ekim 2006 NBB İlk çeviri Standart Adayı Ekim 2005 DC ve PO Özgün sürüm Sürüm Bilgileri Ağ Çalışma Grubu Açıklama İsteği: 4234 Yerini aldığı RFC: 2234 Durumu: Standart Adayı Yasal Uyarı RFC lerin yazarlarının hakları BCP 78 (B1) ile düzenlenmiştir. Dolayısıyla RFC çevirilerinin çevirmenlerinin haklarını da BCP 78 in düzenlediği kabul edilmiştir. Bu belge IETF (B3) tarafından yayınlanan resmi RFC 4234 ün gayrıresmi çevirisidir ve aslının yerine kullanılamaz. Bu çevirinin hiçbir bağlamda ya da koşulda hükmü yoktur. Bu çeviri, anadili Türkçe olan internet kullanıcılarının bu RFC hakkında fikir edinebilmelerini sağlamak amacıyla hazırlanmıştır. BU BELGE "ÜCRETSİZ" OLARAK RUHSATLANDIĞI İÇİN, İÇERDİĞİ BİLGİLER İÇİN İLGİLİ KA- NUNLARIN İZİN VERDİĞİ ÖLÇÜDE HERHANGİ BİR GARANTİ VERİLMEMEKTEDİR. AKSİ YAZILI OLARAK BELİRTİLMEDİĞİ MÜDDETÇE TELİF HAKKI SAHİPLERİ VE/VEYA BAŞKA ŞAHISLAR BEL- GEYİ "OLDUĞU GİBİ", AŞİKAR VEYA ZIMNEN, SATILABİLİRLİĞİ VEYA HERHANGİ BİR AMACA UYGUNLUĞU DA DAHİL OLMAK ÜZERE HİÇBİR GARANTİ VERMEKSİZİN DAĞITMAKTADIRLAR. BİLGİNİN KALİTESİ İLE İLGİLİ TÜM SORUNLAR SİZE AİTTİR. HERHANGİ BİR HATALI BİLGİDEN DOLAYI DOĞABİLECEK OLAN BÜTÜN SERVİS, TAMİR VEYA DÜZELTME MASRAFLARI SİZE AİTTİR. İLGİLİ KANUNUN İCBAR ETTİĞİ DURUMLAR VEYA YAZILI ANLAŞMA HARİCİNDE HERHANGİ BİR ŞEKİLDE TELİF HAKKI SAHİBİ VEYA YUKARIDA İZİN VERİLDİĞİ ŞEKİLDE BELGEYİ DEĞİŞTİREN VEYA YENİDEN DAĞITAN HERHANGİ BİR KİŞİ, BİLGİNİN KULLANIMI VEYA KULLANILAMAMASI (VEYA VERİ KAYBI OLUŞMASI, VERİNİN YANLIŞ HALE GELMESİ, SİZİN VEYA ÜÇÜNCÜ ŞAHISLARIN ZARARA UĞRAMASI VEYA BİLGİLERİN BAŞKA BİLGİLERLE UYUMSUZ OLMASI) YÜZÜNDEN OLUŞAN GENEL, ÖZEL, DOĞRUDAN YA DA DOLAYLI HERHANGİ BİR ZARARDAN, BÖYLE BİR TAZMİNAT TALEBİ TELİF HAKKI SAHİBİ VEYA İLGİLİ KİŞİYE BİLDİRİLMİŞ OLSA DAHİ, SORUMLU DEĞİLDİR. Tüm telif hakları aksi özellikle belirtilmediği sürece sahibine aittir. Belge içinde geçen herhangi bir terim, bir ticari isim ya da kuruma itibar kazandırma olarak algılanmamalıdır. Bir ürün ya da markanın kullanılmış olması ona onay verildiği anlamında görülmemelidir. http://belgeler.org Linux Kitaplığı 3 / 14

Bu Belgenin Durumu Bu belge Genel Ağ standardı olmak üzere standartlaşma aşamasına girmiş bir protokolü belirtir ve geliştirilmesi için Genel Ağ topluluğundan üzerinde tartışılmasını ve önerilerde bulunulmasını talep eder. Bu protokolün durumu ve standartlaşma aşamalarındaki seviyesi için lütfen "Genel Ağ Resmi Protokol Standartları" (STD 1) belgesinin şu an ki sürümüne bakınız. Bu belgenin dağıtımına sınırlama getirilmemiştir. Copyright The Internet Society (2005). All Rights Reserved. 1. Giriş Genel Ağ teknik belirtimlerinde yazarlarının yararlı bulduğu her gösterim kullanılabilir ve bu yüzden sıklıkla bir biçim sözdizimi tanımlama gereği duyulur. Yıllardan sonra, Arttırımlı BNF (ABNF) adı verilen, Backus Naur Formunun değiştirilmiş bir sürümü çoğu Genel Ağ belirtiminde yaygın olarak kullanılır olmaya başladı. Makul gösterimsel gücü sayesinde bütünleşiklik ile basitliği dengeler. Arpanet in ilk günlerinde, her belirtim kendi ABNF belirtimini içerirdi. Buna eposta belirtimleri de dahildi. RFC822, RFC733 ten yaptığı ABNF alıntıları ile geldi. Bu belge belli bir başvuru kaynağı olmak üzere bu tanımı ayırmaktadır. Baştan belirtelim, ayrıca bazı değişiklikler ve genişletmeler de içerir. Standart BNF ile ABNF arasındaki farklar olarak, isimleme kuralları, yinelemeler, diğer şekiller, bağımsız sıralama ve değer aralıkları gibi gösterimler sayılabilir. ABNF nin Çekirdek ABNF si (sayfa: 12) bölümü çeşitli Genel Ağ belirtimleri arasında ortak türden bir çekirdek sözel çözümleyici için kural tanımları ve kodlama içerir. Bir uzlaşım olarak sağlanmıştır ve diğer hususlarda bu belgede tanımlanan ötedilden ve biçimsel durumundan ayrı tutulmuştur. [RFC2234] ten farklar: Belirgin Yineleme nkural (sayfa: 8) bölümünde, "Yani, tam olarak <N> <eleman> oluşumu belirtir." cümlesi "Yani, tam olarak <n> <eleman> oluşumu belirtir." olarak değiştirildi. Alt satırlarda devam eden açıklama satırları, açıklama karakteri ";" ile başlayacak şekilde düzeltildi. Bu çeviri, RFC Türkçe çevirilerinde kullanılan ABNF temel belirtimini içerir. 2. Kural Tanımı 2.1. Kural Adlandırma Bir kural ismi basitçe ismin kendisidir; yani, bir alfabetik karakterle başlayan harfler, rakamlar ve tire imlerinden oluşan bir karakter dizisidir. Kural isimleri harf büyüklüğüne duyarlı değildir. Bilgi <kuraladı>, <Kuraladı>, <KURALADI>, <kuraladı>, hepsi aynı kuralı ifade eder. Özgün BNF nin aksine, açılı ayraçlar ("<", ">") gerekli değildir. Bununla birlikte, açılı ayraçlar, varlıkları bir kural ismi kullanımının ayırdedilmesini kolaylaştıracağı her yerde bir kural ismini sarmalamakta kullanılabilir. Bu kullanım, genellikle, serbest düzyazıda kural isimlerine atıf yapmakla veya kural isimleri boşluklarla ayrılmamış bir dizge olarak verildiğinde içinde yeralan kuralların farkedilmesini sağlamakla sınırlıdır; bir örneği aşağıda, yinelemenin açıklamasında görülebilir. 2.2. Kural Biçimi http://belgeler.org Linux Kitaplığı 4 / 14

Bir kural aşağıdaki sırayla tanımlanır: isim = elemanlar crlf Burada <isim> kuralın ismi, <elemanlar> başka kural veya kuralların isimleri ya da uç belirtimleri, <crlf> ise satırbaşı karakterini izleyen satırsonu karakterinden oluşan satırsonu belirtecidir. Eşit işareti kural ismini tanımından ayırır. Elemanlar, bu belgede tanımlanmış çeşitli işleçlerle birleştirilmiş bir veya daha fazla kural ismi ve/veya değer tanımından oluşur. Görsel rahatlık amacıyla kural tanımları sola yanaşıktır. Bir kural birden fazla satır gerektiriyorsa, devam satırları girintilenir. Sola hizalama ve girintileme ABNF kuralının ilk satırına görelidir ve belgenin sol kenar payıyla uyumlu olması gerekmez. 2.3. Uç Değerler Kurallar bir uç değerler dizgesi olarak çözümlenir ve bunlara bazan karakterler adı verilir. ABNF de bir karakter basitçe sıfır veya pozitif bir tamsayıdır. Belirli bağlamlarda, değerlerin özgün bir eşlemi (kodlaması) bir karakter kümesi olarak (ASCII gibi) belirtilir. Uç değerler, bu karakterlerin taban yorumlarını açıkça belirten bir veya daha fazla sayısal karakterle belirtilir. Şimdilik şu tabanlar tanımlanmıştır: b = ikilik d = onluk x = onaltılık Dolayısıyla: ve CR = %d13 CR = %x0d sırasıyla satırbaşı karakterinin onluk ve onaltılık değerlerini [US ASCII] belirtir. Böyle değerlerin birleşiminden oluşan değerler bir bütün olarak, değeri oluşturan karakterlerin arasına bir nokta (".") konarak belirtilir. Örnek: CRLF = %d13.10 ABNF, dizgesel sabitlerin tırnaklar içine alınarak doğrudan belirtilebilmesine imkan tanır. Örnek: komut = "komut dizgesi" Dizgesel sabitler basılabilen karakterlerin bir birleşimi olarak yorumlanır. Bilgi ABNF dizgesel sabitleri harf büyüklüğüne duyarlı değildir ve bu dizgelerin karakter kümesi us ascii dir. Örneğin, kuralismi = "abc" ve kuralismi = "abc" "abc", "Abc", "abc", "abc", "ABc", "abc", "AbC" ve "ABC" ile eşleşir. http://belgeler.org Linux Kitaplığı 5 / 14

Harf büyüklüklerine duyarlı bir kuralın her karakteri tek tek belirtilir. Örneğin, kuralismi = %d97 %d98 %d99 veya kuralismi = %d97.98.99 sadece küçük harfli dizgeyle ("abc") eşleşecektir. 2.4. Harici Kodlamalar Uç değer karakterlerinin harici gösterimleri saklama ya da aktarım ortamının kısıtlamalarına tabidir. Bu nedenle, aynı ABNF tabanlı dilbilgisinin çok sayıda harici kodlaması olabilir, örneğin, biri 16 bitlik Unicode kullanılırken biri 7 bitlik US ASCII ortamı için, diğeri ikil sekizli ortam için olabilir. ABNF nin Çekirdek ABNF si (sayfa: 12) bölümündeki tanımlar Genel Ağ ın çoğunluğu için ortak olarak 7 bitlik US ASCII ortamı için sağlanmışsa da kodlama ile ilgili ayrıntılar ABNF kapsamının dışındadır. Harici kodlamayı sözdiziminden ayırmak suretiyle diğer kodlama ortamları aynı sözdizimi için kullanılabilecek şekilde tasarlanmıştır. 3. İşleçler 3.1. Ulama kural1 kural2 Bir kural, bir dizi kural ismini yan yana getirerek aslında basit değerlerin bir dizgesini tanımlayabilir. Örneğin, foo = %x61 ; a bar = %x62 ; b mumble = foo bar foo <mumble> kuralı küçük harfli dizge "aba" ile eşleşir. Düzgün Doğrusal Boşluk Ulama, ABNF çözümleme modelinin çekirdeğini oluşturur. Birbiri ardına gelen karakterlerden oluşan bir dizge ABNF ile tanımlanmış kurallara göre çözümlenir. Genel Ağ belirtimleri için, düzgün doğrusal boşlukların (boşluk ve sekme karakterleri) doğrudan ya da dolaylı olarak ana oluşumların etrafına serpiştirilmesine izin vermekle ilgili bir geçmiş vardır (örneğin, özel karakterlerleri veya atomik dizgeleri sınırlamak gibi amaçlar). Bilgi Bu ABNF belirtimi, düzgün doğrusal boşlukların dolaylı belirtimini içermez. Ayraçlar veya dizge parçaları çevresinde düzgün doğrusal boşluklara izin verilmesini isteyen bir dilbilgisinin açıkça belirtirmesi gerekir. Yüksek seviyeden kurallar arasında kullanmak üzere böyle boşluklarla ilgili "çekirdek" kurallar tanımlamak çoğunlukla kullanışlı olmaktadır. "Çekirdek" kurallar, bir sözel çözümleyici için veya ana kural kümesinin basit bir parçası olarak şekillenebilir. 3.2. İkameler kural1/ kural2 http://belgeler.org Linux Kitaplığı 6 / 14

Birbirleri yerine kullanılabilecek elemanlar bölü çizgisi ("/") ile ayrılır. Yani, foo / bar <foo> veya <bar> dan biri kabul edilecektir anlamına gelir. Bilgi Alfabetik karakterler içeren bir tırnaklı dizge ikame karakterleri belirtmenin özel bir halidir ve içerdiği karakterlerle, küçük ve büyük harflerin bir karışımı olarak belirtildiği sırada, birleştirici dizgelerin bir kümesinin kuralsız gösterimi olarak yorumlanır. 3.3. İkame Eklemeleri kural1=/ kural2 Bazan bir ikame listesini dilimler halinde belirtmek uygun olur. Yani, birden fazla ikamesi olan bir kuralın ikameleri ek kural tanımları ile belirtilebilir. Aynı ana kural kümesinden türemiş bağımsız belirtimler (parametre listeleri şeklinde oluşan) olmadıkça bu kısmen kullanışlıdır. Bu eklemeli tanımlara ABNF de şöyle izin verilir: eskikural =/ ek ikameler Şöyle bir kural kümesi, kuralkümesi = alt1 / alt2 kuralkümesi kuralkümesi =/ alt3 =/ alt4 / alt5 şu belirtimle aynıdır: kuralkümesi = alt1 / alt2 / alt3 / alt4 / alt5 3.4. İkame Değer Aralıkları %c## ## İkame sayısal değerler, değer aralığı için bir tire imi (" ") kullanılarak tek parça halinde belirtilebilir. Örneğin, RAKAM = %x30 39 şuna eşdeğerdir: RAKAM = "0" / "1" / "2" / "3" / "4" / "5" / "6" / "7" / "8" / "9" Ulanan sayısal değerlerle sayısal değer aralıkları aynı dizgede belirtilemez. Ulama için bir sayısal değer noktalı gösterimle belirtilebilirken bir değer aralığını belirtmek için tire kullanılır. Bu nedenle, satır sonu dizilimleri arasında basılabilir bir karakterin belirtilmesi için belirtim şöyle olabilirdi: krk satırı = %x0d.0a %x20 7E %x0d.0a 3.5. Dizilim Grubu (kural1 kural2) Parantez içine alınmış elemanlar içerildikleri sıra değişmemek üzere tek bir eleman olarak ele alınırlar. elem (foo / bar) blat şeklinde bir tanım, (elem foo blat) veya (elem bar blat) ile eşleşecektir. http://belgeler.org Linux Kitaplığı 7 / 14

elem foo / bar blat ise (elem foo) veya (bar blat) ile eşleşir. Bilgi İkamelerin çok sayıda kural ismi veya sabitinden oluştuğu durumlarda, düzgün okuma için "çıplak" ikamelerden daha iyi olacaksa gruplama kullanımı daima tavsiye edilir. Bu nedenle üstteki biçim yerine şu biçim önerilir: (elem foo) / (bar blat) Böylece arasıra düzgün okuyanların tanımı yanlış yorumlaması önlenmiş olur. Dizilim grubu gösterimi ayrıca serbest yazı içinde de kullanılır. 3.6. Değişken Yineleme *kural "*" işleci bir elemanın önüne konulduğunda yineleme belirtir. Örneğin, <a>*<b>eleman gösteriminde <a> ve <b> isteğe bağlı ondalık değerler olmak üzere içinde en az <a> veya en çok <b> sayıda eleman içerebilen oluşumlar tanımlanmaktadır. Öntanımlı değerler sıfır ve sonsuz olmak üzere, *<eleman> sıfır dahil her sayıya izin verirken, 1*<eleman> en az 1, 3*3<eleman> tam olarak 3 ve 1*2<eleman> ise bir ya da ikisine izin verir. 3.7. Belirgin Yineleme nkural kuralı <n>eleman <n>*<n>eleman kuralına eşdeğerdir. Yani, tam olarak <n> <eleman> oluşumu belirtir. Bu bakımdan, 2RAKAM 2 rakamlı bir sayı belirtirken 3HARF 3 harften oluşan bir dizgeyi belirtecektir. 3.8. Seçimlik Dizilim [kural] Köşeli ayraç içine alma, isteğe bağlı dizilim belirtir: [foo bar] ile *1(foo bar). eşdeğerdir. 3.9. ; Açıklama Bir noktalı virgül, satır sonuna kadar devam eden bir açıklamayı başlatır. Bu, belirtimle birlikte açıklamaları da içermenin basit bir yoludur. 3.10. İşleç Önceliği http://belgeler.org Linux Kitaplığı 8 / 14

Buraya kadar açıklanan mekanizmalar en yüksekten en düşüğe (en sıkıdan en gevşeğe) aşağıdaki öncelik sıralamasına uyarlar: Dizgeler, İsimler Açıklamalar Değer aralıkları Yineleme Gruplama, İsteğe bağlılık Ulama İkame İkame işlecinin kullanımı, ulamalarla karıştırıldığında karışıklığa yol açabilir. Yine, açık ulama grupları yapmak için gruplama işlecinin kullanılması önerilir. 4. ABNF nin ABNF Tanımı Bilgi 1. Bu sözdizimi görece değişmez olan bir kural biçimlemesi gerektirir. Dolayısıyla, bir belirtime dahil edilmiş bir kural kümesi sürümünün, bir ABNF çözümleyici tarafından yorumlanabileceğinden emin olmak için önişlemden geçirilmesi gerekebilir. 2. Bu sözdizimi ABNF nin Çekirdek ABNF si (sayfa: 12) bölümündeki kuralları kullanır. kurallistesi = 1*( kural / (*d boşluk s st) ) kural = kuralismi tanımı gibi elemanlar s st ; sonraki satır boşluklarla başlıyorsa ; Sonraki SaTırda devam eder kuralismi = HARF *(HARF / RAKAM / " ") tanımı gibi = *d boşluk ("=" / "=/") *d boşluk ; temel kural tanımı ve ; ikame eklemeleri elemanlar = ikame *d boşluk d boşluk = BOŞLUK / (s st BOŞLUK) s st = açıklama / CRLF ; açıklama veya satırsonu açıklama = ";" *(BOŞLUK / GÖRKRK) CRLF ikame = ulama *(*d boşluk "/" *d boşluk ulama) ulama = yineleme *(1*d boşluk yineleme) http://belgeler.org Linux Kitaplığı 9 / 14

yineleme = [tekrarsayısı] eleman tekrarsayısı = 1*RAKAM / (*RAKAM "*" *RAKAM) eleman = kuralismi / grup / seçenek / krk dğr / say dğr / düz dğr grup = "(" *d boşluk ikame *d boşluk ")" seçenek = "[" *d boşluk ikame *d boşluk "]" krk dğr = ÇTIRNAK *(%x20 21 / %x23 7E) ÇTIRNAK ; ÇTIRNAK içermeksizin ÇTIRNAK içine alınmış BOŞKRK ve GÖRKRK dizgeleri say dğr = "%" (ikil dğr / on dğr / onaltı dğr) ikil dğr = "b" 1*BIT [ 1*("." 1*BIT) / (" " 1*BIT) ] ; peşpeşe bit değerleri ; veya tek başına birler aralığı on dğr = "d" 1*RAKAM [ 1*("." 1*RAKAM) / (" " 1*RAKAM) ] onaltı dğr = "x" 1*RAKAM16 [ 1*("." 1*RAKAM16) / (" " 1*RAKAM16) ] düz dğr = "<" *(%x20 3D / %x3f 7E) ">" ; açılı ayraçları içermeksizin açılı ; ayraçlar içine alınmış BOŞKRK ve ; GÖRKRK dizgeleri ; son çare olarak düzyazı açıklama 5. Güvenlikle İlgili Hususlar Güvenliğin bu belgeyle gerçekten de bir ilgisi yoktur. 6. Kaynakça 6.1. Uyulması Zorunlu Olanlar [US ASCII] Kodlu Karakter Kümesi Bilgi Değişimi için 7 Bitlik Amerikan Standart Kodu Coded Character Set 7 Bit American Standard Code for Information Interchange ANSI X3.4 1986 1986 6.2. Bilgilendirici Olanlar http://belgeler.org Linux Kitaplığı 10 / 14

[RFC2234] Sözdizimi Belirtimleri için Arttırımlı BNF: ABNF Augmented BNF for Syntax Specifications: ABNF Crocker, D. ve P. Overell RFC 2234 Kasım 1997 [RFC733] ARPA Ağı Metin İletisi için Standart Standard for the Format of ARPA Network Text Message Crocker, D., Vittal, J., Pogran, K. ve D. Henderson RFC 733 Kasım 1977 [RFC822] ARPA Genel Ağ Metin İletilerinin Biçimi için Standart Standard for the Format of ARPA Internet Text Messages Crocker, D. STD 11, RFC 822 Ağustos 1982 http://belgeler.org Linux Kitaplığı 11 / 14

A. Teşekkür ABNF sözdizimi ilk olarak RFC 733 te belirtilmişti. BNF gösteriminin daha küçük ve daha anlaşılır olan arttırımlı BNF ye dönüştürülmesinden SRI International dan Ken L. Harrenstien sorumludur. Bu son proje, yazdıkları eposta belirtimi olmadığı halde belirtim yazarları tarafından tekrar tekrar atıf yapılan RFC 822 nin işe yarar parçalarını toplamak şeklinde basit bir çaba olarak, arttırımlı BNF nin açıklanması adıyla başladı. Çalışma grubu, basitçe körlemesine mevcut metni ayrı bir belgeye aktarmak yerine mevcut belirtimlerdeki ve son 15 yılın belirtimlerindeki yararlılıkları kadar yetersizliklerini de dikkatle inceleme yolunu seçti ve belirtimi genişletmeye çalıştı. Bu, projeyi ilk düşünülenden daha gözü yükseklerde bir şeye dönüştürdü. İlginç olan, liste gösteriminin kaldırılması gibi sürpriz kararlardan dolayı sonucun özgün çalışmadan devasa bir fark içermemesidir. Belirtimin şu an ki aşamasında önemli destekleriyle Robert Elz, Roger Fajman, Aviva Garrett, Tom Harsch, Dan Kohn, Bill McQuillan, Keith Moore, Chris Newman, Pete Resnick, Henning Schulzrinne ile DRUMS çalışma grubunun bir kısmı rol aldı. Standart Adayı sürümü XML kaynak biçimine dönüştürdüğü için Julian Reschke özel bir teşekkürü hakediyor. B. ABNF nin Çekirdek ABNF si Bu bölüm ABNF nin kendine özgü dilbilgisinin çekirdeğini oluşturan kural tanımlarını içerir. Bu tanımlar çekirdek kural kümesi olarak kullanılabilir. (Buradaki kurallar RFC çevirilerinde kullanılmak üzere Türkçe ye uyarlanmıştır; İngilizce RFC lerle ilgili kural tanımları için bu belgenin İngilizce aslına bakınız.) Çekirdek Kurallar Belli başlı temel kurallar büyük harflidirler; BOŞ, YSEK, SSSB, RAKAM, HARF gibi. HARF = %x41 5A / %x61 7A ; A Z / a z BIT = "0" / "1" KRK = %x01 7F ; Hiçlik (\0) karakteri hariç ; 7 bitlik bir US ASCII karakteri CR = %x0d ; satırbaşı karakteri CRLF = CR LF ; Genel Ağ standardı olarak satırsonu DNT = %x00 1F / %x7f ; Denetim karakterleri RAKAM = %x30 39 ; 0 9 ÇTIRNAK = %x22 ; " (Çift tırnak) RAKAM16 = RAKAM / "A" / "B" / "C" / "D" / "E" / "F" http://belgeler.org Linux Kitaplığı 12 / 14

YSEK = %x09 ; yatay sekme karakteri LF = %x0a ; satırsonu karakteri SÜRBOŞ = *(BOŞLUK / CRLF BOŞLUK) ; sürekli (satırsonunu aşan) boşluk SEKİZLİ = %x00 FF ; 8 bitlik veri BOŞKRK = %x20 ; boşluk karakteri GÖRKRK = %x21 7E ; görünür (basılabilir) karakterler BOŞLUK = BOŞKRK / YSEK ; boşluklar Ortak Kodlama Harici olarak, veri, yüksek sekizinci biti sıfırlanmış sekiz bitlik alanda yedi bitlik US ASCII olarak tanımlanan ve "ağa göre ASCII" denilen biçimde sunulur. Değer dizgesi, ağa önce gönderilen yüksek değerli baytların solda olduğu "ağ bayt sıralaması"na göre dizilir. C. Yazar Adresleri Dave Crocker (editor) Brandenburg InternetWorking 675 Spruce Dr. Sunnyvale, CA 94086 US Telefon: +1.408.246.8253 Eposta: <dcrocker (at) bbiw.net> Paul Overell THUS plc. 1/2 Berkeley Square 99 Berkeley Street Glasgow G3 7HR UK Eposta: <paul.overell (at) thus.net> http://belgeler.org Linux Kitaplığı 13 / 14

D. Tam Telif Hakkı Beyanı Copyright The Internet Society (2005). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights. This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Fikri Mülkiyet The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79. Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on line IPR repository at http://www.ietf.org/ipr. The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf ipr@ietf.org. Bilgi için RFC Editor (B12) işlevinin mali desteği şu an Genel Ağ Derneği (The Internet Society) tarafından sağlanmaktadır. Notlar Belge içinde dipnotlar ve dış bağlantılar varsa, bunlarla ilgili bilgiler bulundukları sayfanın sonunda dipnot olarak verilmeyip, hepsi toplu olarak burada listelenmiş olacaktır. (B1) (B3) (B12) ftp://ftp.rfc- editor.org/in- notes/bcp/bcp78.txt http://www.ietf.org/ http://www.rfc- editor.org/ Bu dosya (rfc4234.pdf), belgenin XML biçiminin TEXLive ve belgeler-xsl paketlerindeki araçlar kullanılarak PDF biçimine dönüştürülmesiyle elde edilmiştir. 17 Ocak 2007 http://belgeler.org Linux Kitaplığı 14 / 14