*****************************************************************************

		 SYSTEM PROGRAMMING ( SOFTWARE LABOATORY II)

			   NAME : SACHIN S. AGRAWAL
			   CLASS : T.E.(COMPUTER)
			   ROLL NO : 3801
			   DATE : 6th FEB 2001

*****************************************************************************



   PROBLEM DEFINITION :
			TO DESIGN AN MACRO-PROCESSOR FOR A HYPOTHETICAL LANGUAGE.

MACHINE ARCHITECHTURE:

	    1)  MACHINE CONTAINS ONLY ONE RESISTER ( ACCUMULATOR )
	    2)  IT HAS ONLY ONE INUPUT DEVICE (KEY_BOARD)
	    3)  IT HAS ONLY ONE OUTPUT DEVICE (LCD DISPLAY)
	    4)  IT HAS NO ANY OTHER PORT
	    5)  IT HAS ZERO_FLAG & CARRY_FLAG


ASSUMPTIONS :

	    1)  IT PERFORMS ONLY DECIMAL OPERATIONS
	    2)  IT PROVIDES SAME MEMORY AREA FOR DATA & CODE
	    3)  IT DOESN'T CONTAIN ANY STACK SEGMENT
	    4)  DATA SEGMENT IS PRESENT BEFORE CODE SEGMENT
	    5)  LITERALS ARE STORED AFTER CODE SEGMENT


SYNTAX OF LANGUAGE:

	    1)  MAXIMUM POSSIBLE LENGTH OF VARIABLE_NAME & LABEL_NAME IS 20.
	    2)	LABELS & VARIABLES SHOULD BEGIN WITH ALPHABET,
		UNDER-SCORES ('_') & DIGITS ARE ALLOWED.

	    3)  LABELS MUST BE TERMINATED WITH ':'.
	    4)  LITERALS MUST BE PRECEDED BY '@'.
	    5)  VARIABLES CAN BE OF TWO TYPES : 1) DB 1) CONST
	    6)  ALL VARIABLES MUST BE DECLARED IN DATA SEGMENT,
		WHICH IS PRESENT BEFORE CODE SEGMENT.
	    7)  PROGRAM MUST BE TERMINATED WITH 'END' STATEMENT.
	    8)  COMMENTS SHOULD BE PRECEDED BY ';'.
	    9)  NO SPECIAL CHARACTER IS REQUIRED TO TERMINATE A STATMENT.
	   10)  ONLY ONE STATEMENT IS ALLOWED ON A SINGLE LINE.



DATA STRUCTURES USED:

      ARRAY OF STRUCTURE :
			 FOR MACRO NAME TABLE (MNT),
			 MACRO DEFINITION TABLE (MDT),
			 FORMAL_PARAMEER_TABLE,ACTUAL_PARAMETER_TABLE
			 AND LABEL_TABLE.


LIMITATIONS:

	   1) MAXIMUM 10 MACRO DEFINITIONS ARE ALLOWED.
	   2) PERFORMS LINEAR SEARCH.
	   3) IT USES ARRAYS INSTEAD OF LINKED-LISTS.
	   4) IT DOESN'T SUPPORT NESTED DEFINITIONS & DEFAULT PARAMETERS.
