Share to: share facebook share twitter share wa share telegram print page

Проширена Бакус–Наурова форма

У рачунарству Проширена Бакус–Наурова форма (ЕБНФ) је нотација мета језика који се користи за изражавање контекстно слободних граматика: то је формални начин да се опишу програмски језици и формални језици. То је проширење основне Бакус–Наурове форме у метасинтаксичкој нотацији.

Оригинал је направљен по угледу на Никлауса Вирта. Најуобичајније коришћење ЕБНФ-а је обично дефинисано стандардима, од којих је најистакнутији ISO-14977.

Основе

Код, нпр. изворни код рачунарског програма се састоји од терминалних симбола - то су видљиви карактери, цифре, интерпукцијски знаци, белине итд.

ЕБНФ дефинише правила извођења где су слагања симбола, једног у односу на други, прописана нетерминалима:

цифра искључујући нулу ::= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
цифра                ::= "0" | цифра искључујући нулу;

Ово правило извођења дефинише да се нетерминал цифра налази на левој страни оператора доделе. Усправна црта | представља избор и терминални симболи су обухваћени знацима навода праћених тачком са запетом као завршним карактером. Дакле цифра је 0 или цифра искључујући нулу која може бити 1 или 2 или 3 и тако даље све до 9.

Правило извођења може такође да укључује и слагање терминала или нетерминала, међусобно раздвојених запетом:

дванаест ::= "1", "2" ;
двеста један ::= "2", "0", "1" ;
триста дванаест ::= "3", дванаест ;
дванаест хиљада двеста један ::= дванаест, двеста један ;

Изрази који могу бити изостављени или поновљени, могу се представити у витичастим заградама { ... }:

природан број = цифра искључујући нулу, {цифра } ;

У овом случају, ниске 1, 2, ..., 10, ..., 12345, ... су регуларни изрази. Да би представили ово, све што је обухваћено витичастим заградама, може бити често својевољно поновљено, не укључујући ништа уопштено.

Опција може бити представљена у угластим заградама [ ...]:

цео број = "0" | [ "-"], природан број ;

Стога, цео број је нула (0 ) или природан број испред кога може претходити опциони знак минус.

ЕБНФ такође пружа, између осталих ствари, синтаксу да би се описала понављања назначеног броја сати, да би искључили део извођења или да би се убацили коментари у граматику БНФа.

Проширења према ISO стандарду

Према ISO 14977 стандарду ЕБНФ је намењен да буде проширен и спомињу се две олакшице. Први је део о граматици ЕБНФ, посебног слагања, који је произвољни текст унутар знакова питања, чије је тумачење изван домета стандарда ЕБНФ-а. На пример, размак може бити дефинисан следећим правилом:

размак ::= ? US-ASCII карактер 32 ?;

Други део је коришћење чињенице да заграде не могу бити стављене поред идентификатора у БНФу.

Значи, проширење БНФ-а може да користи ову нотацију. На пример, у граматици Lisp-а, коришћење функције може бити дефинисано као следеће правило:

коришћење функције ::= листа(симбол, [ { израз }] );


Мотивација за проширење БНФ

БНФ је имао проблем да се опције и понављања нису могли директно изразити. Уместо тога, била им је потребна употреба међуправила или алтернатива извођења, дефинисан да или не буде ништа или да буде опционо извођење за опцију, или било које поновљено извођење. Слична конструкција још може бити коришћена у ЕБНФ-у.

Опција:

Означен број ::= [ означен,] број ;

може бити представљена у БНФ-стилу као:

означен број ::= означен, број | број ;

или

означен број ::= опционо означен, број;
опционо означен ::= ε |означен ; (* епсилон је коришћен да би јасније назначио празно извођење *)

Понављање:

број ::= { цифра } ;

може бити представљена у БНФ-стилу као:

број ::= цифра | број цифра;

Остала додавања и модификације

ЕБНФ елиминише неке мане БНФ-а:

  • БНФ користи симболе (<, >, |, ::=) за себе. Када се они појаве у језику који треба да се дефинише, БНФ не може бити коришћен без модификација и објашњења.
  • БНФ синтакса може једино представити правило у једном реду.

БНФ решава ове проблеме:

  • Терминали су срого обухваћени знацима навода ("..." или '...'). Угласте заграде ("<...>") за нетерминале могу бити изостављене.
  • Завршни карактер, обично тачка са запетом (;) обележава крај правила.

