Skip to main content

Vad är en abstrakt maskin?

Abstract Machines, även kallade Automata, är ett element i teoretisk datavetenskap.En abstrakt maskin liknar en funktion i matematik.Den tar emot ingångar och producerar utgångar enligt specifika regler.Abstrakta maskiner skiljer sig från mer bokstavliga maskiner eftersom de antas fungera perfekt och oberoende av hårdvara.De är indelade i typer på grundval av egenskaper, såsom hur de utför sin verksamhet och vilka typer av input de kan få.

När klassificering av abstrakta maskiner, en av de mest enkla distinktionerna gäller antalet operationer de är tillåtna att utföra pånågon given punkt.En abstrakt maskin kallas deterministisk om det alltid bara finns ett sätt att fortsätta.Det är nondeterministiskt om det finns flera möjligheter för maskinen i minst ett av dess möjliga tillstånd.En pushdown -automat är en som har kapacitet att manipulera sin bunt med ingångar, snarare än att bara svara på dem en efter en i den ordning de visas.

Wolfram Mathworld ger två kända exempel på abstrakta maskiner.Ett av dessa exempel är Conways Game of Life, som är en deterministisk abstrakt maskin eftersom endast en konfiguration kan dyka upp från någon annan.Detta spel använder ett rutnät där varje låda, eller cell, antingen kan ha tillståndet levande eller dött.Tillståndet för hela nätet bestäms på grundval av det tidigare tillståndet.Om en levande cell berör exakt två eller tre andra levande celler fortsätter den att leva.Om den har en, två eller mer än tre grannar (upp till en möjlig åtta) dör den.En död cell med exakt tre grannar kommer att leva upp;Annars kommer den att förbli död.

Ett annat exempel, Turing -maskinen, är en av de mest grundläggande och grundläggande abstrakta maskinerna inom datavetenskap.En Turing -maskin utför operationer på en band mdash; en sträng av symboler mdash; av obegränsad storlek.Den innehåller instruktioner både för att ändra symbolerna och för att ändra symbolen som den fungerar på.En enkel Turing -maskin kan bara ha instruktionens omvandlingssymbol till 1 och sedan flytta höger.Den här maskinen skulle inte mata ut en sträng av 1s.Denna enkla Turing -maskin är deterministisk, men det är också möjligt att konstruera nondeterministiska Turing -maskiner som kan utföra flera olika operationer med samma ingång.

Dessa abstrakta maskiner kan tjäna många syften.De kan vara roliga teoretiska leksaker, men de kan också fungera som modeller för riktiga datorsystem.Den abstrakta maskinen är kärnan i datavetenskap som en disciplin.