answersLogoWhite

0

All types of programming languages have one property in common: all languages, ultimately and in some manner, lead to machine instructions upon which the processor operates.

Some higher programming languages, especially those of a traditional design such as the C Programming language, might generate code in a low level language (i.e. assembly language) as an intermediate step during compilation. However, most modern designs do not implement or expose this as an explicit step, and transcoding of higher to lower level languages is certainly not required.

The fact that all programming languages lead to executed machine code, however, does not mean that all language lead to a translation which results in executable code; interpreted languages, which include popular modern languages such as Java and the .NET family of languages, will generally execute machine code which interprets the language instructions, while compiled languages (which includes most forms of C) generally generate directly executable machine code.

User Avatar

Wiki User

12y ago

What else can I help you with?

Continue Learning about Engineering

What is mean by a one to many relationship when comparing a high level language to machine language?

It is meaningless. The term 'high-level language' implies a high-level of abstraction between the source code and the resultant machine code. In order for there to be a one-to-one relationship between the source code and the machine code, there must be little to no abstraction; the source language must be low-level. Assembly language is a low-level language with little to no abstraction.


How does a high level language relate to the microprocessor's instruction set?

Generally speaking, it doesn't relate at all. If it did, it wouldn't be high-level, it would be machine-dependent. The relationship between the high-level code and the machine-code is ultimately determined by the language translator (compiler and/or interpreter) but, unlike assembly language which maps 1:1 with the microprocessor instruction set, compilers and interpreters are code generators and there is seldom a 1:1 relationship between the high-level source code and the machine code.


What is compiler and assembler?

Both, compiler and assembler, are software tools which translate instructions written in a programming language into executable machine code. (Both will typically require additional tools, such as a linker, in the process.) An assembler recognizes a machine-specific assembly language. This is a low-level language with a one-to-one relationship between language (assembly) instructions and machine code instructions. A compiler recognizes a generally machine-independent language such as the C programming language. These are higher level languages compared to the assembly languages, generally offering a one-to-many relationship between language instructions and expressions, and the resulting machine code instructions.


Why c plus plus is high level language?

All programming languages are regarded as being high level because they all have a degree of abstraction between the source code and the resultant machine code. By contrast, assembly language is regarded as being low level because there is a near one-to-one relationship between the source code and the machine code. C++ is high level because it employs a combination of object-oriented principals, structured, functional and procedural programming and is platform independent, whereas machine code is purely procedural and is entirely platform dependant.


What is a low-level language?

A low-level language is any symbolic computer programming language that has a low-level of abstraction between the language itself and the machine code that it produces. Assembler language has a near 1:1 relationship with its resultant machine code and is therefore a low-level language. In fact, the only things lower than assembler language is machine code itself and disassembly, which is the reverse of assembly, both of which have no abstraction whatsoever. The only real difference between assembler language and disassembly are that disassembly has none of the comments and none of the symbolic references used by the original assembler, since both were stripped out during assembly. However, a competent hacker, with the aid of the disassembler, can reconstruct a facsimile of the original assembler from the machine code disassembly, thus permitting software to be reverse-engineered.

Related Questions

What is mean by a one to many relationship when comparing a high level language to machine language?

It is meaningless. The term 'high-level language' implies a high-level of abstraction between the source code and the resultant machine code. In order for there to be a one-to-one relationship between the source code and the machine code, there must be little to no abstraction; the source language must be low-level. Assembly language is a low-level language with little to no abstraction.


What is the relationship between source code and object code the relationship between assembly high level and low level languages as well as the relationship between compilers and intepreters?

Source code is the category of computer language instructions that is most frequently written and read by software programmers. A computer cannot generally run a program in source code form though. The source code is translated, with the use of an assembler or compiler, into a language form that contains instructions to the computer known as object code. Object code consists of numeric codes specifying each of the computer instructions that must be executed, as well as the locations in memory of the data on which the instructions are to operate. While source code and object code are commonly referred to as different classes of computer language, these terms actually describe the series of transformations a program goes through when being converted from a higher level language more easily comprehensible to humans to the lower level language of computer operations.


How does a high level language relate to the microprocessor's instruction set?

Generally speaking, it doesn't relate at all. If it did, it wouldn't be high-level, it would be machine-dependent. The relationship between the high-level code and the machine-code is ultimately determined by the language translator (compiler and/or interpreter) but, unlike assembly language which maps 1:1 with the microprocessor instruction set, compilers and interpreters are code generators and there is seldom a 1:1 relationship between the high-level source code and the machine code.