Даље на ту тему, постоје механизми за унапређивање који су предвиђени, дефинишући број понављања, искључујући алтернативе (нпр. сви карактери искључујући знаке навода), коментаре итд. Упркос свим унапређивањима, ЕБНФ није моћнији од БНФа у погледу језика, који може да дефинише. Што се тиче принципа било које граматике дефинисане у ЕБНФ-у, може такође бити представљена у БНФу. Ипак ово често води ка значајно већем представљању.

ЕБНФ је стандардизована од стране ISO-а под шифром ISO/IEC 14977:1996(E).

Под неким околностима било која ЕБНФ се односи као БНФ.


Други пример

Једноставан програмски језик који једино дозвољава додељивања може бити дефинисан у БНФу као следеће:

(* прост програм у ЕБНФ − Википедија*)

програм ::= 'PROGRAM', белина, идентификатор, белина ,
           'BEGIN', белина ,
           { додела, ";", белина} ,
           'END.' ;
идентификатор = слово, { слово| цифра } ;
број ::= [ "-"], цифра, { цифра} ;
ниска ::= '"', { сви карактери − '"' }, '"' ;
додела ::= идентификатор, ":=", (број | идентификатор | ниска ) ;
слово ::= "A" | "B" | "C" | "D" | "E" | "F" | "G"
                     | "H" | "I" | "J" | "K" | "L" | "M" | "N"
                     | "O" | "P" | "Q" | "R" | "S" | "T" | "U"
                     | "V" | "W" | "X" | "Y" | "Z" ;
цифра ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
белина ::= ? белина карактер ? ;
сви карактери ::= ? сви видљиви карактери ? ;

Онда би синтакстно коректни програм био:

PROGRAM DEMO1 
BEGIN
  A0:=3;
  B:=45;
  H:=-100023;
  C:=A;
  D123:=B34A;
  BABOON:=GIRAFFE;
  TEXT:=Cao svete!";
END.

Језик би могао лако бити проширен истицањем контроле, аритметичким изразима и улазно/излазним инструкцијама. Тада би мали, применљив програмски језик био развијен.

Следећи карактери су предложени у стандарду и користе се овако представљени:

Метод Нотација
дефинисаност =
конкатенација ,
завршетак ;
раздвајање |
опција [ ...]
понављање { ... }
груписање (... )
дупли наводници " ... "
једноструки наводници ' ... '
комантар (* ... *)
специјална секвенца ? ... ?
изузетак -


Конвенције

1. Следеће конвенције су употребљене:

  • Сваки мета-идентификатор ЕБНФ-а је написан као једна или више речи спојене цртицом.
  • Мета идентификатор који се завршава са “-симбол” је терминал ЕБНФ-а .

2. Нормални карактер представља сваки оператор ЕБНФ–а и његов имплицирани приоритет је (највиши приоритет на врху):

* понављање-симбол
- изузетак-симбол
, конкатенација-симбол
| дефиниција-раздвајање-симбол
= дефинисаност-симбол
; завршетак-симбол  

3. Нормални приоритет је представљен следећим паровима у загради

´  први-квота-симбол            први-квота- симбол  ´
"  други- квота-симбол         други- квота-симбол "
(* почетни-коментар-симбол     крајњи-коментар-симбол *)
(почетни-групни-симбол            крајњи-групни-симбол  )
[  почетни-опциони-симбол           крајњи-опциони-симбол ]
{  почетни-поновљени-симбол     крајњи-поновљени-симбол }
?  специјална-секвенца-симбол   специјална-секвенца-симбол ?

Као примери, следећа синтаксичка правила илуструју олакшице за изражавање понављања:

aa = "A";
бб = 3 * aa, "B";
цц = 3 * [aa], "C";
дд = {aa}, "D";
ee = aa, {aa}, "E";
фф = 3 * aa, 3 * [aa], "F";
гг= {3 * aa}, "D";

Терминал-ниске дефинисане су правилима као следеће:

aa: A
бб: AAAB
цц: C AC AAC AAAC
дд: D AD AAD AAAD AAAAD итд.
ee: AE AAE AAAE AAAAE AAAAAE итд.
фф: AAAF AAAAF AAAAAF AAAAAAF
гг: D AAAD AAAAAAD итд.

Види још

Корисни страни линкови

Спољашње везе

Read other articles:

Libyan activist Salwa BugaighisBorn(1963-04-24)24 April 1963Died25 June 2014(2014-06-25) (aged 51)Benghazi, LibyaCitizenshipLibyanOccupation(s)Lawyer, activist Salwa Bugaighis (24 April 1963 – 25 June 2014) was a Libyan human rights and political activist.[1] She was assassinated in Benghazi, Libya on 25 June 2014.[2][3] Life and career Bugaighis was from a prominent Benghazi family and trained as a lawyer at Garyounis University in Benghazi.[4] In the y...

