Jazyk specifikace je formální jazyk určený pro deklarativní popis struktury, vztahů, vlastností dat a metod jejich transformací (na rozdíl od aktivních jazyků) bez explicitního uvedení pořadí prováděných akcí a použití konkrétních datových hodnot.
Na rozdíl od programovacích jazyků používaných při implementaci počítačových programů se specifikační jazyky používají pro systémovou analýzu , analýzu požadavků , vývoj architektury vytvářených softwarových systémů a formální verifikaci softwaru.
K popisu struktury informačního systému, doménových modelů a dalších úloh souvisejících s vývojem softwaru a databází ( UML , ERD , DFD ) se používají různé specifikační jazyky, které mohou mít jak textové, tak binární formáty a také grafické znázornění. jazykových konstruktů. Používají se také k popisu uživatelských rozhraní ( XUL , XAML ), šablon sestav, transformací dokumentů a také formátů přenosu dat mezi aplikacemi v distribuovaných informačních systémech ( XML , JSON , CLEAR ). Další aplikací specifikačních jazyků je popis databázových struktur, konkrétně deklarativní část SQL se obvykle nazývá Data Definition Language ( DDL ). Při analýze a analýze (parsování) se používají specifikační jazyky, například forma Backus-Naur a ABNF ( rozšířená forma Backus-Naur ) jsou obecně přijímané formální jazyky pro specifikaci síťových protokolů a dokonce i syntaxi aktivní programovací jazyky; regulární výrazy jsou podobné výše uvedeným zápisům, avšak forma regulárních výrazů je desetkrát kompaktnější a algoritmy analýzy s jejich pomocí jsou dobře vyvinuté a regulární výrazy jsou podporovány ve velké většině moderních programovacích jazyků.
Metody specifikace lze klasifikovat podle několika kritérií [1] :
Použití paradigmatu přechodu stavu [1] :
Algebraické paradigma [1] :
Algebra procesů [1] :
Logika [1] :