Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Abstract machine
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Theoretical computer used for defining a model of computation}} {{Distinguish|Virtual machine}} In [[computer science]], an '''abstract machine''' is a theoretical model that allows for a detailed and precise analysis of how a computer system functions.<ref>{{Cite web |last=Weisstein |first=Eric W. |title=Abstract Machine |url=https://mathworld.wolfram.com/ |access-date=2022-05-16 |website=mathworld.wolfram.com |language=en}}</ref> It is similar to a [[Function (mathematics)|mathematical function]] in that it receives inputs and produces outputs based on predefined rules. Abstract machines vary from literal machines in that they are expected to perform correctly and independently of [[Hardware description language|hardware]].<ref name=":2">{{Cite web |title=What is an Abstract Machine? |url=http://www.easytechjunkie.com/what-is-an-abstract-machine.htm |access-date=2022-05-16 |website=EasyTechJunkie |language=en-US}}</ref> Abstract machines are "[[machine]]s" because they allow step-by-step execution of [[Programming language|programs]]; they are "[[Abstraction (computer science)|abstract]]" because they ignore many aspects of actual ([[Hardware description language|hardware]]) machines.<ref name=":1">{{Cite journal |last1=Diehl |first1=Stephan |last2=Hartel |first2=Pieter |last3=Sestoft |first3=Peter |date=May 2000 |title=Abstract machines for programming language implementation |url=https://linkinghub.elsevier.com/retrieve/pii/S0167739X99000886 |journal=Future Generation Computer Systems |language=en |volume=16 |issue=7 |pages=739β751 |doi=10.1016/S0167-739X(99)00088-6}}</ref> A typical abstract machine consists of a definition in terms of input, output, and the set of allowable operations used to turn the former into the latter. They can be used for purely theoretical reasons as well as models for real-world computer systems.<ref name=":2" /> In the [[theory of computation]], abstract machines are often used in [[thought experiments]] regarding [[computability]] or to analyse the complexity of [[algorithm]]s.<ref name=":1" /> This use of abstract machines is fundamental to the field of [[computational complexity theory]], such as with [[Finite-state machine|finite state machines]], [[Mealy machine|Mealy machines]], [[Pushdown automaton|push-down automata]], and [[Turing machine|Turing machines]].<ref>{{Cite web |date=2021-04-29 |title=9.1.1: Finite-State Machine Overview |url=https://eng.libretexts.org/Under_Construction/Book%3A_Discrete_Structures/09%3A_Finite-State_Automata/9.01%3A_Introduction/9.1.01%3A_Finite-State_Machine_Overview |access-date=2022-05-31 |website=Engineering LibreTexts |language=en}}</ref>
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)