 Today we are going to see the design of micropre processor in that we see basic functions of micropre processor. Learning outcome at the end of this session students will be able to explain the basic functions of micropre processor. There are two basic functions of micropre processor are first one is the handling of micro definition and the second one is the handling of micro expansion. Now in this session we see the algorithm of processing of micro definition. Now the first step is here we initialize the pointer variable. The first pointer variable is initializer SSNTAP pointer. So here SSNTAP stands for Sequencing Symbol Limetable Pointer. So for that here we here we initialize the value 1 to that pointer variable and the second variable is the PNTAP pointer and it is also again assigned the value 1 to the PNTAP pointer. PNTAP stands for Parameter Name Table. Now the second step is here we process the micro prototype statement and form the MNT entry. MNT stands for Microname Table. So during the processing of the micro prototype statement here the name of the micro is there so that micro name is assigned to the name variable. So the first step is name equal to micro name. Now the second step is for each positional parameter. If there is a positional parameter is there then we enter that positional parameter name in the PNTAP. PNTAP parameter name table and after entering the parameter name in the PNTAP we increment the PNTAP pointer by 1. So this is specified in the second step PNTAP pointer is incremented by 1. So here PNTAP pointer equal to PNTAP pointer plus 1. Now in the third step here we write down the statement hash pp equal to hash pp plus 1. In the MNT table we require the number of positional parameters so that value is stored in the variable hash pp. So that's why here we specify the third statement hash pp equal to hash pp plus 1. Now next in the C part here we again initialize the keyword parameter default table pointer value to the keyword parameter default table pointer. So this variable kpdtp this variable is come in the MNT table. Now then in the D part for each keyword parameter if there is a keyword parameter is there then we have to enter that parameter name and the default value if there is any specify in the kpdt tab means keyword parameter default table after entering into the keyword parameter default table now if there is any positional parameter is there then that positional parameter is also entered in the PNTAP. So that's why the second statement we enter the parameter name in the PNTAP and after that we increment the respective pointer variable by 1. So in the third statement we increment the keyword parameter default table pointer by 1 and in the fourth step we increment the parameter name table pointer by 1 and in the fifth step we specify again we require the number of keyword parameters so that's why here we specify the variable hash kp and that value is stored number of keyword parameter value stored in the hash kp so that's why here we specify hash kp equal to hash kp plus 1. Now in the E part again we assign the micro definition table pointer value to the micro definition table pointer so here mdtp this variable is come in the mnt table in the F part again we require the number of expansion time variables so that value is stored in the hash ev variable so that hash ev variable is assigning the value 0 and in the G part again we assigning the sequencing table pointer value to the sequencing symbol table pointer again this table again this pointer variable is come in the micro name table. Now the third step while not a micro end statement first statement is here we check if an lcl statement if there is an lcn statement then we have to enter that expansion time variable name in the evn tab evn tab stands for expansion time variable name table after entering into the evn tab here we have to increment the value of the hash ev variable by 1 so here we specify the second statement as hash ev equal to hash ev plus 1. Now next we check if a model statement if there is a model statement then here we check if a label field is contains a sequencing symbol if that label field is containing the sequencing symbol then here we check whether that symbol is present in the SSN tab if that symbol is present in the sequencing symbol name table then we have to face that entry number of that symbol in the SSN table and we assign to the Q variable. If that symbol is not present in the sequencing symbol name table then first of all we have to enter that symbol in the sequencing symbol name table after that we have to take the entry number of that of that symbol and we assign to the value variable Q and here we increment the sequencing symbol name table pointer by 1 so here the next statement is SSN tab pointer equal to SSN tab pointer plus 1. Now the next statement is here we assign the micro definition table pointer to the sequencing symbol table by calculating the value sequencing symbol table pointer plus Q minus 1 so here the value of the micro definition pointer is assigned. Now the second step here we check for a parameter we have to generate the specification in the form p, hash n if there is a parameter then we have to generate the specification in the form p, hash n so p stands for it is a parameter and hash n it is indicates the entry number of that parameter in the pn tab. The third statement is for an expansion variable if there is an expansion variable again we have to generate the specification in the form e, hash m so here e stands for it is an expansion time variable and hash m it is indicating the entry number of that expansion time variable in the evn table. The fourth step is we have to record that I see in the table micro definition table after that here we have to increment the micro definition table pointer by 1 so this statement is specified in the fifth mdt pointer equal to mdt pointer plus 1 so here we increment the micro definition pointer by 1. Now we check if a preprocessor statement if there is a preprocessor statement then here we have to check if a state statement if a state statement then here we have to search the each expansion time variable name that is used in the statement in the evn tab and we have to generate the specification e, hash m so here e indicates it is an expansion time variable and m indicates hash m indicates the entry number of that expansion time variable in the table evn tab. Second we check if an aif or ageo statement then here we check if a sequencing symbol used in the statement is present in the assessment tab then we fish the entry number of that sequencing symbol from the assessment tab and we assign to the queue variable. If that symbol is not present then we have to enter that symbol in the assessment tab and then we have to fish the entry number of that symbol and we assign to the queue variable and the next we increment the respect to sequencing symbol table pointer by 1 so that's the next statement is assessment tab pointer equal to assessment tab pointer plus 1. Now next we have to replace the symbol by s comma sequencing symbol table pointer plus q minus 1. Now the third step is we have to record the ic in the micro definition table after recording the ic in the micro definition table. Now next we have to increment the micro definition pointer by 1 so in the fourth step we mention mdt pointer equal to mdt pointer plus 1. The fourth step is the micro end statement so here we check if assessment tab means sequencing symbol table pointer is assign the value 1 then in that case we have to assign the value 0 to the sequencing symbol table pointer otherwise else sequencing symbol pointer value will be incremented by sequencing symbol tab pointer plus sequencing symbol name tab pointer plus minus 1. So in this way we assign the value to the sequencing symbol table pointer. Now next we check if hash kp is having the value 0 then here we assign the value 0 to the keyword parameter default table pointer. So this is the algorithm of processing of the micro definition. Seeing the algorithm of micro definition can you tell me while processing the prototype statement which of the following tables are constructed first option pn tab second kpdt tab third assessment tab and fourth both a and p pause the video and think about it. The answer is both a and b during processing the prototype statement pn tab and the keyword parameter default table both tables are constructed. These are the references thank you.