首先重申 EPDA 是有一组其自身可以通过“嵌入栈”来访问的栈的有限状态机,每个栈包含“栈字母表” 
 的元素,并且我们通过 
 定义一个栈的元素,这里的星号是字母表的Kleene闭包。
每个栈都可以依据它的元素来定义,所以我们使用双剑符号来指示在自动机中的第 
 个栈: 
,这里的 
 将是在栈中的下一个可访问的符号。
 个栈的“嵌入栈”因此可以指示为 
。
我们定义 EPDA 为七元组
 这里的
 是“状态”的有限集合; 
 是“输入字母表”的有限集合; 
 是“栈字母表”的有限集合; 
 是“开始状态”; 
 只“最终状态”的集合; 
 是“初始栈符号” 
 是“转移函数”,这里的 
 是 
 的有限子集。
所以转移函数选取一个状态,输入字符串的下一个符号,和当前栈的顶符号;并生成下一个状态,在“嵌入栈”上要压入和弹出的那些栈,当前栈的压入和弹出,和要在下一个转移中被当作当前栈的栈。更加概念的说,“嵌入栈”是被压入和弹出的,当前栈被随意的压回到“嵌入栈”,而你希望的任何其他栈将被压入它的顶部,带有最后的栈是在下一个重复中所读取的。所以,这些栈被同时压入当前栈的上面和下面。
一个给定的格局被定义为

这里的 
 是当前状态,
 是在“嵌入栈”中的栈,带有 
 是当前栈,而对于输入字符串 
, 
 是已经被机器处理的那部分字符串,而 
 是要处理的那部分,带有它的头部是当前所读的符号。注意空串 
 被隐含的定义为终止符号,如果机器处于最终状态此时读到空串,则整个输入字符串被“接受”,如果不是则“拒绝”。这种“接受”了的字符串是如下语言的元素

这里的 
 而 
 定义转移函数按需要而多次应用来分析这个字符串。