Why DOTNET framework?
The purpose of the computer is to interact with the user and to process or store the user information. But how this computer interacts with user, process and stores the user data into it. Basically a computer require set of program codes (called
Operating System) to perform such work.
What is program code and how it looks?
So far, what we understood is, Computer is used to interact the user, process and store the user information with the help of program codes (
Operating System). Now, two things are clear that computer (Hardware) and
Operating System-(Software) combines to form a full functioning "Computer System".
Here, one thing we need to analyze is how computer run the program codes? Its handled by the core hardware of the computer called "Processor". Processor is responsible to run the program codes.
A
Program code or Program is a set of instructions. These instructions work or execute one by one in sequential.
Processor is an hardware, designed to hold and execute the predefined set of instructions. Depending upon the user service (example : Input/Output Service in Windows Operating System) program, required instructions are grouped to form a program.
Following is an 8 bit micro-processor, instruction codes or program for addition, subtraction and increment operations.
Program Memory Address (8 BIT) | Operation Code
(Instructions) | Operand |
0x0001 to 0x0002 | ADI | 32H |
0x0003 to 0x0004 | ADD | B |
0x0005 to 0x0006 | SUI | 30H |
0x0007 to 0x0008 | SUB | B |
0x0009 to 0x0010 | INR | A |
1. ADI - Add an 8 bit hexadecimal number 32 to “A“ register. (note: A register is also program address memory to store the value but this memory is commonly shared by all instructions or Operation Codes.)
2. ADD - Add content of “B” register and “A” register. And store it in “A” register.
3. SUI - Subtract an 8 bit hexadecimal number 30 to “A“ register.
4. SUB - Subtract content of “B” register and “A” register. And store it in “A” register.
5. INR - Increment the content of “A” register by 1.
This Program or Instruction Code also called as Machine Language or Native Code or Assembly Language.
Now time to come back to our original question,
why DOTNET framework?
So far we saw few things on Program or Instruction code or Machine Language, Operating System, Processor. Now consider a person writing the Input/Output Service Program in Machine Language. Do you think is it possible? Of course its possible but it will take months or even year to complete.
To overcome this problem, Microsoft developed a software program named DOTNET framework, it drastically reduced the Machine Language based programming time for the users. For that DOTNET framework providing a graphic oriented developing environment called
Visual Studio.
In this environment user can write the program in a story based manner. This way of writing program is termed as
scripting. DOTNET framework developing environment provides many kind of scripting language (Example: C#.NET, VB.NET etc.,). This scripting languages are functionally similar to Machine language but reduces major part of programming or coding comparing to machine language based programming.
But how the processor understand these scripting languages? Answer is, one of the important job of DOTNET framework is to make that scripting language understandable by processor. That means specific module named
Just In Time(JIT) Compiler in the DOTNET framework will convert the scripting language to machine language(example: C#.NET to Instruction codes or Machine language). This process of conversion in DOTNET Framework is termed as
Compile and Build and also called Code Translation.
எதற்காக டாட்நெட் கட்டமைப்பு?
கணிணியின் வேலையாவது பயனரிடம் தொடர்புகொண்டு அவர்களிடமிருந்து பெரும் தகவல்களை முறைபடுத்தி சேமித்து வைப்பதே. ஆனால் இதனை கணிணியால் எவ்வாறு
செய்யமுடிகிறது. அடிப்படையில் கணிணி இத்தகைய வேலைய செய்ய உதவுவது அதனுள் அமைத்திருக்கும்
பல குறியீடுகளின் தொகுப்பு அதாவது "இயக்க அமைப்பு(Operating System)".
அது என்ன குறியீடு, அவை பார்ப்பதற்கு எவ்வாறு இருக்கும்?
இதுவரை நாம் புரிந்து கொண்டது, கணிணி பல குறியீடுகளின் அதாவது
"இயக்க அமைப்பு(Operating System)" உதவியால் பயனர்களிடம் தொடர்புகொண்டு அவகளிடமிருந்து பெரும் தகவல்களை முறைபடுத்தி பதிவு செய்கிறது. இதிலிருந்து இரண்டு பொருள் புரியவருகிறது, ஒன்று கணிணி அதாவது வன்பொருள் மற்றொன்று
"இயக்க அமைப்பு" அதாவது மென்பொருள். இவை இரண்டும் இனைந்து முழு செயல்பாடு கொண்ட கணிணி அமைப்பாக உருகொள்கிறது.
இப்பொழுது ஒரு வினா எழுகிறது, எவ்வாறு கணிணி இந்த குறியீட்டினை இயக்குகிறது? இந்த இயக்க வேலையை கணிணியின் முக்கிய பாகமான செயலி அதாவது Processor . இந்த செயலியை கணிணியின் கட்டுபாட்டு அமைப்பு எனவும் கூறலாம். மனிதர்களுக்கு மூளை எவ்வாறு, அதேபோன்று கணினிக்கு இந்த செயலி. இந்த செயலிதான் குறியீடுகளை இயக்கதிருக்கு பொறுப்பு.
ஒரு குறியீடு என்பது பல கற்பித்தல் குறியீடுகள் அதாவது Instructions . இந்த கற்பித்தல் குறியீடுகள் பார்ப்பதற்கு கணித வாய்ப்பாட்டின் உருவம் ஒத்து இருக்கும். இதன் இயக்கம், கணித வாய்ப்பாட்டின் ஒவ்வொரு வரிசைக்கும் மேலிருந்து கீழ் ஒன்றன் பின் ஒன்றாக பதில் காண்பது போன்றே இருக்கும்.
இந்த செயலி வன்பொருள், முன் வரையறுக்கப்பட்ட பல கற்பித்தல் குறியீடுகளை தக்கவைத்து மற்றும் இயக்கும் வகையில் வடிவமைக்கபட்டிருக்கிறது. உதாரணதிற்கு ஒரு பயனர் சேவை குறியீடு அதாவது Windows இயக்க அமைப்பில் உள்ள ஒரு பயனர் சேவையான இன்புட்/அவுட்புட் சேவையின் இயக்க வேலையே பொறுத்து தேவையான கற்பித்தல் குறியீடுகள் அதாவது Instructions குழுவாக்கி சேவை குறியீடாக உருகொள்கிறது.
தொடர்வது ஒரு 8 பைனரி இலக்க நுண்-செயலியின் கற்பித்தல் குறியீடுகள், இந்த கற்பித்தல் குறியீடுகளின் நடவடிக்கைகள் கூட்டல், கழித்தல் மற்றும் பெருக்கம்
Program Memory Address (8 BIT) | Operation Code
(Instructions) | Operand |
0x0001 to 0x0002 | ADI | 32H |
0x0003 to 0x0004 | ADD | B |
0x0005 to 0x0006 | SUI | 30H |
0x0007 to 0x0008 | SUB | B |
0x0009 to 0x0010 | INR | A |
1. ADI - இந்த கற்பித்தல் குறியீடு ஒரு 8 பைனரி இலக்க அறுபதின்ம எண் 32 உடன் " A " பதிவின் உள்ளடக்கத்தின் கூட்டல். (குறிப்பு: " A " பதிவு என்பது குறிப்பிட்ட அளவு கொண்ட நினைவகம். இந்த நினைவகத்தில் 8 பைனரி இலக்க எண்ணை பதிவு செய்யும் திறன் கொண்டது)
2. ADD - இந்த கற்பித்தல் குறியீடு " A " பதிவின் உள்ளடக்கத்தையும் மற்றும் " B " பதிவின் உள்ளடக்கத்தையும் கூட்டி அதன் முடிவை " A " பதிவிலேயே சேமித்து வைக்கும்.
3. SUI - இந்த கற்பித்தல் குறியீடு ஒரு 8 பைனரி இலக்க அறுபதின்ம எண் 30 உடன் " A " பதிவின் உள்ளடக்கத்தின் கழித்தல்.
4. SUB - இந்த கற்பித்தல் குறியீடு " A " பதிவின் உள்ளடக்கத்தையும் மற்றும் " B " பதிவின் உள்ளடக்கத்தையும் கழித்து அதன் முடிவை " A " பதிவிலேயே சேமித்து வைக்கும்.
5. INR - இந்த கற்பித்தல் குறியீடு " A " பதிவின் உள்ளடக்கத்துடன் 8 பைனரி இலக்க அறுபதின்ம எண் 1 கூட்டி அதன் முடிவை " A " பதிவிலேயே சேமித்து வைக்கும்.
இந்த கற்பித்தல் குறியீடுகளின் குழுவை " MACHINE LANGUAGE " அதாவது எந்திர மொழி என்று கூறலாம்.
இப்பொழுது நாம் ஆரம்ப கட்ட கேள்விக்கு வருவோம், எதற்காக டாட்நெட் கட்டமைப்பு?
இதுவரை கற்பித்தல் குறியீடுகள் அல்லது எந்திர மொழி மற்றும் இயக்க அமைப்பு மற்றும் செயலி போன்றவற்றை கண்டோம். இப்பொழுது ஒரு பயனர் கணிணி இயக்க அமைப்புக்கு ஒரு சேவை குறியீட்டினை எந்திர மொழியில் எழுதுகிறார் என்று வைத்துகொள்வோம். இது சாத்தியமா? பதில் நிச்சயமாக சாத்தியம் ஆனால் இந்த வேலையை நிறைவு செய்ய மாதக்கணக்கில் ஏன் வருடக்கணக்கில் கூட ஆகலாம்.
இவ்வகை சவால்களை எதிர்கொள்ளும் வகையில், ஒரு மென்பொருள் குறியீட்டினை microsoft நிறுவனம் உருவாக்கி வழங்கியிருகிறது அதன் பெயர் தான் டாட்நெட் கட்டமைப்பு. இந்த மென்பொருள் microsoft வழங்கப்பட்ட இயக்க அமைப்பு மென்பொருளான WINDOWS இன் கட்டுபாட்டின் கீழ் இயங்கும் வகையில் வடிவமைக்கபட்டுள்ளது. இந்த கட்டமைப்பின் உதவியால் எந்திர மொழி சார்ந்த குறியீடு எழுதும் நேரத்தை பெருமளவில் குறைக்கலாம். இந்த டாட்நெட் கட்டமைப்பின் சேவைகளை வரைகலை சார்ந்த குறியீடு வளர்ச்சி சூழலின் மூலம் பெறலாம். இத்தகைய சூழலை " VISUAL STUDIO " என பெயரிடுகிறார்கள்.
இத்தகைய சூழலில் ஒரு பயனர் தன் தேவைகேற்ப குறியீடுகளை கதை அடிப்படைமுறையில் எழுதலாம். இந்த முறையில் எழுதும் குரியிடுகளைதான் " SCRIPTING " அதாவது கதை எழுதுதல் என கூறுகிறார்கள். பிறகு டாட்நெட் கட்டமைப்பின் குறியீடு வளர்ச்சி சூழல் பயனருக்கு " SCRIPTING " அதாவது கதை எழுதுதலை பல கணிணி அறிந்த மொழிகளில் வழங்குகிறது, அவற்றுள் C#.NET, VB.NET மற்றும் பல. இந்த மொழிகள் செயல் வகையில் எந்திர மொழியுடன் ஒத்திருக்கும் ஆனால் எந்திர மொழியின் வேலை நேரத்தில் பல மடங்கு அலவை குறைக்கும்.
ஆனால் எவ்வாறு கணினியின் அங்கமான செயலி இந்த டாட்நெட் கட்டமைப்பின் மொழியை புரிந்து கொள்ளும்? பதில், டாட்நெட் கட்டமைப்பின் முதன்மையான வேலையே இதன் மொழியில் உள்ள குறியீடுகளை செயலி புரிந்து இயக்கும் வகையில் மொழி மாற்றம் செய்வதே. அதாவது டாட்நெட் கட்டமைப்பில் "ஜஸ்ட் இன் டைம்" கம்பைலர் எனப்படும் தொகுதி டாட்நெட் மொழியிலிருந்து எந்திர மொழிக்கு மொழி மாற்றம் செய்கிறது (எவ்வாறென்றால் C#.NET இருந்து எந்திர மொழிக்கு). இந்த மாற்றும் செயலைத்தான் டாட்நெட் கட்டமைப்பில் " COMPILE AND BUILD " அதாவது " திரட்டு மற்றும் உருவாக்கம் " அல்லது மொழி மாற்றம் என்று கூறுவார்கள்.