**படிமுறை நிரலாக்கம்** (*procedural programming*) என்பது ஒரு படிமுறையை அடிப்படையாக வைத்து எழுதப்படுகின்ற நிரலி ஆகும். ஒரு செயலைச் செய்ய வேண்டுமாயின் எதை எப்படிச் செய்தல் என்று முதலில் அறிய வேண்டும். எடுத்துக் காட்டாக, தேநீர் போடுவது எப்படி என்பதைக் கீழ்க் கண்டவாறு சொல்லலாம்:

முறை 1:

தண்ணீரைக் கொதிக்க வைத்து, பின் பால் கொஞ்சம் ஊற்றி, மீண்டும் நன்றாகக் கொதிக்க வைத்து, தேநீர்த் தூளைப் போட்டு,
பிறகு கொஞ்சம் சக்கரையைப் போட்டால், தேநீர் கிடைக்கும்.
இதையே இன்னும் வேறு விதமாகச் சொல்லலாம்:

முறை 2:
/\* '*தேநீர் செய்யும் முறை* \*/ 

**தொடக்கம்**
1. ஒரு குண்டானில் (2 குவளைத்) தண்ணீரை ஊற்று;
2. குண்டானில் உள்ள தண்ணீரை ஒரு அடுப்பில் வைத்து, கொதிக்க வை;
3. கொதிக்கும் தண்ணீரில் (1/2 குவளை) பாலை ஊற்று;
4. ஒரு நிமிடம் கழித்து, ஒரு கரண்டி தேநீர்த் தூளைப் போடு;
5. (1/2 நிமிடம்) கொதித்த பிறகு, 2 கரண்டி சக்கரையைப் போடு;
6. அடுப்பை அவித்து விடு;

**முடிவு**
மேலே கொடுக்கப் பட்டுள்ள இரு முறைகளிலும், முறை 2 எளிதானது; இதைச் செயல் படுத்துவது எளிது. இந்த முறையைப் படிமுறை என்று சொல்வர். ஏனெனில், இந்த முறை, பல படிகளைக் கொண்டது. படி 1-இல் ஒரு குண்டானில் 2 குவளைத் தண்ணீரை ஊற்றுகிறோம். படி 2-இல், குண்டானில் உள்ள தண்ணீரை ஒரு அடுப்பில் வைத்து, கொதிக்க வைக்கிறோம். இவ்வாறு, 6 படிகளை ஒவ்வொன்றாகச் செய்து கொண்டு வர வேண்டும். மாறாக, முறை 1-இல் படிகள் எதுவும் கொடுக்கப் படவில்லை. இதை நாமே படித்துப் படிகளை உருவாக்கிப் பின் செயல் படுத்திக் கொள்ள வேண்டும்.

ஒரு படிமுறையைப் பின்பற்றி ஒரு நிரல் எழுதலாம். ஆனால், படிமுறை இல்லாமலேயே ஒரு நிரலை எழுத இயலும். எடுத்துக்காட்டாக, ஏரணத்தை வைத்துக்கொண்டு நிரலியை எழுதலாம்.

 இதற்கு ஏரணமுறை நிரலி(logic programming) என்று பெயர். செயலிகளை வைத்துக் கொண்டும் நிரலிகளை எழுதலாம். இதற்கு செயலிமுறை நிரலி(functional programming) என்று பெயர்.

ஆனால், படிமுறையை வைத்து நிரல்கள் உருவாக்குவதைப் *படிமுறை நிரலாக்கம்* என்பர்.

படிமுறைப் படி எழுதப்படும் ஒரு நிரலியில் இரண்டு கூறுகள் உள்ளன:

* மதிப்பளித்தல்: மதிப்பளித்தல் என்பது படிமுறை நிரலியின் முதல் கூறு. இந்தக் கூற்றில், ஒரு *மாறி*-இன் மதிப்பு மாற்றப்படும். எடுத்துக் காட்டாக,