Artikel ini tidak memiliki referensi atau sumber tepercaya sehingga isinya tidak bisa dipastikan. Tolong bantu perbaiki artikel ini dengan menambahkan referensi yang layak. Tulisan tanpa sumber dapat dipertanyakan dan dihapus sewaktu-waktu.Cari sumber: Masjid Miftahul Jannah – berita · surat kabar · buku · cendekiawan · JSTOR Masjid Jami' Miftahul JannahMasjid Jami' Miftahul JannahAgamaAfiliasi agamaIslamLokasiLokasiKabupaten Lamongan, Jawa TimurKoordi...

ميرانا     الإحداثيات 44°31′11″N 8°17′57″E / 44.519722222222°N 8.2991666666667°E / 44.519722222222; 8.2991666666667  [1] تقسيم إداري  البلد إيطاليا[2]  التقسيم الأعلى مقاطعة ألساندريا  خصائص جغرافية  المساحة 9.2 كيلومتر مربع (9 أكتوبر 2011)[3]  ارتفاع 253 متر  عدد السكان ...

CassiopeiaLayanan kereta Cassiopeia dihela oleh EF510-509, Agustus 2010Informasi umumJenis layananEkspres terbatasStatusTidak beroperasiDaerah operasiJepangMulai beroperasiJuli 1999Terakhir beroperasiMaret 2016Operator sebelumnyaJR EastLintas pelayananStasiun awalUenoStasiun akhirSapporoWaktu tempuh rerataSekitar 16½ jamFrekuensi perjalanantiga kali dalam semingguPelayanan penumpangPengaturan tempat dudukKereta dengan tempat dudukPengaturan tempat tidurKereta berkompartemenFasilitas res...

يفتقر محتوى هذه المقالة إلى الاستشهاد بمصادر. فضلاً، ساهم في تطوير هذه المقالة من خلال إضافة مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (يوليو 2019) هذه المقالة تحتاج للمزيد من الوصلات للمقالات الأخرى للمساعدة في ترابط مقالات الموسوعة. فضلًا ساعد في تحسي...

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Central Region, Venezuela – news · newspapers · books · scholar · JSTOR (January 2021) (Learn how and when to remove this template message) Central Region in Venezuela The Central Region (Región Central)[1] is one of the 10 administrative regions in wh...

إطلاق صاروخ دلتا 2 نظام الإطلاق المُستهلك هو نظام إطلاق يستخدم صاروخ إطلاق مُستهلك لحمل حمولة إلى الفضاء الخارجي. تستخدم الصواريخ في نظام الإطلاق المُستهلك لمرة واحدة فقط (حيث إنها تـُستهلك خلال عملية إطلاق واحدة). ومكونات الصاروخ المُستخدم لا تُـسترد بعد عملية الإطلاق لإ...

 Nota: Para a cidade, veja Missal. Missal Romano Missale Romanum Missal RomanoO Missal Romano sobre a mesa do altar Autor(es) Congregação para o Culto Divino e Disciplina dos Sacramentos Idioma Latim Assunto Orações próprias do sacerdote e dos fiéis nas missas Gênero Religioso Lançamento 1 de janeiro de 1997 (26 anos) Páginas 1088 Edição brasileira Tradução Comissão Episcopal de Liturgia da CNBB Editora Paulus O Missal Romano (em latim: Missale Romanum) é o livro ...

U.S. House district for California CA-13 redirects here. For the state route, see California State Route 13. 37°48′N 122°15′W / 37.8°N 122.25°W / 37.8; -122.25 California's 13th congressional districtInteractive map of district boundaries since 2023 (Used in the 2022 elections)Representative  John DuarteR–ModestoPopulation (2022)782,352Median householdincome$67,465[1]Ethnicity34.4% White21.2% Hispanic20.5% Asian17.7% Black4.9% Two or more races1....

Mafra Wappen Karte Mafra (Portugal) Basisdaten Region: Lisboa Unterregion: Metropolregion Lissabon Distrikt: Lissabon Concelho: Mafra Koordinaten: 38° 56′ N, 9° 20′ W38.940277777778-9.3313888888889Koordinaten: 38° 56′ N, 9° 20′ W Einwohner: 20.781 (Stand: 19. April 2021)[1] Fläche: 47,95 km² (Stand: 1. Januar 2010)[2] Bevölkerungsdichte: 433 Einwohner pro km² Politik Adresse der Gemeindeverwa...

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: The Light Shines On – news · newspapers · books · scholar · JSTOR (September 2014) (Learn how and when to remove this template message) 1977 greatest hits album by Electric Light OrchestraThe Light Shines OnGreatest hits album by Electric Light Orchestr...

