public static IProgramExecutionStrategy getStrategy(ProgramExecutionStrategyType strategy)
        {
            if(strategy.Equals(ProgramExecutionStrategyType.CSHARP))
                return new CSharpExecutionStrategy();

            else if(strategy.Equals(ProgramExecutionStrategyType.ASEMBLER))
                return new AsemblerExecutionStrategy();

            throw new InvalidOperationException();
        }
        public static IProgramExecutionStrategy getStrategy(ProgramExecutionStrategyType strategy)
        {
            if (strategy.Equals(ProgramExecutionStrategyType.CSHARP))
            {
                return(new CSharpExecutionStrategy());
            }

            else if (strategy.Equals(ProgramExecutionStrategyType.ASEMBLER))
            {
                return(new AsemblerExecutionStrategy());
            }

            throw new InvalidOperationException();
        }