stacks top of the stack implement the operations of the postfix calculator adt as defined herepostfixcalculator()creates new postfix calculator with an empty operand stack valuex )pushes the given operand onto the top of the stack result()returns an alias to the value currently on top of the stack if the stack is emptynone is returned clear()clears the entire contents of the stack clearlast()removes the top entry from the stack and discards it computeop )removes the top two values from the stack and applies the given operation on those values the first value removed from the stack is the righthand side operand and the second is the lefthand side operand the result of the operation is pushed back onto the stack the operation is specified as string containing one of the operators * extend the postfix calculator adt as follows(ato perform several unary operations commonly found on scientific calculatorsabsolute valuesquare rootsinecosineand tangent the operations should be specified to the compute(method using the following acronymsabssqrtsincostan (bto use second stack on which values can be saved add the following two operations to the adtstore()removes the top value from the operand stack and pushes it onto the save stack recall()removes the top value from the save stack and pushes it onto the operand stack design and implement complete program that uses the postfix calculator adt to perform various operations extracted from the user the user enters text-based commandsone per linethat should be performed by the calculator for exampleto compute the user would enter the following sequence of commandsenter enter mul result which would result in being displayed your program should respond to the following set of commandsenterclrclrlastresultaddsubmuldivpow