How is a compiled binary code executed

Does a compiled software contain binary 0 and 1?

I know that after a software or application is compiled, its code is converted to machine language.

Does compiled software contain binary 0 and 1?

What happens after a software is compiled? Will the code be converted to binary 0 and 1? What actually happens to the source code? How is such a huge amount of 0 and 1 stored in the computer?


Yes. All information on your computer is made up of bits (on personal computers it is usually 8 bits per byte, and some systems define bytes with a different number of bits). Although the source code is technically stored in binary form, various approaches and methods can be used to identify it as "text".

Binary is the notation used to describe the base 2 representation of the data (1 and 0). This document explains this notation in great detail and is likely to interest you:

binary code

After compilation, the resulting binary data usually represents a sequence of instructions (a.k.a., sequences of bytecodes) that the processor understands and processes accordingly. There are a large number of instructions that perform math operations, change memory contents, communicate with peripherals, and do a number of other things.

A high-level language such as C, Pascal, Perl, etc. can be compiled into binary code, which is then executed directly by the CPU. This binary code is most commonly referred to as "machine language".

Assembler source code (which is not considered "high level" language) is the form of source code that most closely approximates machine language, but it must also be compiled as binary code for the CPU to process it correctly.

When interpreted code is executed (e.g. with a script), it is compiled on the fly by an interpreter when every line or section is encountered, and therefore tends to execute much more slowly than binary code. BASIC (like GW-BASIC from the DOS days of the 1980s and early 1990s), although not known as a scripting language, was also interpreted (including the loops - there was no caching, every line was constantly reinterpreted).

Everything on a computer is a collection of bytes. Since bytes are a fixed number (usually 8) of ones and zeros, in fact everything in a computer is ones and zeros.

A program is a stream of instructions.

The CPU retrieves bytes from RAM and takes an action based on the value of that byte. A stream of such bytes forms a program. In this context, bytes are called opcodes and represent elementary operations.

Compiling is a multi-step process that essentially "converts" or "translates" source text into a stream of opcodes. Nothing happens to the original source code.

Compilers are programs themselves, the task of which is to read the source text and convert it into the machine language. Central to the way a compiler works is a concept called a Parser that scans every character (byte) of every line of text, separating it into words and operators (i.e. Token ) and, based on the presence and order of certain words, determines which machine language opcodes should be generated.

Programs rarely run from start to finish. Usually decisions (i.e. conditional statements ) are created based on the data collected by the program, and the program can skip (a.k.a. leap or Branch ) to different sections of yourself. Alternatively, sections of the programs can be written as Subroutines or functions and could be reused or called during the program. For this reason, most compilers have to make two or more passes through the source code to find out where all of the "jumps" lead. This is called Linking .

Large numbers of zeros and ones can be stored mainly due to advances in chip manufacturing technology and the fact that a CPU can access an amount of RAM that is 2 to the power of 2 Address lines it has. A 32-bit CPU usually has at least 32 address lines, i.e. 2 ^ 32 or 4 GB of RAM. Storage wasn't always that cheap or plentiful. Computer advertising in the late 70s / early 80s shows that 4 KB of memory was at least $ 500 and the earlier you went, the more expensive it was.

As other answers said, computers store and process data and BINARY instructions so that they, or rather, calculate their most basic elements (transistors, etc.) with two states, On / Off, Low / High or 0 and 1.

But there are (or were) other methods! There are analog computers, as opposed to DIGITAL computers, where digital means that you can point to DISCREET and certain values โ€‹โ€‹(digit & lt; - & gt; fingers). In analog computers one cannot, there are no values โ€‹โ€‹of different nature, everything is something in between (as in whole numbers and real numbers). But there is no such thing as a "program" that is compiled into machine code. There are mechanical / electronic elements that determine the "program"

More interesting: there are DIGITAL computers that are Not Operation binary though TERNARY :

There are THREE states in these computers, -1/0/1. And there are even programs that are compiled into machine code. Conclusion: maybe. Compiled software can also contain three digital identifiers, -1, 0 and 1;)

While the answer yes is correct, the answer no is more correct.

The information is stored in electrical charges (as stated earlier): and or maybe and or and or and and some systems used electricity instead of charge. In summary, however, there are two electrical states.

To make things easier people abstracted this to 0 and 1 so they didn't have to know how the hardware did it and the code was more portable.

Later, more levels of abstraction were added: assembler, character codes (ASCII etc), then ...


can become

Now you can hear that being converted to, but that's not exactly true. because is a sequence of 16 characters (at least 16 uncompressed bytes) that represents 2 data bytes. But is it wrong to say that? Well, just like I said I had spaghetti for dinner, that's wrong. I didn't have a string to dinner. I can't show you what I had I can show a picture but I haven't eaten a picture. So remember the s and s are just a representation of what is really happening. And when I say I see 1 moon in the sky, that represents something completely different. And when I say, beware of the characters and and the characters and can these be confused s and s are a different matter again.

We use cookies and other tracking technologies to improve your browsing experience on our website, to show you personalized content and targeted ads, to analyze our website traffic, and to understand where our visitors are coming from.

By continuing, you consent to our use of cookies and other tracking technologies and affirm you're at least 16 years old or have consent from a parent or guardian.

You can read details in our Cookie policy and Privacy policy.