Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Abstract machine
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
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!
== Implementation == Any implementation of an abstract machine in the case of physical implementation (in [[Hardware description language|hardware]]) uses some kind of physical device (mechanical or electronic) to execute the instructions of a [[programming language]]. An abstract machine, however, can also be implemented in [[software]] or [[firmware]] at levels between the abstract machine and underlying physical device.<ref name=":3">{{Citation |last1=Gabbrielli |first1=Maurizio |title=Abstract Machines |date=2010 |url=http://link.springer.com/10.1007/978-1-84882-914-5_1 |work=Programming Languages: Principles and Paradigms |pages=1β25 |place=London |publisher=Springer London |doi=10.1007/978-1-84882-914-5_1 |isbn=978-1-84882-913-8 |access-date=2022-05-16 |last2=Martini |first2=Simone}}</ref> * [[Hardware description language|Implementation in hardware]]: The direct implementation of abstract machine in hardware is a matter of using physical devices such as [[Memory cell (computing)|memory]], [[Arithmetic logic unit|arithmetic]] and [[Logic gate|logic circuits]], buses, etc., to implement a physical machine whose machine language coincides with the [[programming language]]. Once constructed, it would be virtually hard to change such a machine.<ref name=":3" /> A [[Central processing unit|CPU]] may be thought of as a concrete hardware realisation of an abstract machine, particularly the [[Processor (computing)|processor's design]].<ref>{{Cite report |last1=Bair |first1=Ray |last2=Chien |first2=Andrew |last3=Cook |first3=Jeanine |last4=Donofrio |first4=Dave |last5=Grider |first5=Gary |last6=Kuehn |first6=Jeff |last7=Moore |first7=Shirley |last8=Shalf |first8=John |last9=Vetter |first9=Jeff |date=2018-02-01 |title=Hardware Evaluation: Abstract Machine Models and Proxy Architectures for Exascale Computing |doi=10.2172/1733300 |osti=1733300 |url=http://dx.doi.org/10.2172/1733300|type=Technical report|publisher=U.S. Department of Energy Office of Scientific and Technical Information}}</ref> * [[Software|Simulation using software]]: Implementing an abstract machine with software entails writing programmes in a different [[Programming language|language]] to implement the [[Data structure|data structures]] and [[Algorithm|algorithms]] needed by the abstract machine. This provides the most flexibility since programmes implementing abstract machine constructs can be easily changed.<ref name=":3" /> An abstract machine implemented as a software simulation, or for which an [[Interpreter (computing)|interpreter]] exists, is called a [[virtual machine]].<ref name=":0">{{Cite web |title=abstract machine from FOLDOC |url=http://foldoc.org/Abstract+machine |access-date=2021-08-07 |website=foldoc.org}}</ref> * [[Firmware|Emulation using firmware]]: Firmware implementation sits between hardware and software implementation. It consists of [[microcode]] simulations of [[Data structure|data structures]] and [[Algorithm|algorithms]] for abstract machines.<ref name=":3" /> [[Microcode]] allows a computer programmer to write machine [[Machine code|instructions]] without needing to fabricate [[Electronic circuit|electrical circuitry]].<ref>{{Cite book |last1=Gee |first1=J. |last2=Melvin |first2=S. W. |last3=Patt |first3=Y. N. |title=Proceedings of the 19th annual workshop on Microprogramming |chapter=The implementation of Prolog via VAX 8600 microcode |date=1986 |chapter-url=http://dx.doi.org/10.1145/19551.19538 |pages=68β74 |location=New York, New York, USA |publisher=ACM Press |doi=10.1145/19551.19538|isbn=081860736X |s2cid=3846072 }}</ref>
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Abstract machine
(section)
Add topic