1
$\begingroup$

Since machine language executes instructions on ALU, CPU register and memory, is correct say that machine code abstract the Von Neumann model?

If exists, semantically, what is the relation between machine code and Von Neumann architecture?

$\endgroup$
  • $\begingroup$ I'd say it's esaxtly the other way around - the von Neumann architecture is the abstract model of machine code. $\endgroup$ – ThreeFx Nov 2 '16 at 9:08
  • $\begingroup$ @ThreeFx So how you would (help me to) construct the following phrase: "We abstracted Von Neumann architecture to machine code, then to Assembly, then to high-level languages and beyond" $\endgroup$ – Alexandre Thebaldi Nov 2 '16 at 9:19
  • 3
    $\begingroup$ @ThreeFx That's not the case, either. You can perfectly well have a machine code for a machine that doesn't employ the von Neumann architecture (e.g., a machine with separate program and data memories). The von Neumann architecture can't be an abstraction of that. $\endgroup$ – David Richerby Nov 2 '16 at 9:22
2
$\begingroup$

Asking whether machine code abstracts the von Neumann model is a category error – it's a statement that doesn't type-check. The von Neumann model is essentially a system architecture: it's a way of designing computers. Machine code is a sequence of instructions: a way of telling a computer what to do. Those are two completely different things.

Machine code arguably doesn't abstract anything. It's the most concrete, specific thing there is: it runs on only one specific kind of CPU (or perhaps a family of very closely related ones).

$\endgroup$
  • $\begingroup$ Oh okay. My purpose (mentioned on above comment) with this question was to construct a phrase like: "We abstracted Von Neumann architecture to machine code, then to Assembly, then to high-level languages and beyond". So it's categorically wrong make this relation? $\endgroup$ – Alexandre Thebaldi Nov 2 '16 at 9:28
  • $\begingroup$ A machine code isn't an abstraction of the architecture: it's a set of instructions for the architecture. Beyond that, your statement looks fine. (By the way, "categorically wrong" means "absolutely, unarguably wrong"; I think you just mean that it's a category error, i.e., something that doesn't type-check.) $\endgroup$ – David Richerby Nov 2 '16 at 9:30
  • $\begingroup$ @AlexandreThebaldi Not all things in the world can be ordered linearly. You wouldn't say "Mammals are an abstraction of apples", for instance. $\endgroup$ – Raphael Nov 2 '16 at 9:36
  • $\begingroup$ @Raphael Actually I'm not ordering all things in the world, just trying to create a timeline with origins of imperative languages, FYI. $\endgroup$ – Alexandre Thebaldi Nov 2 '16 at 9:40
  • $\begingroup$ @AlexandreThebaldi What do you need abstraction relations for a timeline, then? $\endgroup$ – Raphael Nov 2 '16 at 10:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.