Topic :Introduction To COMPILERS | DEBUGGER | INTERPRETERS | LINKER | LOADER | IDE

Editors For writing Code:

We Need a Tool For Writing the Code of a Program. For this Purpose we used Editors in which we write code. We can use word Processor too for this, but word Processors have many other features like bold the text, italic, coloring the text etc. so When we save a file written in a word Processor, lot of other information including the text is saved on the Disk. For Programming Purpose we don't need these things we Only Need simple text. Text editors are such editors which save only the text which we type. So for Programming we will be using a text editor.



We already discuss that C# is a Part of .NET Framework and is used for writing .NET Applications. Therefore, before discussing the available tools for running a C# Program, Let us Understand how C# relates to the .NET Framework.



The .NET Framework:

The .NET Framework Provides a Comprehensive Development platform that offers a fast ad efficient way to build applications and services. It is the revolutionary platform that help us to write the following types of Applications.

  • » Windows Applications:
    » Web Applications:
    » Web Services:



The .NET Framework Applications are Multi-platform Applications. The Framework has been designed in such a way that it can be used from any of the following languages. C#, C++, Visual Basic, JS, COBOL, etc. All these languages can access the framework as well as communicate with each other.

The .Net Framework consists of an enormous library of codes used by the client languages. Such as C#. Following are some of teh components of the .NET Framework.

  • » Common language Runtime (CLR)
    » The .NET Framework Class Library
    » Common Language Specification
    » Common type System.
    » Metadata and Assemblies.
    » Windows Forms.
    » ASP.NET and ASP.Net AJAX.
    » ADO.Net
    » Windows workflow Foundation (WF).
    » Windows Presentation Foundation (WCF)
    » Windows Communication Foundation (WCF)
    » LINQ.



Now Let's discuss some tools, that we are using to Write and Execute our code.

Compiler and Interpreter:

As we write in English and we know that computers can understand only 0s and 1s. so we need a translator which translates the code of our Program into Machine language. These are two kinds of translators which are known as "INTERPRETER" and "COMPILER". These translators translate our Program which is written in C# or any other Language into Machine Language.



Interpreters:

Interpreters translates the Program line by line meaning it reads one line of Program and translates it, then it reads second line and translate it and so on. The benefit of it is that we get the errors as we go along and it is very easy to correct the errors. The drawback of the interpreter is that the Program executes slowly as the interpreter translates the Program line by line. Another drawback is that is interpreters are reading the Program line by line so they cannot get the overall picture of the Program hence cannot optimize the Program making it efficient.



Compilers:

Compilers also translate the Code written in English language into Machine Language so computer can understand. the compiler read the whole Program and translates it into machine language completely. The difference between interpreter and compiler is that compiler will stop translating if it finds an error and there will be no executable code generated whereas interpreter will execute all the lines before error and will stop at the line which contains the error. So compiler needs syntactically correct Program to Produce an executable code.



Debugger:

Another important tool is Debugger. Every Programmer should be Familiar with it. Debugger is used To debug the Program i.e. To Correct the logical errors. using debugger we can control our Program while it is running. We can stop the execution of our Program at some point and can check the values in different variables, can change these values etc. In this way we can trace the Logical errors in our Program and Can see whether our Program is Producing the correct results. This Tool is very Powerful, so it is complex too.



Linker:

Most of the time our program is using different routines and functions that are located in different files, hence it needs the executable code of those routines/functions. Linker is a tool which performs this job, it checks our program and includes all those routines or functions which we are using in our program to make a standalone executable code and this process is called Linking.



Loader:

After a executable program is linked and saved on the disk and it is ready for execution. We need another process which loads the program into memory and then instruct the processor to start the execution of the program from the first instruction (the starting point of every C program is from the main function). This processor is known as loader. Linker and loaders are the part of development environment. These are part of system software.



IDE:

An Integrated Development Environment (IDE) is a Software Application that Provides comprehensive Facilities to computer Programmers for Software Development. An IDE Normally consists of a Source code Editor, Interpreters, Compiler, Debugger, Linker and Loader.
Integrated development environments are designed to maximize Programmer Productivity by Providing tight-knit components with similar user interfaces. IDEs Present a single Program in which all development is done. This Program typically Provides many features for authoring modifying, compiling, deploying and debugger software.





We are Using Visual Studio in our Tutorials: This is an Freely Availabe IDE from Microsoft official Website. Using this tool we can write all kinds of C# Programs from simple command line applications to more complex application. Download it Now.



The following figure represents a graphical explanation of all the steps involved in writing and executing a program.



writing and executing a program.













I Tried my Best to Provide you complete Information regarding this topic in very easy and conceptual way. but still if you have any Problem to understand this topic, or do you have any Questions, Feel Free to Ask Question. i'll do my best to Provide you what you need.

Sardar Omar.
InfoBrother





WRITE FOR INFOBROTHER

Advertising






Advertisement