What is compiler and assembler?

Both, compiler and assembler, are software tools which translate instructions written in a programming language into executable machine code. (Both will typically require additional tools, such as a linker, in the process.) An assembler recognizes a machine-specific assembly language. This is a low-level language with a one-to-one relationship between language (assembly) instructions and machine code instructions. A compiler recognizes a generally machine-independent language such as the C programming language. These are higher level languages compared to the assembly languages, generally offering a one-to-many relationship between language instructions and expressions, and the resulting machine code instructions.


Why c plus plus is high level language?

All programming languages are regarded as being high level because they all have a degree of abstraction between the source code and the resultant machine code. By contrast, assembly language is regarded as being low level because there is a near one-to-one relationship between the source code and the machine code. C++ is high level because it employs a combination of object-oriented principals, structured, functional and procedural programming and is platform independent, whereas machine code is purely procedural and is entirely platform dependant.


What is the comparison between low-level language and high-level language?

The level describes how closely the code you write matches the code understood by the machine. Assembly languages are low-level because there is very little in the way of abstraction between the code your write and the resultant machine code. They share a near 1:1 relationship. High-level languages are much more abstract, machine-independent languages. They allow you to more easily express ideas and concepts in code rather than having to worry about how those ideas are physically encoded for a particular machine. The language compiler (or interpreter in the case of interpreted languages) takes care of the machine specifics.


What is a low-level language?

A low-level language is any symbolic computer programming language that has a low-level of abstraction between the language itself and the machine code that it produces. Assembler language has a near 1:1 relationship with its resultant machine code and is therefore a low-level language. In fact, the only things lower than assembler language is machine code itself and disassembly, which is the reverse of assembly, both of which have no abstraction whatsoever. The only real difference between assembler language and disassembly are that disassembly has none of the comments and none of the symbolic references used by the original assembler, since both were stripped out during assembly. However, a competent hacker, with the aid of the disassembler, can reconstruct a facsimile of the original assembler from the machine code disassembly, thus permitting software to be reverse-engineered.


Why is assembly language reffered to as low level language?

Assembly language is low-level because it has the least amount of abstraction between the source and the resultant machine code. That is, the translation from assembly language to machine code is 1:1. All high-level languages have much higher degrees of abstraction.


What is assemble language?

Assembler language is a computer programming language. It is a symbolic language used to enter machine code instructions using easy-to-remember mnemonics. It is a low-level language because there is little in the way of abstraction between the source code and the resultant machine code. All other languages are known as high-level languages due to their high-level of abstraction.


Why is assembly language known as a low level language?

The level of a language is an indication of how abstract it is compared to the machine code it produces. The higher the level, the further it is from the machine and thus the more abstract it is. Assembly language has a near 1:1 translation to machine code with very little in the way of abstraction, thus it is a low-level language.


What are examples of high lavel language?

The term high-level refers to the amount of abstraction between the code you write and the native language of the machine. Low-level code is a symbolic code that maps 1:1 with the machine code, thus assembly is a low-level language. All other languages that employ a compiler or interpreter to create the machine code are considered high level languages. However, C and C++ are examples of high-level languages that also allow low-level programming, and are often called mid-level languages for that reason.


Is user level language and high level language same?

Yes. User-level language is a high-level language because it requires a high degree of abstraction between the language and the machine code emitted by the language. Even a graphical user interface (GUI) can be considered a high-level language because it (can) allow users to indirectly interact with the machine's low-level facilities. Conversely, machine-level languages are low-level languages because there is little to no abstraction between the language and the resultant machine code. Note that the only language actually understood by the machine is its own native machine code (every machine type has its own variant of machine code). Both high-level and low-level languages allow users to create machine code. Low-level languages give the programmer (the user) near absolute control over the machine whereas high-level languages tend to limit the amount of control. There is no real distinction between the various high-level languages and the amount of low-level control the user has within them, it's merely a general term that implies there is a high degree of abstraction involved. Although the programmer has less control over the machine code, the machine code produced by high level language compilers can be just as good if not better than hand-crafted assembly instructions. This is because modern compilers can analyse vast amounts of source code much more quickly than any human and can therefore produce more optimal code. Languages such as C++ are specifically designed such that programmers will very rarely need to resort to low-level code such as inline assembly.