Programozási nyelvek specifikációja

A programozási nyelv specifikációja (szabványa, definíciója) egy olyan dokumentáció tárgya, amely úgy határoz meg egy programozási nyelvet , hogy egy nyelv használói és fejlesztői megegyezzenek abban, hogy mit jelentenek egy adott nyelven a programok. A specifikációk általában bőbeszédűek és formálisak, és többnyire nyelvi tervezők használják őket, míg a felhasználók félreérthetőség esetén hivatkoznak rájuk: például a C++ nyelvi specifikációt a felhasználók gyakran idézik bonyolultsága miatt. A kapcsolódó dokumentáció tartalmaz egy programnyelvi hivatkozást , amely kifejezetten a felhasználók számára készült, és egy programnyelvi indoklást, amely elmagyarázza, hogy a specifikáció miért van megírva úgy, ahogy van; az utóbbiak általában informálisabbak, mint a specifikációk.

Szabványosítás

Nem minden fő programozási nyelv rendelkezik specifikációkkal; A nyelvek évtizedekig létezhetnek és népszerűek specifikáció nélkül. Egy nyelvnek lehet egy vagy több olyan implementációja, amelyek viselkedése a de facto szabvány, de viselkedése nincs dokumentálva a specifikációban. A Perl (Perl 5) a specifikáció nélküli nyelv jól ismert példája, míg a PHP csak 2014-ben kapott specifikációt, 20 éves használat után [1] .

A nyelv implementálható, majd szabványosítható, vagy szabványosítható, majd implementálható, vagy a kettő együtt fejlődhet, ahogy az ma már általános gyakorlat. Ennek az az oka, hogy az implementáció és a specifikáció ellenőrzéseket biztosít egymásnak: a specifikáció megírásához meg kell határozni az implementáció viselkedését, az implementáció pedig azt ellenőrzi, hogy a specifikáció megvalósítható, ésszerű és konzisztens-e.

Az Algol 68 (1968) után gyakran elkerülték a specifikációk megírását az implementáció előtt , a késleltetett végrehajtás miatti váratlan megvalósítási nehézségek miatt. A nyelvek azonban még mindig alkalmanként használatosak, és formális specifikáció nélkül válnak népszerűvé: használatához a nyelv implementációja szükséges, míg a specifikáció kívánatos, de nem szükséges.

Űrlapok

A programozási nyelvek specifikációja többféle lehet, többek között:

Szintaxis

Egy programozási nyelv szintaxisát általában a következő két összetevő kombinációjával írják le:

Szemantika

Egy nagy, összetett, gyakorlatias programozási nyelv szigorú szemantikájának megfogalmazása még a tapasztalt emberek számára is kihívást jelent, és az így kapott specifikációt a szakértők kivételével bárki nehezen értheti meg. Az alábbiakban bemutatunk néhány módszert egy programozási nyelv szemantikájának leírására; minden nyelv legalább egyet használ ezen leírási módszerek közül, és néhány nyelv több mint egyet kombinál [4] :

Jegyzetek

  1. Joel Marcey. A PHP specifikációjának bejelentése . hhvm.com (2014. július 30.). Letöltve: 2018. szeptember 13. Az eredetiből archiválva : 2017. július 13.
  2. Milner, R.; M. Tofte; R. Harper; D. MacQueen. A szabványos ML definíciója (átdolgozott)  (újpr.) . - MIT Press , 1997. - ISBN 0-262-63181-4 .
  3. Kelsey, R.; Clinger, W.; Rees J. "7.2 Formális szemantika szakasz". Átdolgozott^5 Jelentés az algoritmikus nyelvi rendszerről (1998. február). Letöltve: 2018. szeptember 13. Az eredetiből archiválva : 2018. október 13.
  4. Jones, D. A nyelvi specifikáció formái (2008). Letöltve: 2018. szeptember 13. Az eredetiből archiválva : 2018. november 28..