Állítás (programozás)

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észletekSzerkeszté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álatSzerkeszté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ásokSzerkesztés

JegyzetekSzerkesztés

FordításSzerkeszté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 jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.