Dolok TolongDesaKantor Kepala Desa Dolok TolongNegara IndonesiaProvinsiSumatera UtaraKabupatenDairiKecamatanSumbulKode pos22281Kode Kemendagri12.11.02.2015 Luas... km²Jumlah penduduk... jiwaKepadatan... jiwa/km² Dolok Tolong merupakan salah satu desa yang ada di kecamatan Sumbul, Kabupaten Dairi, provinsi Sumatera Utara, Indonesia. Pemerintahan Desa Dolok Tolong terdiri dari Dusun Aek Nauli, Dolok Tolong, Lumban Simbolon, dan dusun lainnya. Galeri Tanda selamat datang di Desa Dolok Tol...

Letak Distrik Likoma di Malawi Distrik Likoma merupakan sebuah distrik yang terletak di Region Utara, Malawi. Ibu kotanya ialah Likoma. Distrik ini memiliki luas wilayah 18 km².Dengan memiliki jumlah penduduk sebanyak 8.074 jiwa. 12°05′S 34°40′E / 12.083°S 34.667°E / -12.083; 34.667 lbs Region dan distrik di MalawiRegion Tengah Dedza · Dowa · Kasungu · Lilongwe · Mchinji · Nkhotakota · Ntcheu · Ntchisi · Sal...

Robert MurrayBornc. 1763Died30 June 1834 (aged 71)South Hill, near LiverpoolAllegianceUnited Kingdom ofGreat Britain and IrelandService/branch Royal NavyYears of service – 1834RankAdmiral of the WhiteCommands held HMS Vestal HMS Terrier HMS Blanche HMS Oiseau HMS Asia Battles/wars American War of Independence Battle of Ushant French Revolutionary Wars Napoleonic Wars Robert Murray (c.1763 – 30 June 1834[a]) was an officer in the Royal Navy who served dur...

College of the University of Oxford Magdalen College redirects here. For other uses, see Magdalen College (disambiguation). Magdalen CollegeOxfordThe Cloister and Founders’ TowerArms: Lozengy ermine and sable, on a chief of the second three lilies argent slipped and seeded orScarf colours: black, with two equally-spaced wide bands of white LocationLongwall Street and High StreetCoordinates51°45′09″N 1°14′49″W / 51.752374°N 1.247077°W / 51.752374; -1.24707...

Railway station in Inner Mongolia, China This article does not cite any sources. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Dongxing railway station – news · newspapers · books · scholar · JSTOR (March 2010) (Learn how and when to remove this template message) Dongxing railway station is a station of Jingbao Railway in Inner Mongolia. See also List of stations...

3rd episode of the 2nd season of Glee Grilled CheesusGlee episodeEpisode no.Season 2Episode 3Directed byAlfonso Gomez-RejonWritten byBrad FalchukFeatured musicOnly the Good Die YoungI Look to YouPapa, Can You Hear Me?I Want to Hold Your HandLosing My ReligionBridge over Troubled WaterOne of UsProduction code2ARC03Original air dateOctober 5, 2010 (2010-10-05)Guest appearances Iqbal Theba as Principal Figgins Romy Rosemont as Carole Hudson Dot-Marie Jones as Shannon Beiste H...

Drama set in Scotland in 1994 BeatsTheatrical release posterDirected byBrian WelshScreenplay byKieran HurleyBrian WelshBased onBeatsby Kieran HurleyProduced byCamilla BrayStarringLaura FraserLorn MacdonaldCristian OrtegaCinematographyBenjamin KračunEdited byRobin HillMusic byStephen HindmanPenelope TrappesProductioncompanyBritish Film InstituteDistributed byAltitude Film DistributionRelease dates 24 January 2019 (2019-01-24) (IFFR) 17 May 2019 (2019-05-17)&#...

This biography of a living person needs additional citations for verification. Please help by adding reliable sources. Contentious material about living persons that is unsourced or poorly sourced must be removed immediately from the article and its talk page, especially if potentially libelous.Find sources: David Rotheray – news · newspapers · books · scholar · JSTOR (September 2009) (Learn how and when to remove this template message) David RotherayB...

Arrow points to tract North and East of the First Principal Meridian is a survey and land description in the northwest part of the U.S. state of Ohio. Survey In 1812, Congress authorized the Surveyor General to survey the northern and western border of Ohio “as soon as the consent of the Indians can be obtained.“[1] In 1817, the northern portion of the Ohio-Indiana border was surveyed and became known as the First Principal Meridian for lands surveyed in the northwest part of Ohio...

Kembali kehalaman sebelumnya