Page 1389 - (ISC)² CISSP Certified Information Systems Security Professional Official Study Guide
P. 1389

0s, and that’s it! The instructions that a computer follows consist of a
               long series of binary digits in a language known as machine language.

               Each central processing unit (CPU) chipset has its own machine
               language, and it’s virtually impossible for a human being to decipher
               anything but the simplest machine language code without the
               assistance of specialized software. Assembly language is a higher-level
               alternative that uses mnemonics to represent the basic instruction set
               of a CPU but still requires hardware-specific knowledge of a relatively
               obscure language. It also requires a large amount of tedious

               programming; a task as simple as adding two numbers together could
               take five or six lines of assembly code!

               Programmers don’t want to write their code in either machine
               language or assembly language. They prefer to use high-level
               languages, such as Python, C++, Ruby, R, Java, and Visual Basic.
               These languages allow programmers to write instructions that better
               approximate human communication, decrease the length of time

               needed to craft an application, possibly decrease the number of
               programmers needed on a project, and also allow some portability
               between different operating systems and hardware platforms. Once
               programmers are ready to execute their programs, two options are
               available to them: compilation and interpretation.

               Some languages (such as C, Java, and FORTRAN) are compiled

               languages. When using a compiled language, the programmer uses a
               tool known as a compiler to convert the higher-level language into an
               executable file designed for use on a specific operating system. This
               executable is then distributed to end users, who may use it as they see
               fit. Generally speaking, it’s not possible to directly view or modify the
               software instructions in an executable file. However, specialists in the

               field of reverse engineering may be able to reverse the compilation
               process with the assistance of tools known as decompilers. This is
               particularly useful when attempting to determine how an executable
               file works when performing malware analysis or competitive
               intelligence, where you do not have access to the underlying source
               code.

               Other languages (such as Python, R, JavaScript, and VBScript) are

               interpreted languages. When these languages are used, the
   1384   1385   1386   1387   1388   1389   1390   1391   1392   1393   1394