Inom automatteori studerar man matematiska modeller för utförande av beräkningar, allmänt kallade automater.

Gemensamt för modellerna är att alla accepterar en mängd indata, genomför beräkningen och redovisar resultatet genom att leverera en mängd utdata. Automaten startar i ett väldefinierat starttillstånd och genomgår en serie av tillståndsförändringar, kallade exekvering, enligt ett förutbestämt program. Om automaten under exekveringen når ett bestämt stopptillstånd så stannar automaten och utdata blir tillgänglig för en utomstående observatör.

Inom automatteorin studeras flera olika modeller för automater med olika egenskaper och olika beräkningsförmåga, de vanligaste modellerna är dock finita automater, stackautomater eller pushdown automater, samt Turingmaskiner.

Beräkningsmodellerna inom automatteori ligger som grund för imperativa programspråk.