In computing,
language primitives are the simplest elements available in a
programming language. A primitive can be defined as the smallest 'unit of processing' available to a programmer of a particular machine, or can be an
atomic element of an
expression in a language.
Machine level primitives
A
machine instruction, usually generated by an
Assembler program, is often considered the smallest unit of processing although this is not always the case. It typically performs what is perceived to be one single operation such as copying a
byte or
string of bytes from one
memory location to another or adding one
processor register to another.
Micro code primitives
Many of today's
computers, however, actually embody an even lower unit of processing known as
microcode which interprets the "machine code" and it is then that the microcode instructions would be the
genuine primitives. These instructions would typically be available for modification only by the
hardware vendors programmers.
High level language (HLL) primitives
A
HLL program is composed of discrete
statements that may also be
perceived to perform a single operation but at a more abstract level. Copying a data item from one location to another may actually involve many
machine instructions that, for instance,
before finally
- performing the final store operation to the target destination.
Some
HLL statements, particularly those involving
loops, can generate thousands or even millions of primitives in a
low level language - which comprise the genuine
instruction path length the processor has to execute at the lowest level. This perception has been referred to as the "Abstraction penalty"
[1][2][3]
Interpreted language primitives
An interpreted language statement has similarities to the
HLL primitives but with a further added 'layer'. Before the statement can be executed in a manner very similar to a
HLL statement, first, it has to be processed by an
interpreter, a process that may involve many primitives in the target machine language.
Fourth and Fifth-generation programming language primitives
4gls and
5gls do not have a simple one-to-many correspondence from high-to-low level primitives. There are some elements of interpreted language primitives embodied in
4gl and
5gl specifications but the approach to the original problem is less a
procedural language construct and are more oriented toward
problem solving and
systems engineering.
No comments:
Post a Comment