Otomata olarak da adlandırılan soyut makineler, teorik bilgisayar biliminin bir öğesidir. Soyut bir makine matematikteki bir işlevi andırıyor. Girdileri alır ve belirtilen kurallara göre çıktılar üretir. Soyut makineler, daha hazır bilgi makinelerinden farklıdır, çünkü donanımdan kusursuz ve bağımsız olarak çalıştıkları varsayılmaktadır. Operasyonlarını nasıl yaptıkları ve ne tür girdiler alabilecekleri gibi özellikler temelinde türlere ayrılırlar.
Soyut makineleri sınıflandırırken, en basit ayrımlardan biri, herhangi bir noktada gerçekleştirmelerine izin verilen işlemlerin sayısıyla ilgilidir. Devam etmesi için her zaman tek bir yol varsa soyut makineye deterministik denir. Makine için olası durumlarından en az birinde birden fazla olasılık mevcutsa, özellik yoktur. Bir "aşağı itme" otomatı, girdi sıralamasını tek tek yanıtlamaktan ziyade girdi sıralarını değiştirme kapasitesine sahip bir otomasyondur.
Wolfram MathWorld , iki ünlü soyut makine örneği sunar. Bu örneklerden biri, Conway'in belirleyici bir soyut makine olan yaşam oyunudur, çünkü yalnızca bir konfigürasyon diğerlerinden ortaya çıkabilir. Bu oyunda, her kutunun veya hücrenin ya "yaşayan" ya da "ölü" durumlarını alabileceği bir ızgara kullanılır. Tüm şebekenin durumu önceki durum temelinde belirlenir. Bir canlı hücre diğer iki canlı hücreye tam olarak dokunduğunda, yaşamaya devam eder. Bir, iki veya üçten fazla komşusu varsa (en fazla sekiz), ölür. Tam olarak üç komşusu olan ölü bir hücre canlanacak; Aksi halde ölü kalacaktır.
Bir başka örnek, Turing makinesi, bilgisayar bilimindeki en temel ve temel soyut makinelerden biridir. Turing makinesi, sınırsız büyüklükte bir bant üzerinde (bir dizi sembol) işlemleri gerçekleştirir. Hem sembolleri değiştirmek hem de üzerinde çalıştığı sembolü değiştirmek için talimatlar içerir. Basit bir Turing makinesi yalnızca "sembolü 1'e dönüştürüp sonra sağa hareket et" komutuna sahip olabilir. Bu makine 1'den oluşan bir diziden başka bir şey çıkarmaz. Bu basit Turing makinesi deterministiktir, ancak aynı girdiyi verilen birkaç farklı işlemi gerçekleştirebilecek, mekanik olmayan Turing makinelerini yapmak da mümkündür.
Bu soyut makineler birçok amaca hizmet edebilir. Eğlenceli teorik oyuncaklar olabilirler, fakat aynı zamanda gerçek bilgisayar sistemleri için model teşkil edebilirler. Soyut makine, disiplin olarak bilgisayar biliminin merkezinde yer almaktadır.


