在代数逻辑中,作用代数是既是剩余半格又是克莱尼代数的代数结构。它向剩余半格增加了克莱尼代数的星号或自反传递闭包运算,或者说向克莱尼代数增加了剩余半格的左和右剩余或蕴涵运算。不像程序的动态逻辑和其他模态逻辑,对于它们程序和命题形成了两个不同的类别,作用代数合并了二者为一个单一类别。它可被认为是变异的直觉逻辑,带有星号并带有非交换性的合取,它的单位元不需要是顶元素。不像克莱尼代数,作用代数形成了一个簇,它进一步的是可有限公理化的,至关重要的公理是 a·(a→ a)* ≤ a。不像克莱尼代数的等式理论的模型(正则表达式等式),作用代数的星号运算是在所有等式的模型中自反传递闭包。