answersLogoWhite

0


Best Answer

About the relationship between engineering / architecture and Plumbing in building houses.

Computer Science looks at how one figures out how to develop algorithms and methods of solving a problem. Computer Programming is the implementation in software code of the algorithm.

User Avatar

Wiki User

11y ago
This answer is:
User Avatar
More answers
User Avatar

Wiki User

8y ago

Machine code is the only language native to the machine. But writing machine code programs is laboriously time-consuming and highly prone to error. To make it easier to produce machine code programs, we use programming languages. The machines won't understand these languages, of course, but they can be programmed to translate them into machine code. These translators are called assemblers, compilers and interpreters.

An assembler is the simplest translator. Assembly language is a second generation language (machine code is first generation) and is really nothing more than a symbolic version of machine code, where every operation code (opcode) maps to an easy-to-remember mnemonic such as MOV (move) or an acronym such JNZ (jump if not zero). Numeric operands can be entered using decimal notation as well as binary, but we can also use the more convenient hexadecimal and octal notations for binary data. We can also create user-defined names (variables) to refer to a memory address or to an array of addresses. While this makes it much easier to write and maintain the machine code, it's extremely low-level. Everything has to be written in minute detail in terms of the machine, is highly repetitive and must be heavily commented to keep track of what each section of code actually does.

Compilers and interpreters are complex translators. Both allow code to be written with a high-level of abstraction, hence compiled and interpreted languages are known as high-level languages. They are also known as third-generation languages because they can be used to create assembly language as well as machine code. The amount of abstraction varies from one language to the next, but they all make it much easier to encode ideas and concepts using high-level expressions that are much easier for humans to understand.

Compilers translate the entire source code into machine code while interpreters translate one statement at a time, execute it, then move onto the next. Interpretation results in much slower execution compared to a compiled machine code program, however a machine code program can only execute upon the machine type for which it was intended, which means the code must be recompiled separately for each supported platform. Interpreted programs, on the other hand, can be executed upon any machine with a suitable interpreter.

Some languages, such as Java, are both compiled and interpreted. That is, the Java compiler does not produce machine code it produces an intermediate code known as byte code which must then be interpreted by the Java virtual machine. Java programs execute much faster than a purely interpreted language, because the high-level statements are already translated into a low-level language that is much easier (and quicker) to interpret. Moreover, the same byte code can be executed upon any platform with a Java virtual machine implementation, which is pretty much everything these days.

While Java is the most popular language in use today, it is only suitable for writing applications software, it cannot be used to write low-level software such as drivers, operating system kernels or embedded systems.

C++ is the most widely-used general purpose compiled language, capable of writing code at both low and high level (hence it is often called an intermediate level language), but it can also interoperate with other high-level languages including C, Pascal and Fortran.

This answer is:
User Avatar

Add your answer:

Earn +20 pts
Q: What is the relationship between a programming language and machine code?
Write your answer...
Submit
Still have questions?
magnify glass
imp
Continue Learning about Engineering

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.


What type of software translates a programming language into machine language for one type of machine?

A compiler and/or an assembler.


What is Programming languege and why we use programming languege andexplain it?

A computer can do many different things, depending on the program provided to the computer. The program is a list of instructions.Rather than learn the "machine language", which is the underlying instructions the computer can execute, nowadays people usually program in a "programming language", which is closer to a human natural language, usually English. The instructions in this programming language are then converted into machine language, by programs specifically designed for that purpose (assemblers, compilers, and - in a way - interpreters). Writing in a programming language is much easier than learning the machine language.


What is difference between problem oriented and machine oriented languages?

machine oriented language: A programming language designed for use on specific class of computers. problem oriented language: A language whose statement resemble terminology of the user. Thanks


What is programming launguage?

A programming language is a language to communicate with the machine (computer). It can either high or low level programming language. A high level programming language is harder to understand by computers but easier by people. These include BASIC, C++, Java and etc. Low level programming languages are understandable by computers and people , like assembly and other system programing languages. Compilers/Linkers/Interpreters are needed to translate between programming language into machine language (binary code - 010001001 etc). If you want to learn programming language, first you should learn Basic or Python then goto C++ or Java. You can also learn C instead of C+++, your choice.

Related questions

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.


Which was first programming language?

Machine language.


What are the differences between the human language and machine programming language?

Human language is natural and used for communication between people, while machine programming language is artificial and used to communicate instructions to computers. Human language is context-dependent and ambiguous, while programming languages are precise and unambiguous. Humans use language for various purposes, such as expressing thoughts and emotions, while programming languages are designed for specific tasks like controlling hardware and software.


Whats the difference between a net programming language and a normal one?

A .Net programming language is compiled not into machine language but "IL", or "Intermediate Language." This "IL" is then run against the .Net runtime and is "Just In Time" compiled into machine language to run the actual operations. Contrast that with a "Normal" one, where the compiler turns the code into the machine language of the target instruction set.


What is a binary programming language that the computer can run directly?

Machine language.


What type of software translates a programming language into machine language for one type of machine?

A compiler and/or an assembler.


Does the C programming language use a virtual machine?

no


Which programming language is always a one to one correspondence for a line of code in that language and a line of code in machine language?

Assembly language is the programming language that always has a one to one correspondence for a line of code in that language and a line of code in machine language


What is Programming languege and why we use programming languege andexplain it?

A computer can do many different things, depending on the program provided to the computer. The program is a list of instructions.Rather than learn the "machine language", which is the underlying instructions the computer can execute, nowadays people usually program in a "programming language", which is closer to a human natural language, usually English. The instructions in this programming language are then converted into machine language, by programs specifically designed for that purpose (assemblers, compilers, and - in a way - interpreters). Writing in a programming language is much easier than learning the machine language.


Examples of Low-Level Programming Language?

Machine code & Assembly language.


What is difference between problem oriented and machine oriented languages?

machine oriented language: A programming language designed for use on specific class of computers. problem oriented language: A language whose statement resemble terminology of the user. Thanks


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.