x = 24+2;
என்பது ஒரு மதிப்பளிக் கூற்று. இதில், x என்பது ஒரு மாறி(variable), 24+2 ஒரு கோவை. இந்த மதிப்பளிக் கூற்றில், 24+2-இன் மதிப்பாகிய 26, x என்ற மாறிலிக்கு மாற்றப் படுகின்றது. இந்த மாற்றம் தான் படிமுறை நிரலாக்கத்தின் மிக இன்றியமையாத அடிப்படை. x என்ற மாறிலி கணிப்பொறியில் உள்ள நினைவகத்தில்(memory) ஓர் இடத்தைக் குறிக்கும்.

* வரிசை முறை (order): வரிசை முறை என்பது படிமுறை நிரலாகத்தின் இரண்டாவது கூறு. எந்த மாறியின் மதிப்பு எப்போது மாற வேண்டும் என்று பார்த்துச் செய்வது **if**, **while** ஆகிய கூறுகளின் வேலை.

ஒரு நிரலில் பல மதிப்பளிக் கூற்றுகள் இருக்கும். அவற்றைச் சரியான வரிசைப்படிச் செயலாற்றினால் தான் சரியான விடை கிடைக்கும். எடுத்துக் காட்டாக,

if (x = 2) then x = 24 + x;
என்ற கூற்று x -இன் மதிப்பு 2-ஆக இருக்கும் போது அதன் மதிப்பு 26 என்று மாற்றப் படுகின்றது; இல்லையென்றால், x-இன் மதிப்பு 2-ஆகவே இருக்கும். இவ்வாறு, நிரலியில் வரும் மாறிலியின் மதிப்பைச் சரியாக மாற்ற **if** கட்டுமக் கூற்று, **while** மடக்கிக் கூற்று, ஆகியனவற்றைப் பயன் படுத்தி, வேண்டிய சரியான வரிசை முறையை உருவாக்க வேண்டும்.

மிகப் பேரளவில் ஆக்கப் படும் நிரலிகளை எழுத மேற்கூறிய **if**, **while** கூற்றுகள் மட்டும் போதாது. செயலிகள்(functions) உருவாக்கவும், தரவுகளை உள்ளீடு செய்யவும், வெளியீடு செய்யவும் இன்னும் பல கூறுகளையும் நாம் பயன் படுத்த வேண்டும்.
படிமுறை நிரலாக்கத்தில் பயன்படுத்தும் கணினி மொழிகளில் ஒரு சில:
சி (நிரலாக்க மொழி), கோ (நிரலாக்க மொழி), போர்ட்ரான், பாசுக்கல் (நிரலாக்க மொழி), மற்றும் பேசிக் (நிரல் மொழி).


படிமுறை நிரலாக்கம் என்பது ஒரு வகையான ஏவல் நிரலாக்க முறையாகும்.

உசாத்துணை
---------

1. ↑  "Procedural Language". techopedia. 2015-04-13 அன்று பார்க்கப்பட்டது.
2. ↑  "3 Ways to Make Instant Coffee". WikiHow. 2015-04-13 அன்று பார்க்கப்பட்டது.
3. ↑  Robert Kowalski. The Early Years of Logic Programming Kowalski, R. A. (1988). "The early years of logic programming". Communications of the ACM 31: 38. doi:10.1145/35043.35046.
4. ↑  Lloyd, J. W. (1987). Foundations of Logic Programming. (2nd edition) (Springer-Verlag).
5. ↑  Hutton, Graham (2007). Programming in Haskell. Cambridge University Press. ISBN 0-521-69269-5.
6. ↑  Böhm, C.; Jacopini, G. (May 1966). "Flow diagrams, Turing machines and languages with only two formation rules". Communications of the ACM 9 (5): 366–371. doi:10.1145/355592.365646.
7. ↑  "Welcome to IEEE Xplore 2.0: Use of procedural programming languages for controlling production systems". ieeexplore.ieee.org. 2015-04-13 அன்று பார்க்கப்பட்டது.
8. ↑  Pratt, Terrence W. and Marvin V. Zelkowitz. Programming Languages: Design and Implementation, 3rd ed. Englewood Cliffs, N.J.: Prentice Hall, 1996.
9. ↑  Sebesta, Robert W. Concepts of Programming Languages, 3rd ed. Reading, Mass.: Addison-Wesley Publishing Company, 1996.