Dostupný výraz ( angl. Available expression ) v teorii konstruování kompilátorů - nějaký výraz v bodě , pokud nějaká cesta od vstupního uzlu k výpočtům a po posledním výpočtu před dosažením nedochází k následným přiřazením k proměnným a [1] .
Hlavním využitím informací o dostupných výrazech je hledání globálních společných podvýrazů [1] .
Můžete vyhodnotit sadu vygenerovaných výrazů pro každý bod bloku od začátku do konce bloku. V bodě před blokem nejsou žádné vygenerované výrazy. Pokud je v bodě k dispozici množina výrazů a a je bod za s instrukcí mezi nimi, vytvoříme množinu výrazů dostupných v následujícím způsobem: [1]
Popsané kroky musí být provedeny v určeném pořadí, protože může být stejné jako nebo . Po dosažení konce bloku bude množina vygenerovaných výrazů bloku. Množina zničených výrazů je množina všech výrazů, například takových, které jsou v bloku definovány nebo a blok se nevygeneruje [2] .