Állítás (programozás)
Ez a szócikk nem tünteti fel a független forrásokat, amelyeket felhasználtak a készítése során. Emiatt nem tudjuk közvetlenül ellenőrizni, hogy a szócikkben szereplő állítások helytállóak-e. Segíts megbízható forrásokat találni az állításokhoz! Lásd még: A Wikipédia nem az első közlés helye. |
A számítógépes programozás során, különösen a imperatív programozási paradigma alkalmazásánál, az állítás (assertion) egy predikátum (egy logikai értékű függvény az állapottér felett, amelyet általában egy program változóinak felhasználásával logikai javaslatként fejeznek ki), és a program egy pontjához kapcsolódik, amely mindig a kód végrehajtásakor igaznak kell értékelnie. Az állítások segíthetnek a programozóknak a kód elolvasásában, a fordító összeállításában vagy a program saját hibáinak felismerésében.
Az utóbbi vonatkozásában néhány program ellenőrzi az állításokat azáltal, hogy ténylegesen kiértékeli a predikátumot futás közben. Ezután, ha ez valójában nem igaz - egy állításhiba -, akkor a program töröttnek tekinti magát, és általában szándékosan összeomlik, vagy egy állításhiba-kivételt dob.
Részletek
[szerkesztés]A következő kód két állítást tartalmaz, x > 0 és x > 1, és valóban igazak a végrehajtás során feltüntetett pontokban:
x=1;
assert x > 0;
x++;
assert x > 1;
A programozók állításokat használhatnak a programok meghatározására és a program helyességének megfontolására. Például egy előfeltétel - egy kódszakasz elejére helyezett állítás - meghatározza az állapotkészletet, amelyben a programozó elvárja a kód végrehajtását. A végén elhelyezett utófeltétel leírja a végrehajtás végén várható állapotot. Például: x > 0 { x ++ } x > 1. A fenti példa tartalmazza a jelölést állítások beillesztésére, amelyeket C.A.R. Hoare használt az 1969. évi cikkben.[1] Ez a jelölés nem használható a meglévő mainstream programozási nyelvekben. A programozók azonban ellenőrizetlen állításokat is beilleszthetnek a programozási nyelvük megjegyzés funkciójával. Például a C-ben:
x = 5;
x = x + 1;
// {x > 1}
A megjegyzésben szereplő kapcsos zárójelek segítenek megkülönböztetni a megjegyzés ilyen felhasználását a többi felhasználástól. A könyvtárak állítólagos szolgáltatásokat is nyújthatnak. Például C-ben a glibc használatával C99 támogatással:
#include <assert.h>
int f(void)
{
int x = 5;
x = x + 1;
assert(x > 1);
}
Számos modern programozási nyelv tartalmaz ellenőrzött állításokat - utasításokat, amelyeket futási időnként vagy néha statikusan ellenőriznek. Ha egy állítás futás közben hamisnak bizonyul, akkor egy állítás kudarcot eredményez, amely rendszerint megszakítja a végrehajtást. Ez felhívja a figyelmet arra a helyre, ahol a logikai inkonzisztencia észlelhető, és előnyösebb lehet, mint az egyébként eredményezhető viselkedés.
Az állítások használata segít a programozónak egy program megtervezésében, kidolgozásában és indokolásában.
Használat
[szerkesztés]Az olyan nyelvekben, mint az Eiffel, az állítások a tervezési folyamat részét képezik; más nyelvekben, mint például a C és a Java, csak a feltételezések ellenőrzéséhez használják őket futási időben. Mindkét esetben érvényességük ellenőrizhető futási időben, de általában el is hagyható.
A szerződéses formatervezéssel kapcsolatos állítások
[szerkesztés]Jegyzetek
[szerkesztés]- ↑ C. A. R. Hoare, An axiomatic basis for computer programming, Communications of the ACM, 1969.
Fordítás
[szerkesztés]Ez a szócikk részben vagy egészben az Assertion (software development) című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.