Ero sivun ”Abstrakti kone” versioiden välillä

[arvioimaton versio][arvioimaton versio]
Poistettu sisältö Lisätty sisältö
Ei muokkausyhteenvetoa
Ei muokkausyhteenvetoa
Rivi 6:
Monimutkaisemmista lähtökohdista käsin on mahdollista luoda abstrakteja koneita, joilla on täydellinen käskysarja,joukko rekistereitä sekä muisti. Eräs suosittu abstrakti kone, joka muistuttaa moderneja tietokoneita on [[RAM model]], joka tarjoaa suoran pääsyn indeksoituihin muistipaikkoihin. Myös sellaisia abstrakteja koneita, joilla on valmiuksia käyttää välimuisteja (cahche) sekä ulkoisia muisteja, käytetään enenevissä määrin.
 
Abstrakti kone voi myös viitata [[mikroprocessormikroprosessori]]iinin, jota ollaan suunnittelemassa tai jota muuten ei vielä ole laitteistona tarjolla. Abstraktia konetta, joka toteutetaan ohjelmistosimulaationa, tai jossa käytetään tulkkia, kutsutaan myös [[virtuaalikone]]eksi.
 
Abstraktin koneen käytön ansiosta on mahdollista laskea tarkkaan kunkin operaation vaatimat resurssit (aika, muisti jne) tarvitsematta konstruoida vastaavaa järjestelmää sitä tekemään.
Rivi 12:
==Erilaisia sekventiaalisia abstrakteja koneita==
Useat abstraktit koneet muistuttavat periaatteeltaan Turingin konetta, ja ovat sen erikoistapauksia tai muunnoksia. Ne voidaan luokitella käsiteltävän kielen ja Chomskyn hierarkkian mukaan.
<!--
An approach is to take a somewhat formal taxonomic approach to classify the [[Turing equivalent]] abstract machines. This taxonomy does not include [[finite automata]]:
 
'''Family: Turing-equivalent (TE) abstract machine''':
 
'''Subfamilies:'''
:Subfamily (1) Sequential TE abstract machine
 
:Subfamily (2) Parallel TE abstract machine <!-- BUT, see OPS! sec. on the Talk page -->
 
'''Subfamily (1)-- ''Sequential'' TE abstract machine model:''' There are two classes (genera) of Sequential TE abstract machine models currently in use (cf van Emde Boas, for example):
 
:Genus (1.1) Tape-based [[Turing machine]] model
 
:Genus (1.2) Register-based [[register machine]]
 
'''Genus (1.1) -- Tape-based Turing machine model:''' This includes the following "species":
: { single tape, [[Multi-tape Turing machine]], [[deterministic Turing machine]], [[Non-deterministic Turing machine]], [[Wang B-machine]], [[Post-Turing machine]], [[Oracle machine]], [[Universal Turing machine]] }
 
'''Genus (1.2)-- The register machine model''': This includes (at least) the following four "species" (others are mentioned by van Emde Boas):
: { (1.2.1) [[Counter machine]], (1.2.2) [[Random access machine]] RAM, (1.2.3) [[Random access stored program machine]] RASP, (1.2.4) [[Pointer machine]] }
:'''Species (1.2.1) -- Counter machine model''':
::{ abacus machine, Lambek machine, Melzak model, Minsky machine, Shepherdson-Sturgis machine, program machine, etc. }
:'''Species (1.2.2) -- Random access machine (RAM) model''':
::{ any counter-machine model with additional ''indirect addressing'', but with instructions in the state machine in the [[Harvard architecture]]; any model with an "accumulator" with additional indirect addressing but instructions in the state machine in the Harvard architecture }
:'''Species (1.2.3) -- Random access stored program machine''' (RASP) model includes
:: { any RAM with program stored in the registers similar to the [[Universal Turing machine]] i.e. in the [[von Neumann architecture]] }
:'''Species (1.2.4)-- Pointer machine''' model includes the following:
::= { Schönhage Storage Modification Machine SMM, Kolmogorov-Uspensky KU-machine, Knuth linking automaton }
-->
<!--Within each of the model-species there are varieties.
 
Within a species, ne possible classification can be by the number of parameters used. The way to figure this out formally is to actually build the models (e.g. in an Excel spreadsheet) and see how many operands (i.e. Excel cells) are required to specify an instruction. In the following the "jump-to" address as an additional operand. So for instance the Schönhage model has no operands excepting the jump-to address in an extra goto instruction:
 
*0- & 1- operand: Schonage model
*1- & 2- operand: Minsky (1967) model
*2- & 3- operand: Minsky (1961), Lambek (1961)
*3- & 4- operand: Malzek (1961)
 
There are models with "convenience instructions" (e.g. unconditional-J xxx, CLR h; CPY a,b ) including in particular:
* 2-operand: Shepherdson-Sturgis (1963), Minsky (1967) -->
 
<!--
==Other abstract machines==
*[[ABC programming language]]
*[[Abstract Machine Notation]]
*[[ALF programming language]]
*[[Categorical Abstract Machine Language]]
*[[Context-free grammar]]
*[[Finite automata]]
*[[Specification and Design Language]]
* Historycal/Simplicity Abstract Machines for [[Prolog]]:
**1.[[Vienna Abstract Machine]] ([[VAM Prolog]])
**2.[[Warren Abstract Machine]] ([[WAM Prolog]])
**3.[[Berkeley Abstract Machine]] ([[BAM Prolog]]).
*[[MMIX]]
*[[TenDRA Distribution Format]]
-->
 
==See also==
*[[Abstraction (computer science)]]
Rivi 78 ⟶ 21:
*[[State space]]
*[[Theory of computation#Other formal definitions of computation]]
-->
 
{{käännös}}