Výraz (počítačová věda) - Expression (computer science)

Ve vědě o počítačích , An výraz je syntaktický subjekt v programovacím jazyce , které mohou být hodnoceny z hlediska jeho hodnoty. Jedná se o kombinaci jedné nebo více konstant , proměnných , funkcí a operátorů, které programovací jazyk interpretuje (podle svých konkrétních pravidel přednosti a asociace ) a vypočítá, aby vytvořil („vrátit“, ve stavovém prostředí) jinou hodnotu. . Tento proces se pro matematické výrazy nazývá hodnocení .

V jednoduchých nastaveních je výsledná hodnota obvykle jedním z různých primitivních typů , například číselných, řetězcových , booleovských , komplexních datových typů nebo jiných typů.

Výraz je často v kontrastu s tvrzením - syntaktickou entitou, která nemá žádnou hodnotu (instrukce).

Příklady

Například 2 + 3je aritmetický i programovací výraz, který se vyhodnotí jako 5. Proměnná je výraz, protože označuje hodnotu v paměti, stejně tak y + 6je výraz. Příkladem relačního výrazu je 4 ≠ 4, který se vyhodnotí jako false.

Neplatné jako typ výsledku

V jazyce C a většině jazyků odvozených od C je volání funkce s návratovým typem void platným výrazem typu void. Hodnoty typu void nelze použít, takže hodnota takového výrazu je vždy zahozena.

Vedlejší efekty a eliminace

V mnoha programovacích jazycích může mít funkce, a tedy výraz obsahující funkci, vedlejší účinky . Výraz s vedlejšími efekty obvykle nemá vlastnost referenční transparentnosti . V mnoha jazycích (např. C ++) mohou být výrazy zakončeny středníkem ( ;), aby se výraz stal výrazovým příkazem . To žádá implementaci, aby vyhodnotila výraz pouze z hlediska vedlejších účinků a aby ignorovala výsledek výrazu (např. „X+1;“), pokud není součástí výrazového výrazu, který vyvolává vedlejší účinky (např. „Y = x+1; "nebo" func1 (func2 ()); ").

Upozornění

Formální představa o vedlejším účinku je změnou abstraktního stavu běžícího programu.

Další třídou vedlejších účinků jsou změny konkrétního stavu výpočetního systému, například načítání dat do mezipaměti. Jazyky, které jsou často popisovány jako „bez vedlejších účinků“, budou mít obecně stále konkrétní vedlejší efekty, které lze využít například při útocích na vedlejší kanály .

Uplynulý čas vyhodnocování výrazu (dokonce i bez dalších zjevných vedlejších účinků) je navíc někdy nezbytný pro správnou funkci systému, protože chování v čase je snadno viditelné zvnějšku vyhodnocovacího prostředí jinými částmi systému, se kterými interaguje a může být dokonce považován za primární efekt, například při provádění benchmarkových testů .

Záleží na konkrétní specifikaci programovacího jazyka, zda lze výraz bez abstraktních vedlejších efektů legálně eliminovat z cesty spuštění prostředím zpracování, ve kterém je výraz vyhodnocen.

Viz také

Reference

externí odkazy