0% found this document useful (0 votes)
276 views10 pages

Compilers and Interpreters

The document discusses the differences between compiled and interpreted programs. Compiled programs are translated into machine code then linked together into an executable file, while interpreted programs are run directly without this compilation step. This makes interpreted programs faster to develop but slower to execute, while compiled programs are slower to develop but faster to run once completed. The document also provides details on the different steps involved in compiling a program, including lexical analysis, syntactical analysis, and machine code generation.

Uploaded by

Anup Singh Siger
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
276 views10 pages

Compilers and Interpreters

The document discusses the differences between compiled and interpreted programs. Compiled programs are translated into machine code then linked together into an executable file, while interpreted programs are run directly without this compilation step. This makes interpreted programs faster to develop but slower to execute, while compiled programs are slower to develop but faster to run once completed. The document also provides details on the different steps involved in compiling a program, including lexical analysis, syntactical analysis, and machine code generation.

Uploaded by

Anup Singh Siger
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 10

Compilers and Interpreters

What's the difference?


Computer programs are compiled or interpreted. Languages like C, C++, Fortran, Pascal were almost always compiled into machine code. Languages like Basic,VbScript and JavaScript were usually interpreted. So what is the difference between a compiled program and an Interpreted one?

Compiling
To write a program takes these steps: 1.Edit the Program 2.Compile the program into Machine code files. 3.Link the Machine code files into a runnable program (also known as an exe). 4.Debug or Run the Program.

Machine code files are self-contained modules of machine code that require linking together to build the final program. The reason for having separate machine code files is efficiency; compilers only have to recompile source code that have changed. The machine code files from the unchanged modules are reused. This is known as Making the application.

Linking is a technically complicated process where all the function calls between different modules are hooked together, memory locations are allocated for variables and all the code is laid out in memory, then written to disk as a complete program. This is often a slower step than compiling as all the machine code files must be read into memory and linked together.

Interpreting
The steps to run a program via an interpreter are : 1. Edit the Program 2. Debug or Run the Program 3. This is a far faster process and it helps novice programmers edit and test their code quicker than using a compiler. The disadvantage is that interpreted programs run much slower than compiled programs. As much as 5-10 times slower as every line of code has to be re-read, then reprocessed.

What is a Compiler?
A compiler is a program that translates human readable source code into computer executable machine code. To do this successfully the human readable code must comply with the syntax rules of whichever programming language it is written in. The compiler is only a program and cannot fix your programs for you. If you make a mistake, you have to correct the syntax or it won't compile. What happens When You Compile Code?: A compiler's complexity depends on the syntax of the language and how much abstraction that programming language provides. A C compiler is much simpler than C++ Compiler or a C# Compiler.

Here is what happens when you compile code.


Lexical Analysis: This is the first process where the compiler reads a stream of characters (usually from a source code file) and generates a stream of lexical tokens. For example the C++ code Next is Syntactical Analysis: This output from Lexical Analyzer goes to the Syntactical Analyzer part of the compiler. This uses the rules of grammar to decide whether the input is valid or not. Unless variables A and B had been previously declared and were in scope, the compiler might say 'A' : undeclared identifier. Had they been declared but not initialized. the compiler would issue a warning local variable 'A' used without been initialized. You should never ignore compiler warnings. They can break your code in weird and unexpected ways. Always fix compiler warnings!

Assuming that the compiler has successfully completed these stages - Lexical Analysis. - Syntactical Analysis. The final stage is generating machine code. This

Building a C program
Text Editor

#include<stdio.h> ..
Source code

Compiler

00110001100 10010001

object

Library files

Linker

0001111000111 11100001
Executable Result

Runner/Loader

You might also like